0

以下代码似乎可以工作,但只在一台机器上运行需要一点时间,如果对象不存在,我也无法完全测试它。如果我正确地进行该过程,或者是否有更简单/更快的方法来执行此操作,我将不胜感激。

$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/ 非常感谢!

4

1 回答 1

0

根据您提到的原始博客文章,我会这样处理:

if ($SCCMObj.psbase.syncroot) {
    $SCCMObj.psbase.syncroot | Foreach { $_.psbase.delete() }
}
else {
    SCCMObj.psbase.delete()
}
于 2013-10-18T20:02:59.980 回答