2

我想知道如何最好地解决这个问题。基本上我有一个脚本需要检查 USER1 是否是本地管理员的成员,如果是,请将其删除。这些组都是本地的,脚本将在我需要检查的系统上运行(不需要远程处理)。

我在想一些关于捕获和评估输出的事情

net localgroup Administrators

test\user1
test\user2

但是我不确定如何捕获输出以进行评估(对于 powershell 来说非常新)。有没有人做过这样的事情?我真的很感激任何帮助。

4

2 回答 2

7

一种没有模块或管理单元的方法:

$group =[ADSI]"WinNT://./Administrators,group" 
$members = @($group.psbase.Invoke("Members")) 

($members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}) -contains "Administrator"

这个返回True还是False属于这种情况

从管理员组中删除用户管理员:

$group.remove("WinNT://Administrator")
于 2013-05-17T21:01:57.247 回答
1
$user = (net localgroup administrators | Select-String 'testuser1' -SimpleMatch).ToString()
net localgroup administrators "$user" /delete

您没有使用对象,也没有很多错误检查,但这是获得所需内容的一种非常简单的方法。

于 2013-05-23T16:26:29.593 回答