web-dev-qa-db-ja.com

コマンドラインを使用して、Windowsドメイングループ内のすべてのユーザーアカウントを一覧表示しますか?

指定したグループのWindowsドメインコントローラー(Server 2012 R2)のすべての詳細を含むすべてのユーザーアカウントを一覧表示するコマンドを検索/作成したいと思います。

「ネットユーザー」の使用は完璧ですが、このコマンドの出力をすべてのユーザーに対して1つのアクションで実行する方法がわかりません(詳細を知りたい場合は、ユーザーごとにこのコマンドを個別に記述する必要があります)。

「ネットユーザー」を使用する方法がない場合は、

WMIC USERACCOUNT

いいですねただし、指定したグループ(Enterprise Admins、Domain Adminsなど)からも情報を取得する必要があります。
PowerShellを使用できることは知っていますが、CMDの解決策を見つけようとしています。

2
Nick

バッチスクリプト内でPowerShellを使用して、cmdで必要なロジックを実行し、両方の長所を活かすことができます。 GroupName変数の値をクエリする必要のあるグループに変更するだけで、期待どおりにcmdでそのグループのメンバーのリストが表示されるという簡単な例を以下に示します。

これをドメインコントローラーで実行していると言ったので、 Get-ADGroupMember を使用して、必要に応じてcmdを使用しながら、簡単にタスクを実行します。

バッチスクリプト(グループのメンバーのみ)

注:-Recursiveスイッチを追加して、該当する場合は他のネストされたグループメンバーのメンバーを取得します。

@ECHO OFF

SET "GroupName=Domain Admins"
CALL :DynamicPSScriptBuild

SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
PAUSE
EXIT /B

:DynamicPSScriptBuild
SET PSScript=%temp%\~tmp%~n0.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO Get-ADGroupMember -Identity "%GroupName%" ^| Select-Object Name>>"%PSScript%"
GOTO :EOF

出力例

enter image description here


さらに、クエリを実行するグ​​ループのグループメンバー以上のものを取得する必要がある場合は、その詳細を変数に保存し、その変数配列オブジェクトを ForEach-Object ループにパイプして、次に Get-ADUser を繰り返し、必要に応じてそこから特定のプロパティを引き出します。

バッチスクリプト(グループメンバーとその他の詳細)

@ECHO OFF

SET "GroupName=Domain Admins"
CALL :DynamicPSScriptBuild

SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
PAUSE
EXIT /B

:DynamicPSScriptBuild
SET PSScript=%temp%\~tmp%~n0.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO $m = Get-ADGroupMember -Identity "domain admins" ^| Select-Object SamAccountName>>"%PSScript%"
ECHO $m ^| %% {Get-ADUser $_.SamAccountName -Properties * ^| Select SamAccountName, DisplayName, Description, accountExpires, ScriptPath, HomeDrive ^| fl }>>"%PSScript%"
GOTO :EOF

出力例

enter image description here


その他のリソース

2
Pimp Juice IT

net group WHATEVERは、グループWHATEVERのメンバーをリストします。

ローカルグループに相当するものはnet localgroup WHATEVER

0
dave