У меня возникла проблема с запуском скрипта Powershell ниже в консоли.Powershell Register-Object
function startMonitor {
$null = Register-ObjectEvent -InputObject ([Microsoft.Win32.SystemEvents]) -EventName "SessionSwitch" -Action {
switch($event.SourceEventArgs.Reason) {
'SessionLock'
{
---------do something----
}
'SessionUnlock'
{
--------do something----
}
}
}
}
startMonitor
Когда я запускаю его в PowerShell ISE, он работает нормально, а выход - как ожидается. Когда сеанс заблокирован или разблокирован, вывод генерируется отлично.
Но я хочу запустить это как скрипт, который запускается во время входа в систему.
Я поставил этот скрипт в папку автозагрузки, как
powershell.exe -noexit -windowstyle hidden "E:\sources\lock.ps1"
Скрипт работает нормально. Но он не генерирует результат (другие функции в этом коде генерируют выход правильно, кроме этой функции). Когда я пытаюсь команду (без переключателя -windowstyle):
Get-EventSubscriber
показывает, что событие регистрируется.
Как запустить этот скрипт с помощью powershell.exe -noexit?
Я не могу использовать планировщик задач для этой цели из-за ограничений в моей среде.
Какой команды вы используете для создания вывода? –
Вывод - это просто текст, передаваемый в текстовый файл. – GGTS