我想知道如何最好地接近这一点。基本上我有一个脚本需要检查USER1是否是本地管理员的成员,如果是,请删除它。这些组都是本地的,脚本将在我需要检查的系统上运行(不需要远程处理)。
我正在考虑捕捉和评估
的输出net localgroup Administrators
test\user1
test\user2
但是我不知道如何捕获输出以进行评估(对PowerShell来说很新)。有没有人做过这样的事情?我真的很感激任何帮助。
答案 0 :(得分: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")
答案 1 :(得分:1)
$user = (net localgroup administrators | Select-String 'testuser1' -SimpleMatch).ToString()
net localgroup administrators "$user" /delete
你没有使用对象,也没有很多错误检查,但这是一种非常简单的方法来获得你想要的东西。