У меня есть скрипт PowerShell, который редактирует локальный файл hosts . Но это не удается, потому что доступ запрещен.

Есть ли возможность запускать команды редактирования от имени администратора (без команды runas ), из самого сценария?

Он попытался сделать "самоподъемный скрипт", но потерпел неудачу, когда дело доходит до редактирования hosts .

Я вызываю скрипт PowerShell другим пакетным скриптом, если это помогает.

1 ответ1

0

Вместо команды runas в cmd используйте командлет PowerShell Start-Process с использованием -verb runas, например, следующим образом:

Powershell Start-Process PowerShell -verb runas -ArgumentList '"your_PS-script.ps1"'

Я проверил это с дополнительными аргументами

  • '-ExecutionPolicy Bypass' поскольку моя эффективная политика выполнения Restricted областью действия LocalMachine ;
  • '-noexit' чтобы увидеть результаты в окне Powershell .

из окна cmd следующим образом:

Powershell Start-Process PowerShell -verb runas -ArgumentList '-ExecutionPolicy Bypass', '-noexit', '"d:\PS_scripts\SE991958.ps1"'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .