Windows Active Directoryのグループ内のユーザーをリストアップするコマンドライン?

特定のActive Directoryグループに所属するすべてのユーザーをリストアップするコマンドラインの方法はありますか?

コンピュータの管理 --> ローカルユーザー/グループ --> グループ*に移動して、グループをダブルクリックすると、グループに参加している人を確認することができます。

私はただ、データを取得するコマンドラインの方法が必要で、そうすれば他の自動化されたタスクを実行することができます。

コマンドプロンプトからの別の方法は次のとおりです。出力を解析する必要があるため、自動化できるかどうかはわかりません。

グループが「グローバルセキュリティグループ」の場合:

net group  /domain

「ドメインローカルセキュリティグループ」を探している場合:

net localgroup  /domain
解説 (7)

特に、複雑なOU構造を持ち、グループの完全な識別名を必ずしも知らない場合、より一般的に有用と思われるdsコマンドのバージョンを紹介します。

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

または、グループのCNをご存知の場合、通常はSAM IDと同じですが、名前にスペースがある場合は引用します。

dsquery group -name "Group Account Name" | dsget group -members -expand

コメントにあるように、デフォルトではds*コマンド(dsquery、dsget、dsadd、dsrm)はDomain Controllerでのみ利用可能です。 ただし、Windows ServerのインストールメディアのサポートツールからAdmin Toolsパックをインストールするか、マイクロソフトのダウンロードサイトからダウンロードすることができます。

また、これらのクエリーはPowerShellを使用して実行することができます。 PowerShellは、Server 2008、2008 R2、Windows 7ではすでにインストール可能な機能として提供されていますが、XPやVistaにインストールするには、WinRM Frameworkのダウンロードが必要です。

PowerShellでAD固有のコマンドレットにアクセスするためには、以下の少なくとも1つのインストールが必要ですALSO

  • Win 7および2008 R2クライアントでは、Remote Server Admin Toolsをインストールすることができます。 また、RSATは、Server 2008 R2 Domain ControllersにActive Directory Web Services機能、またはServer 2003/2008 DCActive Directory Management Gateway Service をインストールしていることが必要です。
  • XP以上のクライアントでは、「Quest ActiveRoles Management Shell for Active Directory」3をダウンロードし、インストールしてください。 Questのツールは、DCに追加の変更を加える必要はありません。
解説 (3)
ソリューション

為す

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
解説 (5)

Quest ADアドインを必要としないPowerShellソリューションについては、以下を試してください。

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

これにより、ネストされたグループも列挙されます。 希望しない場合は、-再帰スイッチを削除してください。

解説 (1)

サーバーとクライアントで機能する非常に簡単な方法:

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

ユーザーがグループYOURGROUPNAMEにいる場合は1を返し、それ以外の場合は0を返します。

次に、%ERRORLEVEL%の値(グループのユーザーの場合は0、グループの場合は1)を使用できます。

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
解説 (1)

PowerShellとQuest Software'Free ActiveRoles Management Shell for Active Directoryを使用することで、使用することができます。

(Get-QADGroup "GroupName").Members

http://www.quest.com/powershell/activeroles-server.aspx

解説 (1)

ここで「dsget」と「dsquery」を使用する回答は、Windowsのサーバーバージョンでのみ機能します。これらのコマンドは、他のバージョンのWindows(たとえば、. Windows 7)。 これらのコマンドがないマシンでは、AdFindコマンドを使用して、必要な情報を取得できます。

グループメンバーシップを取得するためのクエリの例を次に示します。

AdFind.exe -default -f name="Domain Admins" member -list
解説 (1)

ローカルグループとユーザーをリストする方法?

次のpowershellスクリプトを使用して、ローカルグループとそれらのグループのメンバーをリストします。

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-host
}

上記のテキストをコピーしてメモ帳に移動し、「filename.ps1」として保存します。 次にファイルを実行します。 各グループにグループとユーザーを表示する必要があります。そうしないと、powershellから実行できます。

解説 (1)

UserGroup1の表示メンバーについては、試してください。

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
解説 (4)