Вы можете просто использовать 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
Пример вывода
Кроме того, если вам нужно получить больше, чем просто члены группы запрашиваемой группы, вы можете сохранить эту информацию в переменной, а затем передать объект этого массива переменных в цикл 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 ^| %% >>"%PSScript%" GOTO :EOF
Пример вывода
Дополнительные ресурсы
- Get-ADGroupMember
- Get-ADUser
-
Стандартные псевдонимы для объекта Foreach:
'%'
символ,ForEach
-
Стандартные псевдонимы для Format-List:
fl