Powershell получить имя пользователя в скрипте gpedit - PullRequest
0 голосов
/ 02 мая 2019

Я использую сценарии gpedit.msc для событий входа в систему / выхода из системы / завершения работы / запуска. Следующий сценарий PowerShell выполняется для этих событий:

$web = New-Object System.Net.WebClient
[String] ${stUserDomain},[String]  ${stUserAccount} = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.split("\")
$str = $web.DownloadString("https://srv4923/event.php?username=" + ${stUserAccount} + "&workstation=" + $env:ComputerName + "&event=" + $args[0])
$str

Затем скрипт PHP сгенерировал запись в БД MySQL. Сценарий прекрасно работает для событий входа в систему и выхода из системы, но для событий выключения / запуска имя пользователя больше не является «myusername», а «SYSTEM». Может ли это как-то предотвратить, получив другое имя пользователя? Я понимаю, что когда запускается событие загрузки, пользователь может не войти в систему и, следовательно, нет доступного имени пользователя. Но когда пользователь выключает или перезагружает компьютер, мы все равно должны знать, кто это сделал?

1 Ответ

1 голос
/ 03 мая 2019

Что касается этого ...

"... shutdown / start events ... myusername" больше, но это "SYSTEM" ...

Thisэто не проблема кода PowerShell, а процесс разработки требований к ОС.

Простой ответ - нет, поскольку при запуске пользователя никогда не будет.Это всегда СИСТЕМА и должна быть.Windows MSGINA.dll не запускается до тех пор, пока система не будет в состоянии готовности, затем она представляет вход MSGINA для пользователя, независимо от того, решили вы использовать автоматический вход или нет.

Вы должны сопоставитьсобытия выхода из системы и завершения работы, чтобы узнать, кто был последним вошедшим в систему до завершения работы.

И все же помните, что администратор может дистанционно отключить систему, как и запланированное задание или даже отключение питания или скачок напряжения в электросети.Таким образом, даже с учетом этой взаимосвязи вы должны помнить об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...