@ Ответ Дмитрия К хорош, и я ничего такого не знал. Но я знаю, что в PowerShell такие вещи обычно более чистые, поэтому я портировал их.
Например, можно написать целую функцию GetAdminName
:
$adminName = (gwmi win32_account | ? { $.SID.StartsWith( 'S-1-5-' ) -and $.SID.EndsWith( '-500' ) }).Name
(Добавьте параметр -ComputerName
к вызову gwmi
, чтобы сделать это на сервере.)
Остальное становится:
$user = ([ADSI]"WinNT://$($env:COMPUTERNAME)/$adminName,User")
$user.SetPassword( 'xxx' )
$user.SetInfo()
(конечно, при необходимости применяя соответствующее имя компьютера).