web-dev-qa-db-ja.com

Windows Active Directoryグループのユーザーを一覧表示するコマンドライン?

特定のActive Directoryグループ内のすべてのユーザーを一覧表示するコマンドライン方法はありますか?

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

他のいくつかの自動化タスクを実行できるように、データを取得するためのコマンドライン方法が必要です。

138
Flyer

試す

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
37
pQd

コマンドプロンプトからの別の方法を次に示します。ただし、出力を解析する必要があるため、自動化がどの程度可能かはわかりません。

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

net group <your_groupname> /domain

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

net localgroup <your_groupname> /domain
243
asdasddfg

これは、特に複雑な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)はドメインコントローラーでのみ使用できます。ただし、Windows Serverインストールメディアのサポートツールから、またはMicrosoftダウンロードサイトから download it から管理ツールパックをインストールできます。

PowerShellを使用してこれらのクエリを実行することもできます。 PowerShellは、Server 2008、2008 R2、およびWindows 7のインストール可能な機能としてすでに利用可能ですが、インストールするためには WinRMフレームワークをダウンロード する必要がありますXPまたはVista。

PowerShellでAD固有のコマンドレットにアクセスするには、[〜#〜]また[〜#〜]次のインストールの少なくとも1つを実行する必要があります。

49
Ryan Fisher

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

Import-Module ActiveDirectory

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

これにより、ネストされたグループも列挙されます。そうしたくない場合は、-recursiveスイッチを削除します。

25
pk.

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

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

ユーザーがグループYOURGROUPNAMEに属している場合は1を返し、そうでない場合は0を返します

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

IF %ERRORLEVEL%==0 Net Use %LOGONSERVER%\YOURGROUPSHARE
17
deajan

PowerShellおよびQuest SoftwareのActive Directory用の無料のActiveRoles管理シェルを使用すると、以下を使用できます。

(Get-QADGroup "GroupName")。Members

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

10
Gordon Bell

ここでのdsgetdsqueryを使用した回答は、サーバーのバージョンのWindowsでのみ機能します。これらのコマンドは他のバージョンのWindows(Windows 7など)には同梱されていないためです。これらのコマンドのないマシンでは、 AdFindコマンド を使用して必要な情報を取得できます。

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

AdFind.exe -default -f name="Domain Admins" member -list
7
markshep

ローカルグループとユーザーを一覧表示する方法は?

次の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から実行できます。

4
Sysadmin

UserGroup1のディスプレイメンバーの場合:

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
3
vadim