检查帐户是否是本地组的成员,并在powershell 2.0中执行IF / ELSE

时间:2013-05-17 20:24:02

标签: powershell

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

我正在考虑捕捉和评估

的输出
net localgroup Administrators

test\user1
test\user2

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

2 个答案:

答案 0 :(得分:7)

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

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

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

此返回TrueFalse属于案例

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

$group.remove("WinNT://Administrator")

答案 1 :(得分:1)

$user = (net localgroup administrators | Select-String 'testuser1' -SimpleMatch).ToString()
net localgroup administrators "$user" /delete

你没有使用对象,也没有很多错误检查,但这是一种非常简单的方法来获得你想要的东西。