That is actually how I was testing, but thought the the split could be done on the array. Thanks for explaining that.

I am having a problem with "modify". I'm using your code like this:

 Code:
$computer = 'mycomputer'
; Get a list of services on the named computer
$Services = WMISvcMgr('List', , , $Computer)
; enumerate the list of services, looking for those that use the old admin account
For Each $Service in $Services
$Service = Split($Service, ',')[0]
  $SvcInfo = WMISvcMgr('Query', $Service, , $Computer)
  If $SvcInfo[8] = '.\administrator' ; if the service account is the old user
   $SvcInfo[8] = '.\administrator'
	$SvcInfo[9] = 'password'
    ; stop the service
    $ = WMISvcMgr('Stop', $Service, , $Computer)?@SERROR
    ; write the updated config info back to the service database
    $ = WMISvcMgr('Modify', $Service, $SvcInfo, $Computer)?@SERROR
    ; restart the service with the new credentials
    $ = WMISvcMgr('Start', $Service, , $Computer)?@SERROR
  EndIf	
Next


This produces this output. I'm sure it's the "$SvcInfo" section of the command, but I'm not sure how that should be formatted.

The operation completed successfully.
The parameter is incorrect.50
The operation completed successfully.
_________________________
I could have made a neat retort but didn't, for I was flurried and didn't think of it till I was downstairs.
-Mark Twain