1

我有一些机器有很多配置文件,并且想删除所有这些机器,除了 3 台是管理员。

如果我想删除所有内容,这可以完成工作

Get-WMIObject -Class Win32_USerProfile -ComputerName $computer | Remove-WmiObject

我曾尝试使用whereand 子句来做到这一点-filter,但没有成功。

这里有些例子

Get-WMIObject -Class Win32_UserProfile -ComputerName $computer | where {($.SID -neq $UserSID)} | Remove-WMIObject

...

Get-WMIObject -Class Win32_USerProfile -ComputerName $computer -Filter "SID = TEST" | Remove-WmiObject

编辑:我几乎是这样的:

 Get-WMIObject -Class Win32_USerProfile -ComputerName $computer | Where-Object -FilterScript {$_.SID -ne "S-1-5-18" -and $_.SID -ne "S-1-5-19" -and $_.SID -ne "S-1-5-20"} |Remove-WmiObject -WhatIf

这样我可以过滤输出,但我有一个例外

+ CategoryInfo          : NotSpecified: (:) [Remove-WmiObject], ArgumentException
4

1 回答 1

1
$UserSID = 'S-1-5-18'
Get-WMIObject -Class Win32_UserProfile -ComputerName $computer | where {$_.SID -ne $UserSID} | Remove-WmiObject -WhatIf
Get-WMIObject -Class Win32_USerProfile -ComputerName $computer -Filter "SID != '$UserSID'" | Remove-WmiObject -WhatIf
于 2018-10-04T22:51:56.173 回答