コマンドラインからユーザーの切り捨てられていないActive Directoryグループを取得する


90

net userユーザーのADグループを確認するためにコマンドをよく使用します。

net user /DOMAIN <username>

これは適切に機能しますが、グループ名は約20文字に切り捨てられます。そして、私の組織では、ほとんどのグループ名がこれよりはるかに長くなっています。

コマンドラインから切り捨てられていないADグループを取得する方法を知っている人はいますか?


1
この質問の日付に基づいて、このコマンドを実行すると、より大きな名前のグループが返されたため、20文字の切り捨てはもはや問題ではないと思います。以下の答えwhoami /groupsも良いものです。ただし、現在ログインしているユーザーのグループのみがリストされます。なりすましと巧妙なプログラミングはそれを回避することができます;)
Richard Barker

2
私の組織のドメインのユーザーに対して実行しました。20文字の切り捨てはまだ問題です。
SherlockSpreadsheets

いい質問ですね、アグアド!
バート

回答:


-9

GPRESULTコマンドからの出力を解析できます。


67
例がなければこれは役に立たない答えです
qujck

8
しかし、それは正しい役に立たない答えです...どうやら。
ウォーロード099 2016年

ADグループは表示されません。他のものがたくさん表示されますが、ADグループは表示されません。
John Rocha、2016年

みんな、当時(尋ねられ、2009年に回答された)、これは、OPが必要とすることを実際に行う唯一の方法でした。グループ名の20文字の後の切り捨てについて言及していることに注意してください。
Richard Barker

@RichardBarker:切り捨てはまだ2019年にNET USERで起こっている
ロス押え

108

GPRESULT正しいコマンドですが、パラメータなしでは実行できません。 /vまたは詳細オプションは、テキストファイルに出力しないと管理が困難です。EGの使用をお勧めします

gpresult /user myAccount /v > C:\dev\me.txt-C:\ Dev \ me.txtが存在することを確認します

別のオプションは、コマンドウィンドウに完全に表示される可能性がある要約情報のみを表示することです。

gpresult /user myAccount /r

アカウントは見出しの下に表示されます。

The user is a part of the following security groups
---------------------------------------------------

6
これが答えになるはずです
LT

1
特定の文字列を探している場合は、findstr出力をファイルにリダイレクトしてからファイルを検索する代わりに使用できます。たとえば、gpresult /user myAccount /r | findstr mySearchString
Jesse

2
これを自分のユーザーアカウントに対して実行すると、すばらしいです。セキュリティグループを確認できます。別のユーザーアカウントで実行すると、コマンドから次のメッセージが返されます。ユーザー "userNameHere"にはRSOPデータがありません。
SherlockSpreadsheets

59

少し古い投稿ですが、一体何を考え出したのでしょう。「whoami」はあなたのニーズを満たしていますか?

今日私はそれについて知りました(実際、私をここに連れてきたのと同じGoogle検索から)。Windowsには、XP(アドオンツールキットの一部)からwh​​oamiツールがあり、Vistaから組み込まれています。

whoami /groups

現在ログオンしているユーザーのすべてのADグループを一覧表示します。ただし、そのユーザーとしてそのユーザーとしてログオンする必要があると思います。そのため、ユースケースでコマンドを実行して別のユーザーを見る必要がある場合、これは役に立ちません。

グループ名のみ:

whoami /groups /fo list |findstr /c:"Group Name:"

私はWhoAmIユーザー名を取得するために非常に長い間使用してきましたが、今日はそれでより多くのことができることを理解しています!ありがとうございました。
MaYaN

