24
PowerShell勉強会@大阪 第1回勉強会 PowerShellとActive Directory 平成26年4月12日 ちゅき

PowerShell と Active Directory

Embed Size (px)

DESCRIPTION

Active Directory Domain ServiceのおさらいとPowerShellからの利用法です。30分枠だったため、概要中心です。 PowerShell勉強会@大阪 第1回 勉強会 ( 2014年04月12日 ) Japan PowerShell User Group ( JPPOSH ) Vol.2

Citation preview

Page 1: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

PowerShellとActive Directory

平成26年4月12日

ちゅき

Page 2: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• 大阪在住、神戸勤務のSIer

• もともと研究開発部門の開発系技術担当

• 今はなんでも屋さんです。

• いわゆる一般優良市民

• わんくま同盟ではなぜかIT Proと認識されている悪寒

⇒なぜか「Directory Services」でMVP受賞

自己紹介など

SIerのR&Dってなにするの?

良い子は生暖かい目で見守ってネorz

Page 3: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• Active Directoryの歴史と概要

• さて、叩きまくってみましょう

Agenda

≒AD DSの話中心です^^(Active Directory DomainService)

Page 4: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

ACTIVE DIRECTORYの歴史

まっぺん見直してみるActive Direcotry

Page 5: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

NT4からWindows 2000へ

NT4って便利やんうちの部署でもサーバ建てよ

NT4って便利やんうちの部署でもサーバ建てよ

うNT4って便利やん

うちの部署でもサーバ建てよう

部門担当者

全社IT担当いっぱいありすぎ、つーか

めっさキショいんですけど?

部門レベルのサーバーから

エンタープライズレベルのサーバーへ

キーワードは集中管理!

NT4って便利やんうちの部署でもサーバ建てよ

NT4って便利やんうちの部署でもサーバ建てよ

うNT4って便利やん

うちの部署でもサーバ建てよう

Page 6: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• Windows OSでは、領域をドメインとして管理

• 信頼関係

– NT4ドメイン:非推移的

– ADドメイン:非推移的 and推移的

従来のバージョンのドメインとADのドメイン

数が多いと管理が大変(組み合わせ爆発)

A

B C

設定:AとB、AとCは信頼関係BとCは信頼関係ではない

非推移的信頼関係

A

B C

設定:AとB、AとCは信頼関係BとCも信頼関係になる

推移的信頼関係

推移的に信頼

集中管理が可能!

Page 7: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

Active Directoryの管理対象

Windowsユーザー ユーザー情報 権限 プロファイル ポリシー

アプリケーション サーバー設定 シングルサインオン アプリケーション個別

のディレクトリ情報 ポリシー

Windowsクライアント 管理プロファイル ネットワーク情報 ポリシー

Windowsサーバー 管理プロファイル ネットワーク情報 サービス プリンタ ファイル共有 ポリシー

ネットワークデバイス 設定 QoSポリシー セキュリティポリシー

Internet

Firewall サービス 設定 セキュリティポリシー VPNポリシー

他のOS ユーザー セキュリティ ポリシー

E-Mail サーバー メールボックス情報 アドレス帳

ActiveDirectory ユーザー/リソース

セキュリティ 委任 ポリシー

Page 8: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• ポリシーとは(Policy←weblioへのリンク)

– ポリシーの適用≒方針に従った設定を適用

• NT4時代のポリシー

– 基本的にOSのUIなどの設定(レジストリと対応)

– 適用先(基本的にフラットな構造)

• ユーザーグループ

• 個々のコンピューター

• 既定のコンピュータ

ポリシー

全社IT担当

なんや、全社の一部の設定が変わったら全部再コピペorz

⇒階層構造

ポリシー言うんやったらもっと設定出来てもえぇんとちゃう?

⇒グループポリシー

Page 9: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• OU(組織単位)

– ポリシーはOU単位

– 対象に近いポリシーが上書きされる

階層構造の実現

第 1 章 : セキュリティ ベースラインの実装」http://technet.microsoft.com/ja-jp/windows/bb629421

Explorerのフォルダと同じイメージ

・「未構成」とすることで、上位の設定を引き継げる⇒ADより前は、上位組織の設定が変わると下位組織用のポリシーもすべて最コピペが必要だった

Page 10: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• PC1の設定は!?

【ヒント】上位から順番に上書きされる

例:グループポリシーの適用順

