A few weeks back I had a few questions that – through trial and error – was able to figure out. The following code is something I previously was able to use to change the owner of a SID. However, for reasons unknown, that same exact code no longer works and I'm mystified by this. Here is the code, as well as the error message:
$OriginalUser = gwmi win32_UserAccount -ComputerName testboxcpc -Filter "Name= 'rcc2122' AND LocalAccount=True" $NewUser = gwmi "win32_UserAccount WHERE Name= 'rcc2122' AND Domain='Cul'" $Profile = gwmi win32_UserProfile -ComputerName testboxcpc -filter "SID= '$($OriginalUser.SID)'" $Profile.ChangeOwner($NewUser.SID,0)
So I figured out what the problem was; I had logged in with both accounts for some reason and then tried running changeowner, which will obviously not work! It does work as it's supposed to though, once I deleted the domain account and left the local account to be changed. However, I would like to know how this syntax works:
gwmi win32_UserProfile -ComputerName testboxcpc -filter "SID= '$($OriginalUser.SID)'" — I'm unsure how the "SID= '$($OriginalUser.SID)'" portion of that line actually functions? Anyone have any idea? Thanks!
by coderaven at 2012-11-26 07:08:56
The line in question may function just because the WMI filter switch uses the WSQL syntax instead of the PowerShell syntax.