特定のActive Directoryグループ内のすべてのユーザーを一覧表示するコマンドラインの方法はありますか?
[コンピューターの管理] -> [ ローカルユーザー/グループ] -> [ グループ ]に移動し、グループをダブルクリックすると、グループ内のユーザーを確認できます。
データを取得するにはコマンドラインの方法が必要なだけなので、他の自動化されたタスクを実行できます。
特定のActive Directoryグループ内のすべてのユーザーを一覧表示するコマンドラインの方法はありますか?
[コンピューターの管理] -> [ ローカルユーザー/グループ] -> [ グループ ]に移動し、グループをダブルクリックすると、グループ内のユーザーを確認できます。
データを取得するにはコマンドラインの方法が必要なだけなので、他の自動化されたタスクを実行できます。
回答:
試してみる
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand
ネストされたグループのメンバーを取得しますが、重複の助けにはならない場合があり、CNだけでなく、メンバーの完全なADクエリ文字列を提供します。
コマンドプロンプトからの別の方法を次に示しますが、出力を解析する必要があるため、どのように自動化できるかはわかりません。
グループが「グローバルセキュリティグループ」の場合:
net group <your_groupname> /domain
「ドメインローカルセキュリティグループ」を探している場合:
net localgroup <your_groupname> /domain
net user /domain
)。ありがとう!
これは、特に複雑なOU構造があり、必ずしもグループの完全な識別名を知らない場合に便利な、dsコマンドのバージョンです。
dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand
または、通常はSAM IDと同じグループのCNを知っている場合は、名前にスペースが含まれている場合に引用されます。
dsquery group -name "Group Account Name" | dsget group -members -expand
コメントに記載されているように、デフォルトではds *コマンド(dsquery、dsget、dsadd、dsrm)はドメインコントローラーでのみ使用できます。ただし、Windows Serverインストールメディアのサポートツールから管理ツールパックをインストールするか、Microsoftダウンロードサイトからダウンロードできます。
PowerShellを使用してこれらのクエリを実行することもできます。PowerShellは、Server 2008、2008 R2、およびWindows 7のインストール可能な機能として既に利用可能ですが、WinRMフレームワークをダウンロードしてXPまたはVistaにインストールする必要があります。
PowerShellで任意のAD固有のコマンドレットへのアクセスを取得するには、なりますALSO次のインストールのうちの少なくとも1つを実行する必要があります。
Quest ADアドインを必要としないPowerShellソリューションについては、次を試してください。
Import-Module ActiveDirectory
Get-ADGroupMember "Domain Admins" -recursive | Select-Object name
これにより、ネストされたグループも列挙されます。そうしたくない場合は、-recursiveスイッチを削除してください。
サーバーとクライアントで動作する非常に簡単な方法:
NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"
ユーザーがグループYOURGROUPNAMEに属している場合は1を返し、そうでない場合は0を返します
次に、%ERRORLEVEL%値(グループ内のユーザーの場合は0、そうでない場合は1)を使用できます
IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
whoami /groups | find /I /C "YOURGROUPNAME"
PowerShellとQuest SoftwareのActive Directory用の無料のActiveRoles管理シェルを使用すると、次を使用できます。
(Get-QADGroup "GroupName")。メンバー
これらのコマンドはWindowsの他のバージョン(Windows 7など)には付属していないためdsget
、ここでの回答はdsquery
、サーバーバージョンのWindowsでのみ機能します。これらのコマンドのないマシンでは、AdFindコマンドを使用して必要な情報を取得できます。
グループメンバーシップを取得するためのクエリの例を次に示します。
AdFind.exe -default -f name="Domain Admins" member -list
ローカルグループとユーザーを一覧表示する方法は?
次の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からこれを実行できます。
cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters:
そして入力を求めますProcess[0]
UserGroup1
tryの表示メンバーの場合:
dsquery group -name UserGroup1 | dsget group -members | dsget user -display
cmd
。何らかの理由で、からうまく機能しないと思います。
dsget failed:'Target object for this command' is missing.