Linuxでは簡単ですが、Windowsではこれまでに収集できたものほど簡単ではありません。私はちょっと私が望むことをするコマンドを見つけました:それは:
Net User username /domain
ただし、グループのリストを除くすべてのデータを削除したいと思います。 findstrが答えかもしれないと思いますが、これを使用してそれを行う方法がわかりません。基本的に、スクリプトは次のようなことを行うと思います(すばらしいコマンドがない限り)。
Net User username /domain > temp.txt
findstr (or some other command) file.txt > groups.txt
del temp.txt
データの出力は次のようなリストになります。
group1; group2; group3
さて、これは複雑な方法で行うことができるので、前述したように、ユーザーのセキュリティグループのみを出力できるコマンドがあるとしたら、それは素晴らしいことです。
dsquery user -name "My Full Name" | dsget user -memberof | dsget group -samid
誰かが興味を持った場合に備えて、これは私が探していたものをほとんど与えてくれることがわかりました! :)
PowerShellを使用してください!
$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group')
またはグループ名のみ:
$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group') | Select Name
うーん。
Net User paul /domain | find "Global Group memberships"
グループを提供しますが、ヘッダーが必要ない場合は、さらに複雑なものが必要になります。
for /f "tokens=4*" %f in ('Net User paul /domain ^| find "Global Group memberships"') do echo %f
したがって、%fにはグループが含まれます。