0

次のコードは機能しているように見えますが、1 台のマシンだけで実行するには少し時間がかかります。また、オブジェクトが存在しない場合は完全にテストできません。プロセスを正しく行っているかどうか、またはこれを行うためのより簡単で高速な方法があるかどうかについて、アドバイスをいただければ幸いです。

$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()}}

その目的は、DB に存在する任意またはすべての 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 に答える