Имя пользователя:
Пароль:
 

Показать сообщение отдельно

(*.*)


Сообщения: 36574
Благодарности: 6711

Профиль | Сайт | Отправить PM | Цитировать


Analog, теперь у вас следующий уровень квеста - вам надо все на PowerShell перевести:)
Я смотрю вы файлы складываете прямо в корень С - плохая идея (видимо, с выключенным UAC работаете).

В консоли можете так экспериментировать, с учетом того, что скрипты в C:\scripts, а вы туда перешли cd c:\scripts

Для начала выясните свой SID
Код: Выделить весь код
Get-LocalUser | fl *
Дальше дотсорсинг скрипта
Код: Выделить весь код
. GetLogonSession.ps1
и выполнение функции
Код: Выделить весь код
$session = Get-LogonSession
$session
Будет список всех сессий.

Теперь фильтруете по своему SID
Код: Выделить весь код
$session | Where-Object {$_.SID -eq 'S-1-5-21-xxxxxxxx-xxxxxxxx-xxxxxx-xxxx'}
Вам нужно исключить RDP, т.е. RemoteInteractive (если вы не подключены к RDP, в списке такой сессии нет).
Код: Выделить весь код
$rdp = $session | Where-Object {$_.SID -eq 'S-1-5-21-xxxxxxxx-xxxxxxxx-xxxxxx-xxxx' -and $_.LogonType -eq 'RemoteInteractive'}
$rdp -eq $null
True
И теперь запускаете свои программы, если условие соблюдается
Код: Выделить весь код
if ($rdp -eq $null) {
Start-Process notepad
Start-Process calc}
Для планировщика же дописываете в скрипт
Код: Выделить весь код
$session = Get-LogonSession
$rdp = $session | Where-Object {$_.SID -eq 'S-1-5-21-xxxxxxxx-xxxxxxxx-xxxxxx-xxxx' -and $_.LogonType -eq 'RemoteInteractive'}
if ($rdp -eq $null) {
Start-Process notepad
Start-Process calc}
И настраиваете запуск.
Программа или сценарий: powershell
Аргументы: -ExecutionPolicy Bypass -WindowStyle Hidden -file C:\scripts\GetLogonSession.ps1

Как-то так. См. также Запуск без моргания окон PowerShell

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:23, 04-05-2020 | #10