输出用户群组列表

输出用户群组列表

虽然在 Linux 上很容易,但就我目前收集到的信息来看,在 Windows 上就不那么容易了。我找到了一个可以满足我要求的命令:

net user username /domain

但是我希望删除除组列表之外的所有数据。我认为 findstr 可能是答案,但我不确定如何使用它来做到这一点。本质上,我猜脚本会做这样的事情(除非有更具体的命令,那会很棒):

net user username /domain > temp.txt
findstr (or some other command) file.txt > groups.txt
del temp.txt

数据的输出将是如下列表:

组 1;组 2;组 3

现在,我可以用一种复杂的方式来解决这个问题,正如我提到的,如果有一个命令可以只输出用户的安全组,那就太好了。

答案1

使用 PowerShell!

$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group')

或者仅适用于组名:

$user = [wmi] "Win32_UserAccount.Name='JohnDoe',Domain='YourDomainName'"
$user.GetRelated('Win32_Group') | Select Name

http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/67defa12-6ad1-439b-bd11-3abfc5b5208a/

答案2

唔。

net user paul /domain | find "Global Group memberships"

将为您提供组,但如果您不想要标题,您将需要更多相关内容:

for /f "tokens=4*" %f in ('net user paul /domain ^| find "Global Group memberships"') do echo %f

因此 %f 包含这些组。

答案3

dsquery user -name "My Full Name" | dsget user -memberof | dsget group -samid

我发现这几乎给了我我所寻找的东西,以防有人好奇!:)

相关内容