Hello,
I have a PowerShell script that uses the WMI COM object to connect to the SCCM server to delete the device from the SCCM server before I add the device to the SCCM server.
When I used WMI in VBScript to connect to the SCCM server and delete the device, it works fine. However, when I translated the VBScript code to PowerShell, it generated the output below, and the device is not deleted:
OverloadDefinitions
void Delete_ (int, IDispatch)
The VBScript code is from this link at: http://eskonr.com/2012/04/vb-script-delete-computer-from-sccm-database/, which I translated into the PowerShell code as shown below:
$sccmServer = 'MySCCMServer' $siteCode = 'MySCCMSite' $computer = 'PC1' $username = 'Domain\user' $password = 'secrete!' $objSWBemlocator = New-Object -ComObject WbemScripting.SWbemLocator; $objWMIService = $objSWBemlocator.ConnectServer($sccmServer,"root\SMS\site_"+$siteCode,$userName,$password); $strQry = "SELECT ResourceID FROM SMS_R_System WHERE Name='$computer'"; $objEnumerator = $objWMIService.ExecQuery($strQry); foreach ($objInstance in $objEnumerator) { foreach ($objItem in $objInstance.Properties_) { $resourceId = $objItem.Value; } } $objDevice = $objWMIService.Get("SMS_R_System='$resourceId'") $objDevice.Delete_ I also try: $objDevice = $objWMIService.Get("SMS_R_System='$resourceId'") | % {$_.Delete_} and the result is the same.
Any help or comment will greatly be appreciated.
Thanks in advance.