我想获取“net group”命令的输出并解析它,以便组成员是一个列表。除此之外,我无法访问任何实际的域实用程序。 (所以Get-ADGroupMember不是一个选项)
net group /domain MyADGroup
The request will be processed at a domain controller for domain encana.com.
Group name MyADGroup
Comment Sccm Deployment
Members
-------------------------------------------------------------------------------
MemberA MemberB MemberC
.
.
.
MemberZ
The command completed successfully.
我想要的是一个只有
的文件MemberA MemberB MemberC 。 。 。 MemberZ
它也必须自动化,所以我可以安排它定期运行。 到目前为止,我有这个 在命令提示符下:
net group /domain MyADGroup |more +8 > output.txt
在电源外壳中:
(Get-Content output.txt)|ForEach-Object { $_ -replace "The command completed successfully.", ""}| ForEach-Object { $_ -replace " ", "`n`r"}|Set-Content output2.txt
我可以将这两者都放入批处理文件中。输出文件有一堆额外的行,但我导入的工具将很乐意忽略它们。我只是想要一些更精简的东西而没有额外的百万行。
答案 0 :(得分:0)
我制作了一个小脚本,首先将所有组保存到“数组”,然后将它们全部输出。您可以根据需要进行更改。在WinServer 2003和WinServer 2012上测试它。希望它有所帮助。
@echo off
setlocal EnableDelayedExpansion
set "count=0"
for /f "delims=* skip=4" %%i in ('net group') do (
set /a "count+=1"
set "groups[!count!]=%%i"
)
set /a "count-=1"
for /l %%i in (1,1,!count!) do (
echo(!groups[%%i]!
)