web-dev-qa-db-ja.com

ユーザーのグループの出力リスト

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

さて、これは複雑な方法で行うことができるので、前述したように、ユーザーのセキュリティグループのみを出力できるコマンドがあるとしたら、それは素晴らしいことです。

7
Smitty
dsquery user -name "My Full Name" | dsget user -memberof | dsget group -samid

誰かが興味を持った場合に備えて、これは私が探していたものをほとんど与えてくれることがわかりました! :)

2
Smitty

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

http://social.technet.Microsoft.com/Forums/en-US/winserverpowershell/thread/67defa12-6ad1-439b-bd11-3abfc5b5208a/

3
Andy Arismendi

うーん。

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にはグループが含まれます。

2
Paul