「第 1 章 : セキュリティ ベースラインの実装」http://technet.microsoft.com/ja-jp/windows/bb629421

設定1:A1設定2:B1

全体

設定1:未構成設定2:未構成設定3:C1

チーム

設定1:未構成設定2:B3

部門

PC1回答用紙:設定1:設定2:設定3:

A1(全体)B3(部門)C1(チーム)

適用順

Page 11: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• グループポリシーとは

– NT4の頃のようにレジストに書きっぱなし(タトゥーイング)が原則無くなった

⇒ポリシーを外せば、設定も外れる

– ともかく設定できる項目が多い

• パスワードなどのセキュリティ

• OSの設定

• アプリケーションの配布

• フォルダのリダイレクト

– カスタマイズ可能

グループポリシー

Page 12: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• 標準インタフェース

• プログラミングインタフェース

– C++

– WMI

– PowerShell プロバイダ

– .NET Framework

– その他いろいろ楽しめます^^

Active Directoryのインタフェース

Page 13: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• Active Directory ドメイン サービス

• Active Directory 証明書サービス

• AD Rights Management サービス

• AD ライトウェイト ディレクトリ サービス

• AD フェデレーション サービス

Active Directoryの5つのサービス

Page 14: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

さて、叩きまくってみましょう

まっぺん見直してみるActive Direcotry

Page 15: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• WMIは強力ですが、なんとなくVBSチックに

• .NET FrameworkはVBチックに

⇒(個人的にはVB系最強に好き)

• Windows Server 2008 R2から結構まともに

やっぱりAD向けPowerShellプロバイダでしょうw

モジュール名:ActiveDirectory

Page 16: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• 初めにすること

– プログラミング:Hello World

– PowerShell:Get-Command

– PS プロバイダ:cd と ls ←(dir とか初月(ry

プロバイダを読んだら初めは……

Page 17: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• では、Usersの下に移ってみましょう

■chukitestドメイン

• CD cukitest ダメじゃんorz

• CD ‘dc=chukitest,dc=local’

• CD Users ダメじゃんorz

• CD cn=Users

では、まずはUsersコンテナのユーザー一覧など

Page 18: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• ユーザーとコンピュータの改廃!

• 資産一覧リストの作成!

• チョー面倒

そんなとき、大人は……

Active Directoryでの主な作業

パンピーはPowerShellでガンバる

http://technet.microsoft.com/ja-jp/forefront/cc470030.aspx

Page 19: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• OUとかユーザーをさっくり作ったり消したり

– Mkdir ou=TestOU

– rm ou=TestOU

– New-ADUser TestADUser

– Del TestADUser

⇒個人的な感想

で、何に使うの?

Ls(Get-ChildItem)なんかで内容を確認するには大賛成バッチなどで、OUごとに分けて相対パスとして移動後まとめて作成

⇒絶対パス指定のコピペミスを防ぐ➡今後はDSCでガシガシ

Page 20: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• すべてのユーザーを取得

Get-ADUser –Filer *

⇒簡単すぎて涙が出ます^^

使用例:

$users = Get-ADUser –Filer * | Select name

$Users | Export-CSV –Path c:¥etc¥test.csv

で、ユーザーの一覧とかは?

Page 21: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• .NET Frameworkでゴリゴリ

(そんなに難しくないけれど少しイケてない)

■ユーザーの一覧取得

PS C:¥> $ADs = New-Object System.DirectoryServices.DirectorySearcherPS C:¥> $ADs.Filter = "(objectClass=user)"PS C:¥> $ADsUsers = $ADs.FindAll()

プロバイダなしに頑張ってみる

Page 22: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• できた$ADsUsersがちと面倒

⇒ GetDirectoryEntry()で一個づつ展開

さらに、ユーザー名sAMAccountnameを取得

これをテキストに展開$Users = $ ADsUsers | foreach {$_.GetDirectoryEntry()}

$UserName = $ Users | select sAMAccountname –ExpandProperty *

$DN = $ Users | select DistinguishedName –ExpandProperty *

⇒一つのプロパティごとに展開……orz

プロバイダじゃないので……

昔のVBS&WMIみたいでイヤーん><

Page 23: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• プロバイダは便利なのでどんどん使いましょう

• 今後、いろんなプロバイダが出てくるのでお勉強^^

結論

Page 24: PowerShell と Active Directory

PowerShell勉強会@大阪 第1回勉強会

• Active Directoryの世界は深く楽しく^^

ご清聴ありがとうございました