Help us understand the problem. What is going on with this article?

PowerShellでActiveDirectory管理をラクしよう

More than 1 year has passed since last update.

前提条件

・WindowsServer2012R2
・PowerShell2.0
・ドメイン名:contoso.local
・利用ユーザ:Domain Adminsグループのユーザ

実施前後の証跡(2018/7/19更新)

LinuxやNW機器でよく使うTeraTerm。あれの操作ログ保存機能がPowerShellにもあります。

コマンド実行結果のログ取得開始(2018/7/19更新)

Start-Transcript ログ保存先パス\ログファイル名.log

.logとしていますが、.txtでもなんでもいいです。

コマンド実行結果のログ取得終了(2018/7/19更新)

Stop-Transcript

作業が終わったら以上を打ってログ取得を終了します。

参照、確認系コマンド

OUの確認


Get-ADOrganizationalUnit

これだけはでは見やすさがない結果が出るので、Select-Objectなどをパイプさせて組み合わせると見やすい。個人的によく使うのは以下。

Get-ADOrganizationalUnit -filter "*" | Select-Object {$_.name, $_.DistinguishedName}

ADユーザーの確認


Get-ADUser

これもSelect-Objectでパイプさせる。

Get-ADUser -filter * | Select-Object {$_.name, $_.DistinguishedName}

必要に応じて{}内の引数を足すと便利。

ADコンピュータオブジェクトの確認

Get-ADComputer

例のごとくフィルター。

Get-ADComputer -filter * | Select-Object {$_.name, $_.DistinguishedName}

グループポリシーオブジェクトの確認

どのようなグループポリシーが存在しているか、までを確認する。ポリシーの中身は関知しないコマンドである。

Get-GPO -All

DNSレコード関連

Aレコード(前方参照)確認。

Get-DnsServerResourceRecord -ZoneName "contoso.local" -RRType "A"

逆引き参照ゾーンの内容確認。

Get-DnsServerResourceRecord -ZoneName XXX.XXX.XXX.in-addr.arpa -RRType PTR

レプリケーション確認(2018/7/19更新)

複数のADサーバがあり、冗長構成かつレプリケーション構成をしている場合に、双方の同期を確認するコマンド。(厳密に書くとPowerShellでないんだけど・・・cmdでもできる・・・)

repadmin /showrepl

追加、更新系コマンド

OU追加

GUIで作成するのもありだが、大量にOUを作るのは不便。そこで以下コマンドを利用する。

New-ADOrganizationalUnit

以下はこのようなOUを作るとき。
既存OU構成(上位OUから) :OUComputer\Sales\CompanySales\
新規作成OU       :OUComputer\Sales\CompanySales\section1

New-ADOrganizationalUnit -Name section1 -Path "OU=CompanySales,OU=Sales,OU=OUComputer,DC=contoso,DC=local"

ドメインユーザーのパスワード無期限(2018/7/20更新)

有効期限を設けているドメインユーザーでは問題ない。しかしサービスアカウントなどのドメインユーザーで、パスワード有効期限を不要とする場合、問題が発生する。
1ドメインユーザーに対してであれば、GUIで実施してもよいが、複数(数十~百以上)のユーザーが対象だと大変。以下コマンドでシンプルに変更できる。

Set-ADUser

例。
パスワードを無期限にしたいドメインユーザー名:TestUser001

Set-ADUser -Identity TestUser001 -PasswordNeverExpires $True

DNS参照ゾーンの追加(2018/7/19更新)

「逆引き参照ゾーン」を作成する。

Active Directoryをインストールした後に、必要なDNSの逆引きを設定する:Rem System Techlog
以上リンク先手順のCLI化が以下となる。ちなみにDNSはActiveDirectory統合環境を想定。

Add-DnsServerPrimaryZone -NetworkID ***.***.***.0/24 -ReplicationScope Domain DynamicUpdate None

..***.0/24」は作成する逆引き参照ゾーンのネットワークID名。24bitサブネットマスクでの例となる。必要に応じて変更する。
以下のゾーンを追加する場合はこんな感じ。
ゾーン名:0.168.192.in-addr.arpa

Add-DnsServerPrimaryZone -NetworkID 192.168.0.0/24 -ReplicationScope Domain DynamicUpdate None

以上の例では、動的更新の設定は無効に指定している(DynamicUpdate None)。
これも必要に応じてNone以外に指定可能。
ゾーンデータのレプリケート方法は「ドメイン」に指定。GUI手順と同様にフォレストなどに指定可能。

DNSレコード追加(2018/7/19更新)

前方参照レコード(Aレコード)/逆引き参照レコード(PTRレコード)を同時に作成する。以下のレコードを追加する場合。
ホスト名:TESTSRV
IPアドレス:192.168.0.1

Add-DnsServerResourceRecordA -ZoneName contoso.local -Name "TESTSRV" -IPv4Address "192.168.0.1" -CreatePtr

「-CreatePtr」オプションをつけなければ、文字通り前方参照レコードのみ作成する。

レプリケーション(2018/7/19更新)

ActiveDirectoryを複数立てて同期させている環境の場合、コマンドにより同期を実施。(これも厳密に書くとPowerShellでないんだけど・・・w)
障害で同期されなかった場合などに使えます。
以下のような例、状況の場合。
同期元ADサーバホスト名:ADSRV01
同期先ADサーバホスト名:ADSRV02
 ・同期元ADサーバホストADSRV01でなんらかの更新作業実施。
 ・作業後、同期先ADSRV02が同期されていないことが発覚。
 ⇒手動で同期をかけたい。

repadmin /replicate ADSRV02 ADSRV01 DC=contoso,DC=local 

グループポリシーの更新処理(2018/7/19更新)

グループポリシーの管理などで新規にGPOを作成、既存のGPOを変更。またはGPOを対象のOUにリンクした場合。以下コマンドをADサーバ上で実施する。

gpupdate /force

ActiveDirectoryはけっこうおバカさんなので、GPOの反映に時間がかかる。そこでAD自身でgpupdateをかけてあげることで、グループポリシーの更新を手動でかけてあげる。

その他追記予定。

Bruno Mars-Finesse(Remix) Feat.Cardi Bで締める。
カーディーBのカーディーは「バカルディ(酒)」からとったものらしい。ビバ90年代なサウンドがたまらないです。

If_it_bleeds-we_can_kill_it
名もなきインフラエンジニア。 好きなお姉ちゃん:ジェニファーロペス(セクシー番長) 好きなお兄ちゃん:ブルーノマーズ(ベガスで札束投げながらカジノする兄貴) 好きな言葉:言いたいことも言えないこんな世の中じゃ・・・(byポイズン反町)。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away