У меня есть файл msi, который я могу отправить пользователям, подключенным к сети. Я могу запустить его из планировщика заданий в вдовах от имени администратора.
Но можно ли запланировать задачу от администратора и запустить этот файл msi от имени пользователя в Windows.
Суммируя:
1, я устанавливаю и msi приложения для пользователей, подключенных в домене. (приложение устанавливается)
Я хочу запустить установленный файл от имени пользователя, который войдет или войдет в систему на этом компьютере с Windows.
$taskName = "My Task2"
$taskDescription = "This task runs every 10 second"
# Define the task trigger
$trigger = New-ScheduledTaskTrigger -User Sanket.Wagh -AtLogOn
# Define the task action
$taskAction = New-ScheduledTaskAction -Execute "<any application path>"
#-Argument "-Command 'Write-Host Hello World'"
# Register the task
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $taskAction -Description $taskDescription
здесь пользователь sanket.wagh
статичен. Я хочу, чтобы это было динамически, поэтому оно будет доступно для всех пользователей, которым я нажимаю скрипт как ИТ-администратор.
Я совершенно новичок в powershell, но любая помощь или документация, связанная с этим, будут высоко оценены.
как ИТ-администратор, я хотел бы, чтобы файл msi запускался для другого пользователя в домене, как если бы они запустили его, не указывая имя пользователя или пароль в powershell.
как только я отправлю TaskScheduler всем другим пользователям в домене, как я смогу динамически получить имя пользователя
Смотрите следующее: xda-developers.com/how-tun-run-apps-administrator-windows-11/…
Вам нужно имя пользователя? Вы просто хотите, чтобы пользователи могли запускать приложение. Пользователь будет запускать код, вы только что разрешили запуск скрипта с правами администратора.
Здесь я создал приложение Python, которое я преобразовал в файл msi. который я смог нажать на целевой хост, чтобы установить его. но когда приложение запускается через администратора, оно не работает, но если я запускаю его как пользователь, оно работает как положено. Я не уверен, что мне здесь не хватает
Я хочу, чтобы скрипт запускался без ручного вмешательства пользователей, поскольку он в основном создан с единственной целью — определить, не сидит ли какой-либо пользователь без дела без какой-либо активности.
Вы хотите, чтобы пользователь мог убить задание?
в идеале нет, но если он способен убивать, это тоже может сработать.
Создайте субъект запланированной задачи.
Используйте субъект запланированной задачи для запуска задачи в контексте безопасности указанной учетной записи.
Используя идентификатор группы интерактивных пользователей "S-1-5-4", он должен получить то, что вы хотите.
Пользователи, которые входят в систему для интерактивной работы. Это групповой идентификатор, добавляемый к токену процесса при интерактивном входе в систему.
Ваш модифицированный код. Задача будет выполняться, когда любой пользователь войдет в систему.
# Define the task trigger
$trigger = New-ScheduledTaskTrigger -AtLogOn
# Define the task action
$taskAction = New-ScheduledTaskAction -Execute "<any application path>"
# create a scheduled task princiapl. Specify the interactive users group id.
$principal = New-ScheduledTaskPrincipal -GroupId "S-1-5-4"
#-Argument "-Command 'Write-Host Hello World'"
# Register the task. add the "principal" parameter
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $taskAction -Description $taskDescription -Principal $principal
Созданная задача
это помогло мне запустить задачу как пользователь, вошедший в систему. Спасибо :)
Смотрите следующее: stackoverflow.com/questions/28989750/…