1
我想清理一些機器上的本地管理員組,並且需要Powershell中的解決方案。到目前爲止,我已經設法檢索成員列表,但是我的語法有問題,無法找到想要刪除的組。需要刪除的每臺機器上的組將會不同,但具有相同的名稱格式。使用通配符刪除本地管理員的域組
我可以用這個,如果組的名稱是相同的:
$objGroup = [ADSI]("WinNT://$Env:COMPUTERNAME/Administrators")
$objGroupMembers = $objGroup.psbase.Invoke("Members") | foreach {$_.GetType().InvokeMember("Name", 'GetProperty',$null, $_, $null)}
$objRemoveGroup = [ADSI]("WinNT://Contoso/ABC-MyAdmins")
$objGroup.PSBase.Invoke("Remove",$objRemoveGroup.PSBase.Path)
但我需要刪除將刪除可能被命名爲XYZ-MyAdmins或ABC-XYZ-MyAdmins組。基本上我只想刪除任何類似* -MyAdmins的本地管理員組成員。
所以,如果我做這樣的事情,這是行不通的:
$objGroup = [ADSI]("WinNT://$Env:COMPUTERNAME/Administrators")
$objGroupMembers = $objGroup.psbase.Invoke("Members") | foreach {$_.GetType().InvokeMember("Name", 'GetProperty',$null, $_, $null)}
$ObjRemove = ForEach($Member in ($objGroupMembers | Where-Object {$Member -like '*-MyAdmins'}))
{
$objRemoveGroup = [ADSI]("WinNT://Contoso/$($ObjRemove)")
$objGroup.PSBase.Invoke("Remove",$objRemoveGroup.PSBase.Path)
}
我在做什麼錯在這裏?