7
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PowerShellでActiveDirectory管理をラクしよう

Last updated at Posted at 2018-07-01

#前提条件
・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更新)
「逆引き参照ゾーン」を作成する。
[link2]:https://www.rem-system.com/post-703/#i-4
[Active Directoryをインストールした後に、必要なDNSの逆引きを設定する:Rem System Techlog][link2]
以上リンク先手順の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年代なサウンドがたまらないです。

7
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?