以下代码似乎可以工作,但只在一台机器上运行需要一点时间,如果对象不存在,我也无法完全测试它。如果我正确地进行该过程,或者是否有更简单/更快的方法来执行此操作,我将不胜感激。
$SCCMObj = get-wmiobject -query "select * from SMS_R_SYSTEM WHERE Name='$env:computername'" -computername [SMSServer] -namespace "ROOT\SMS\site_[SiteCode]"
$PSB = $SCCMObj.psbase
$PSBSR = $SCCMObj.psbase.syncroot
$PSBLgth = $SCCMObj.psbase.length
$SCCMArray = @($PSB, $PSBSR, $PSBLgth)
$SCCMArray | ForEach {If ($_ -ne $Null) {$SCCMObj.psbase.delete()}}
目的是查找驻留在数据库中的任何/所有 SCCM 计算机对象,并通过 PowerShell 删除每个对象。代码来自:http ://marco-difeo.de/2011/08/02/sccm-delete-computer-object-via-powershell-and-wmi/ 非常感谢!