Я вижу здесь несколько проблем.
- На компьютерах, не присоединенных к домену, должно быть ан учетная запись администратора активна, даже если она не является учетной записью с именем Администратор.
- На компьютерах, не присоединенных к домену, вам потребуется учетная запись для выполнения вашего запроса.
- Как правило, вы можете выполнять запрос только тогда, когда компьютер подключен к сети, поэтому вам нужно запланировать регулярный запуск запросов, и даже в этом случае вы не можете быть уверены, что получите их все, потому что вы не можете гарантировать, что компьютеры будут в сети. в период времени, когда вы запускаете свой запрос.
Что, как говорится
На ПК с Windows 10 вы можете запустить следующее, чтобы получить учетную запись с именем «Администратор» и включить ее:
Get-LocalUser -Name Администратор | Select-Object Name, включено
Вы можете использовать эту команду в сценарии, подобном следующему, чтобы получить статус компьютера.
[pscustomobject]@{
Имя_компьютера = $env:Имя_компьютера
AdminEnabled = Get-LocalUser -Name «Администратор» | Select-Object -ExpandProperty Enabled
} | Export-CSV -Path "\a\share\where\you\can\put\this\$($env:Computername).csv"
Затем вы можете запустить приведенную выше команду в качестве сценария запуска в домене (помните, что общий свернутый файл должен быть доступен для записи для группы «Компьютеры домена»).
На ПК вне домена вам немного не повезло. Если у вас есть учетная запись, которая может удаленно входить в несколько систем, вы можете использовать что-то вроде этого:
$APSCredentialWhichHasTheRightsToDoThis = Get-Credential
Invoke-Command -Computername "RemotePC" -ScriptBlock {Get-LocalUser -Name "Администратор"} -Credential $APSCredentialWhichHasTheRightsToDoThis
чтобы получить статус удаленного компьютера.