该命令net group "Groupname" /domain > c:\temp\users.txt
将在文本文件中生成以下输出。
Group name GroupABC
Comment XXXXXXXXXXXXXXXXXXXXX
Members
--------------------------------------------------------------------
MemberA MemberB MemberC
MemberD MemberE MemberF
MemberG MemberH MemberI
The command completed successfully.
我需要删除文件末尾不必要的标题和注释,只需将输出按以下顺序排列:
MemberA
MemberB
MemberC
MemberD
MemberE
MemberF
...
有没有一种简单的方法可以做到这一点,而不必输出到文件并手动删除标题?非常感谢您对排序和删除不必要空格的帮助!
答案1
我能想到的最简单的方法是使用 Active Directory cmdlet 在 powershell 中执行此操作。在域控制器或安装了 RSAT 的计算机上,运行以下命令
Get-ADGroupMember GroupName | select name | out-file GroupName.txt
答案2
net
如果您缺少 AD cmdlet,您可以在 Powershell 中格式化结果。
# store the results in an array.
$results = net group "Groupname" /domain
# the size of the header and footer is always the same. select the data between these sections.
$results = $results[8..($results.Length-3)]
# replace the empty spaces with a comma. join on the comma, getting rid of blank lines.
foreach($result in $results) {
($result -replace '\s+',',') -split ',' | ? { $_ } >> 'C:\temp\users.txt'
}
答案3
仅使用批处理文件将输出转换为单列。
创建一个名为“convert-to-single-column.bat”或类似名称的批处理文件并粘贴此代码。
@echo off
if "%~1" == "" (
echo Usage: %0 file.txt
exit /b 1
)
for /f "usebackq tokens=1,2,3*" %%A in (%1) do (
echo %%A
echo %%B
echo %%C
)
运行命令:
net user /domain >> users.txt
然后运行命令:
convert-to-single-column.bat users.txt > users-single-column.txt
现在您只有一列,无需 powershell 或 python。请注意,文本文件的顶部仍将包含...
The
request
will
User
accounts
for
-------------------------------------------------------------------------------
ECHO is off.
ECHO is off.
底部将包含...
The
command
completed
但所有用户名都会位于中心。
快乐黑客!