Powershell - Найдите пользователя, который запустил скрипт

голоса
12

У меня есть скрипт (назовем его myPSScript.ps1), которая принимает два параметра и выполняет предопределенные действия. Сценарий находится в окне Windows Server, который логин и выполнить сценарий людей. Поддержка двух пользователей нужно войти в систему в данный момент времени.

Я хочу, чтобы выяснить, кто вызывается сценарий.

(Get-WmiObject -Class Win32_Process | Where-Object {$_.ProcessName -eq 'explorer.exe'}).GetOwner() | Format-Table Domain, User 

Это работает, когда пользователь регистрируется в данный момент и пытается запустить сценарий. Но что, если у меня есть пакетный файл в запланированных задачах и запустить тот же сценарий?

В этом случае та же команда возвращает нулевое исключение, так как не один вход в машину.

Есть ли способ, чтобы выяснить, кто / какой процесс вызывается скрипт Powershell. Я смутно помню, Пуско-Стенограмма записи, которые пользователь команда запускается с и т.д., так что это должно быть?

Благодаря! Санджив

Задан 21/09/2011 в 18:50
пользователем
На других языках...                            


1 ответов

голоса
19

Интересный вопрос. Я написал сценарий с тремя различными способами, чтобы получить пользователь, как так:

([Environment]::UserDomainName + "\" + [Environment]::UserName) | out-file test.txt
"$env:userdomain\$env:username" | out-file -append test.txt
[Security.Principal.WindowsIdentity]::GetCurrent().Name | out-file -append test.txt
notepad test.txt

Сохраненный как Test.ps1 и назвал его использованием , runasкак:

runas /user:domain\user "powershell e:\test.ps1"

И я получил домен \ пользователь все три раза в выходном сигнале. Используется runasтолько различать между пользователем я вошли в систему (меня !!) и домен \ пользователь , с которым я был запущен как. Так что это действительно дает пользователю, на котором выполняется сценарий.

Ответил 21/09/2011 в 19:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more