2015-09-08 3 views
0

У меня есть сценарий PowerShell Admin.PS1, который откроет запуск other.PS1 сценарий PowerShell как adminnistarator. Код выглядит следующим образом:Как выполнить сценарий в режиме администратора без приглашения на выбор со стороны пользователя?

$ScriptPath = "D:\usefull_PS_files\toNode\other.PS1" 
$RelaunchArgs = '-ExecutionPolicy Unrestricted -file "' + $ScriptPath + '" -IsRunAsAdmin' 
# Launch the process and wait for it to finish 
try 
{ 
    $AdminProcess = Start-Process "$PsHome\PowerShell.exe" -Verb RunAs -ArgumentList $RelaunchArgs 
} 
catch 
{ 
    $Error[0] # Dump details about the last error 
    exit 1 
} 

Теперь, что происходит, когда я исполню над PS скрипт я получаю администратора строки PowerShell, в котором я должен выбрать «да» или «нет», но то, что я на самом деле хочу Other.PS1 к получите выполнение как администратор без каких-либо подсказок, т.е. без необходимости выбирать «да» или «нет». Итак, как я могу запустить любой скрипт PS в качестве администратора без ввода с моей стороны, полностью автоматическим способом.

ответ

1

У вас есть 3 варианта AFAICS:

  • Отключить UAC.
  • Запустите сценарий из уже повышенного приглашения.
  • Создайте запланированную задачу с включенным флажком «Запуск с наивысшими привилегиями».
+0

'psexec -h powershell.exe -file other.ps1' может быть другим вариантом –

+0

Определенно не рекомендуется отключать UAC. –

+0

Я определенно рекомендую отключить UAC в профессиональных средах, где у вас есть учетные записи администратора для административных задач и ограниченных учетных записей для обычных пользователей и повседневной работы. Домашние пользователи - это единственная область, где UAC может иметь некоторую выгоду. –