powershell と active directory

Post on 12-Nov-2014

1.498 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

PowerShellとActive Directory

平成26年4月12日

ちゅき

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

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

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

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

• いわゆる一般優良市民

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

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

自己紹介など

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

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

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

• Active Directoryの歴史と概要

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

Agenda

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

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

ACTIVE DIRECTORYの歴史

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

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

NT4からWindows 2000へ

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

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

うNT4って便利やん

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

部門担当者

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

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

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

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

キーワードは集中管理!

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

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

うNT4って便利やん

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

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も信頼関係になる

推移的信頼関係

推移的に信頼

集中管理が可能!

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

Active Directoryの管理対象

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

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

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

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

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

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

Internet

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

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

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

ActiveDirectory ユーザー/リソース

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

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

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

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

• NT4時代のポリシー

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

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

• ユーザーグループ

• 個々のコンピューター

• 既定のコンピュータ

ポリシー

全社IT担当

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

⇒階層構造

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

⇒グループポリシー

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

• OU(組織単位)

– ポリシーはOU単位

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

階層構造の実現

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

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

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

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(チーム)

適用順

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

• グループポリシーとは

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

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

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

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

• OSの設定

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

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

– カスタマイズ可能

グループポリシー

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

• 標準インタフェース

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

– C++

– WMI

– PowerShell プロバイダ

– .NET Framework

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

Active Directoryのインタフェース

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

• Active Directory ドメイン サービス

• Active Directory 証明書サービス

• AD Rights Management サービス

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

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

Active Directoryの5つのサービス

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

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

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

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

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

• .NET FrameworkはVBチックに

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

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

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

モジュール名:ActiveDirectory

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

• 初めにすること

– プログラミング:Hello World

– PowerShell:Get-Command

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

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

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

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

■chukitestドメイン

• CD cukitest ダメじゃんorz

• CD ‘dc=chukitest,dc=local’

• CD Users ダメじゃんorz

• CD cn=Users

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

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

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

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

• チョー面倒

そんなとき、大人は……

Active Directoryでの主な作業

パンピーはPowerShellでガンバる

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

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

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

– Mkdir ou=TestOU

– rm ou=TestOU

– New-ADUser TestADUser

– Del TestADUser

⇒個人的な感想

で、何に使うの?

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

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

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

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

Get-ADUser –Filer *

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

使用例:

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

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

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

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

• .NET Frameworkでゴリゴリ

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

■ユーザーの一覧取得

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

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

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

• できた$ADsUsersがちと面倒

⇒ GetDirectoryEntry()で一個づつ展開

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

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

$UserName = $ Users | select sAMAccountname –ExpandProperty *

$DN = $ Users | select DistinguishedName –ExpandProperty *

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

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

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

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

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

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

結論

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

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

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

top related