3
グループ名のみをリスト:(for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"注:バッチファイル%%%はなく使用)
Lectrode

完璧!古い投稿に新鮮な答えを提供することを躊躇しないでください!
Bart

5

または、dsquerydsgetを使用することもできます。

dsquery user domainroot -name <userName> | dsget user -memberof

次のようなグループメンバーシップを取得するには:

Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"

このパッケージを自分のコンピューターにインストールしたという証拠は見つかりませんが、Windows 7用のリモートサーバー管理ツールのインストールが必要になる場合があります


1

PowerShellではるかに簡単な方法:

Get-ADPrincipalGroupMembership <username>

要件:-Credentialand -Server(テストしない)を指定しない限り、自分で実行しているアカウントは、ターゲットユーザーと同じドメインのメンバーである必要があります。

さらに、Active Directory Powershellモジュールがインストールされている必要があります。これは、@ dave-lucreが別の回答へのコメントで言っているように、常にオプションであるとは限りません。

グループ名のみの場合は、次のいずれかを試してください。

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name

1
正解です。これは機能しますが、それが簡単になるとは確信が持てません:) 結果を解析してグループ名のリストを取得する必要があります(これで拡張します!)。これはPSに詳しい技術者にとっては難しいことではありませんが、DOSバッチからPSへの飛躍は決して簡単なものではありません。
hector-j-rivas

0

1
Active Directory Powershellモジュールをインストールせずにこれを行うことはできません(これは常にオプションとは限りません)
Dave Lucre

1
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- レビューから
Zulan

@Zulan:7歳の答えに時間を浪費している!それだけでなく、受け入れられた答えに同じ方法でコメントしていないので、それはまた違和感があります。
ミッチウィート2016年

@MitchWheat:From Review彼のコメントの最後にあるリンクに気づきましたか?彼はレビューでそれに遭遇しなかったので、受け入れられた答えについてコメントしませんでした。
zondo 2016年

やった。私はレビュアーが少なくとも受け入れられた答えをチェックするだろうと思ったでしょう。
ミッチウィート

0

P.Brian.Mackeyの回答に基づいてgpresult /user <UserName> /r、コマンドを使用してみましたが、自分のユーザーアカウントでしか機能しないようです。他のユーザーアカウントの場合、次の結果が得られました。The user "userNameHere" does not have RSOP data

そこで、私はこのブログ(https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html)を読み、解決策を見つけました。ユーザーのコンピューター名を知っている必要があります。

gpresult /s <UserComputer> /r /user:<UserName>

コマンドを実行した後ENTER、プログラムが出力の途中で一時停止するため、プログラムが完了するまでに数回かかる必要があります。また、結果には、「COMPUTER SETTINGS> Applied Group Policy Objects」、「」、「」、そして「COMPUTER SETTINGS> Security groups」のセクションを含む大量のデータが含まれていましたUSER SETTINGS> security groups(これは我々が非切り捨て説明で記載されているADグループで探しているものです!)」。

興味深いことに、GPRESULTには、NET USERコマンドでは表示されない追加のメンバーがいくつかありました。また、ソート順が一致せず、アルファベット順でもありません。素晴らしいコメントにさらに洞察を加えることができる組織。

結果: gpresult (with ComputerName, UserName)

セキュリティ上の理由から、メンバーシップの結果のサブセットのみを含めました。(36合計、12サンプル)

The user is a part of the following security groups
---------------------------------------------------
..
 Internet Email 
 GEVStandardPSMViewers  
 GcoFieldServicesEditors    
 AnimalWelfare_Readers  
 Business Objects   
 Zscaler_Standard_Access    
..
 GCM    
..
 GcmSharesEditors   
 GHVStandardPSMViewers  
 IntranetReportsViewers 
 JetDWUsers     -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
 Time and Attendance Users  
..

結果: net user /DOMAIN (with UserName)

セキュリティ上の理由から、私はメンバーシップ結果のサブセットのみを含めました。(23合計、12サンプル)

Local Group Memberships  
Global Group memberships    ...
                             *Internet Email       *GEVStandardPSMViewers
                             *GcoFieldServicesEdito*AnimalWelfare_Readers
                             *Business Objects     *Zscaler_Standard_Acce
                             ...
                             *Time and Attendance U*GCM
                             ...
                             *GcmSharesEditors     *GHVStandardPSMViewers
                             *IntranetReportsViewer*JetPowerUsers
The command completed successfully.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.