1 Вопрос: Powershell получить имя пользователя в скрипте gpedit

вопрос создан в Thu, May 2, 2019 12:00 AM

Я использую сценарии 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». Может ли это как-то предотвратить, получив другое имя пользователя? Я понимаю, что когда запускается событие загрузки, пользователь может не войти в систему и, следовательно, нет доступного имени пользователя. Но когда пользователь выключает или перезагружает компьютер, мы все равно должны знать, кто это сделал?

    
0
  1. Вы пробовали его с $env:Username или предпочитаете мной, [System.Security.Principal.WindowsIdentity]::GetCurrent().Name?
    2019-05-02 16: 27: 49Z
  2. Да, у них обоих одна и та же проблема: (
    2019-05-03 06: 08: 52Z
1 ответ                              1                         

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

  

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

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

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

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

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

    
1
2019-05-03 05: 54: 26Z
  1. Большое спасибо, сохранение того, кто вошел в систему в последний раз, звучит как хороший план!
    2019-05-03 06: 09: 59Z
источник размещен Вот