トップ回答者
ADにログオンしているユーザのObjectGUIDを取得したいが、どのような方法があるでしょうか?

質問
回答
-
ObjectGUID 属性でいいでしょうか?
以下のサンプルスクリプトが参考になりそうです。Hey, Scripting Guy! ユーザーのログオン名とドメインしかわからない場合に、ユーザー アカウントの GUID を取得する方法はありますか
https://gallery.technet.microsoft.com/scriptcenter/f8574570-55a8-4554-a315-6a4de64318f5検証環境で試してみたら問題なく取得できました。
- 回答の候補に設定 チャブーンMVP, Moderator 2015年3月5日 3:11
- 回答としてマーク 佐伯玲 2015年3月16日 2:04
-
チャブーンです。
mu100さんの回答が正しいかと思います。
どうせならPowerShellで、ということであれば、したのページに同じオブジェクト(NameTranslate)でのサンプルがありましたで、補足としてお知らせします。このオブジェクトはCOMオブジェクトなので、PowerShell上でもCOMObjectとして宣言する必要があります。
http://windowsitpro.com/active-directory/translating-active-directory-object-names-between-formats
で、うえをもとにして質問者さんの要件にあわせたサンプルが、したのものになります。一応動作します。
$ADS_NAME_INITTYPE_GC = 3 $ADS_NAME_TYPE_NT4 = 3 $ADS_NAME_TYPE_GUID = 7 $NameTranslate = New-Object -ComObject "NameTranslate" $NameTranslate.GetType().InvokeMember("Init", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_INITTYPE_GC, "")) | Out-Null $NT4Name = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name $NameTranslate.GetType().InvokeMember("Set", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_TYPE_NT4, $NT4Name)) | Out-Null $NameTranslate.GetType().InvokeMember("Get", "InvokeMethod", $NULL, $NameTranslate, $ADS_NAME_TYPE_GUID)
- 編集済み チャブーンMVP, Moderator 2015年3月5日 4:12
- 回答の候補に設定 佐伯玲 2015年3月6日 6:24
- 回答としてマーク 佐伯玲 2015年3月16日 2:04
すべての返信
-
ObjectGUID 属性でいいでしょうか?
以下のサンプルスクリプトが参考になりそうです。Hey, Scripting Guy! ユーザーのログオン名とドメインしかわからない場合に、ユーザー アカウントの GUID を取得する方法はありますか
https://gallery.technet.microsoft.com/scriptcenter/f8574570-55a8-4554-a315-6a4de64318f5検証環境で試してみたら問題なく取得できました。
- 回答の候補に設定 チャブーンMVP, Moderator 2015年3月5日 3:11
- 回答としてマーク 佐伯玲 2015年3月16日 2:04
-
チャブーンです。
mu100さんの回答が正しいかと思います。
どうせならPowerShellで、ということであれば、したのページに同じオブジェクト(NameTranslate)でのサンプルがありましたで、補足としてお知らせします。このオブジェクトはCOMオブジェクトなので、PowerShell上でもCOMObjectとして宣言する必要があります。
http://windowsitpro.com/active-directory/translating-active-directory-object-names-between-formats
で、うえをもとにして質問者さんの要件にあわせたサンプルが、したのものになります。一応動作します。
$ADS_NAME_INITTYPE_GC = 3 $ADS_NAME_TYPE_NT4 = 3 $ADS_NAME_TYPE_GUID = 7 $NameTranslate = New-Object -ComObject "NameTranslate" $NameTranslate.GetType().InvokeMember("Init", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_INITTYPE_GC, "")) | Out-Null $NT4Name = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name $NameTranslate.GetType().InvokeMember("Set", "InvokeMethod", $NULL, $NameTranslate, ($ADS_NAME_TYPE_NT4, $NT4Name)) | Out-Null $NameTranslate.GetType().InvokeMember("Get", "InvokeMethod", $NULL, $NameTranslate, $ADS_NAME_TYPE_GUID)
- 編集済み チャブーンMVP, Moderator 2015年3月5日 4:12
- 回答の候補に設定 佐伯玲 2015年3月6日 6:24
- 回答としてマーク 佐伯玲 2015年3月16日 2:04