2

Я только что обновился до Windows 7 и хочу, чтобы мой профиль Powershell был запущен и запущен.

Я загружаю PS и устанавливаю политику выполнения неограниченной с моими полномочиями «Запуск от имени администратора», а затем помещаю свой профиль в соответствующее место. Я перезагружаю PS, и это ошибки.

политика выполнения get ограничена.

Однако проверка реестра возвращается без ограничений.

После перезагрузки ситуация остается прежней.

Проверяя далее, я замечаю, что в режиме администратора у меня есть неограниченные полномочия, но как обычный пользователь, у меня есть ограниченные полномочия.

Сделав сегодня небольшую работу с Powershell в XP, я заметил, что в XP Powershell всегда находится в режиме администратора. Очевидно, он превратился в пользовательский режим на Win7. Aargh!

Как заставить скрипт моего профиля выполняться в обычном пользовательском режиме?

5 ответов5

1

У меня нет проблем с этим. Вот что я тестировал на довольно чистой машине с Windows 7:

  • Войти как администратор
  • Запустите PowerShell с повышенными правами ("как администратор")
  • Set-ExecutionPolicy RemoteSigned
  • Войти как Гость
  • Запустите PowerShell
  • Get-ExecutionPolicy

Возвращает RemoteSigned

0

Это работает для меня временно, пока я не перезагружаю машину, и в это время я должен перезапустить сценарий. Я знаю, что CurrentUser и LocalMachine пишут записи в реестре, поэтому вы могли бы подумать, что этот параметр будет постоянным / постоянным, но после перезагрузки в моем домене, по-видимому, он возвращается к значению по умолчанию AllSigned.

# SetExecutionPolicyToRemoteSigned.ps1
# Not persistent.  Need to run this after every server reboot.
Write-Output "Setting local Powershell policy to RemoteSigned"
Write-Output ""

Set-ExecutionPolicy -scope CurrentUser Undefined -Force
#Set-ExecutionPolicy -scope Process Undefined -Force
Set-ExecutionPolicy -scope LocalMachine Undefined -Force

Set-ExecutionPolicy -scope CurrentUser RemoteSigned -Force
#Set-ExecutionPolicy -scope Process RemoteSigned -Force
Set-ExecutionPolicy -scope LocalMachine RemoteSigned -Force

Write-Output "Finished."

Get-ExecutionPolicy -list
Start-Sleep -s 10
0

Я бы щелкнул правой кнопкой мыши PowerShell, перейдите к параметрам совместимости, выберите "Запускать программу от имени администратора"

Если вы используете скрипт, вы можете использовать стартовую реализацию sudo. Есть способ сделать это без инструмента, но проще использовать инструмент, и он все равно добавляет некоторые другие полезные инструменты.

0

Вы запускаете его из командной строки или из меню "Пуск". Для меня, я получаю "неограниченную" политику, только если я запускаю powershell по ссылке меню "Пуск".

Запуская его из командной строки или из другой программы, я мог получить только "ограниченную" политику. Не удалось найти обходного пути для этой проблемы, за исключением запуска powershell из ссылки меню "Пуск" ...

0

В Windows 7 (в случае необходимости, Ultimate не может понять, как это сделать) я должен быть в режиме администратора, чтобы установить политику, но после установки она применяется к моему обычному профилю пользователя (get-исполнительная политика возвращает "Неограниченно"). Когда вы говорите, что перемещаете свой профиль в "обычное место", что именно вы имеете в виду?

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