概要
Active Directory 環境においてコンピュータ オブジェクトの所有者を確認する必要性がありその際に確認で来た知見についてまとめます。
所有者情報の確認方法
所有者情報の確認方法は以下となります。
GUIで確認する方法
GUI操作であれば下記になります。
-
ドメイン コントローラーにて [Active Directory ユーザーとコンピューター]を起動します。
-
[表示]をクリックし[拡張機能]にチェックを入れます。
-
所有者を確認したいコンピュータオブジェクトのプロパティを開きます。
-
[セキュリティ]タブを開きます。
-
[詳細設定]をクリックします。
-
画面上部で所有者が表示されれます。
拡張機能を表示しないと確認ができないないところがポイントになります。
コマンド プロンプトのコマンドで確認する方法
事前準備として コンピューターの識別名(DN)を確認します。
こちらもコマンドで取得可能です。
dsquery computer -name <computer_name> | dsget computer -dn
ドメインに所属するコンピューターの識別名を一括でとるなら下記です。
dsquery computer "dc=<domain_name>,dc=<com>" -o dn
で実際に所有者の情報を確認するコマンドは下記です。
dsacls <ObjectDN> | findstr /c:"Owner:"
実行例
dsacls "CN=CL01,CN=Computers,DC=Contoso,DC=com" | findstr /c:"Owner:"
Windows PowerShell のコマンドレットで確認する方法
事前準備としてコマンドの時同様にコンピューターの識別名(DN)を確認します。
こちらもコマンドレットで取得可能です。
Get-ADComputer -Identity Computername | Select-Object -ExpandProperty DistinguishedName
ドメインに所属するコンピューターの識別名を一括でとるなら下記です。
Get-ADComputer -Filter * -SearchBase "DC=<domain_name>,DC=<com>" -Properties DistinguishedName | Select-Object DistinguishedName
で実際に所有者の情報を確認するコマンドレットは下記です。
get-acl -Path "ad:\<ObjectDN>" | Select-Object owner
実行例
get-acl -Path "ad:\CN=CL01,CN=Computers,DC=Contoso,DC=com" | Select-Object owner
Windows PowerShell のスクリプトで一括で確認する方法
下記スクリプトでドメインに所属するコンピューター オブジェクトの所有者を一括で確認することが可能です。
$computers = Get-ADComputer -Filter *
foreach ($computer in $computers) {
$acl = Get-Acl -Path "AD:\$($computer.DistinguishedName)"
$owner = $acl.Owner
Write-Output "$($computer.Name) owned by $owner"
}
本スクリプトでは Get-ADComputer でドメイン内の全てのコンピュータ オブジェクトの一覧を取得し、Get-Acl で所有者情報を取得して出力をしています。
最後に
コンピュータ オブジェクトの所有者を確認されたい場合は上記のいずれかにて確認をしていただければと思います。
でそもそもコンピューター オブジェクトの所有者を確認されたい場合に本当に確認したいのは所有者情報ではないのではなくほかの情報を確認したいというニーズから派生しているのではないかと思います。
そちらについては別途まとめたいと思います。