СБИС по прежнему не умеет запускать плагин с remoteapp, а мне уж порядком поднадоело ручками создавать задачу в планировщике. Я попробовал сделать задачу при помощи CMD:
set "nameuser=%USERDOMAIN%\%username%"
set "nametask=SBIS Plugin %nameuser%"
schtasks /create /sc ONLOGON /ru %nameuser% /it /tn "%nametask%" /tr "C:\PROGRA~2\TENSOR~1\SBIS3Plugin\sbis3plugin.exe --autostart"
И потерпел фиаско по двум пунктам
- schtasks требует прав админа на добавление задачи, а как мы помним задача должна запускаться от имени того, кто вошел в систему
- любая добавленная задача через cmd с параметром /sc ONLOGON будет иметь триггер "При входе любого пользователя". Параметр /it в данном случае ничего не решает. Задача выполнится, но для любого пользователя (проверено)
Вариант с XML также не подходит, так как в Principals->Principal->UserId помещается ID пользователя, от чьего имени надо запускать задачу. Да, это можно сделать, но средствами CMD это пустая трата времени.
Промежуточный вариант создать в cmd, экспорт в XML, правка, импорт также не рассматривается из-за громоздкости решения.
В итоге было решено использовать PowerShell и получился вот такой короткий скрипт:
$name = Read-Host -Prompt "Enter your name"
$TaskName = "SBIS PLUGIN for $name"
$username ="$env:USERDOMAIN\$name"
#create a scheduled task with powershell
$Action = New-ScheduledTaskAction -Execute "C:\PROGRA~2\TENSOR~1\SBIS3Plugin\sbis3plugin.exe" -Argument "--autostart"
$Trigger = New-ScheduledTaskTrigger -AtLogOn -User $username
Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -User $username
Ничего лишнего, только запрос имени пользователя, домен вытаскивается текущий
Стоит отметить, что параметр --autostart не обязателен
Комментариев нет:
Отправить комментарий