虽然在 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
答案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
我发现这几乎给了我我所寻找的东西,以防有人好奇!:)