Руководство по обходу политики выполнения power shell

Reading time icon
2 минута. читать


Опубликован в



Хотите запустить сценарий PowerShell из CMD, поскольку он может быть недоступен в вашей системе? Или вы просто хотите включить Функциональность PowerShell без переписывания всего сценария в командный файл CMD? Если на любой из этих вопросов вы ответили «Да», эта статья вам поможет!

Как запустить сценарий PowerShell из CMD

  1. Откройте Командная строка в Windows с повышенными правами из Меню Пуск , введя CMD и нажав CMD приложение> Запуск от имени администратора.
  1. По умолчанию консоль CMD откроется в C: \ Windows \ System32 папку.
  2. Перейдите в каталог сценария PowerShell, используя команду CD команда.
  3. Например, у меня есть PS1 скрипт in диск D, поэтому я запускаю следующую команду в CMD: кд/д Д:
  1. Теперь выполните эту команду: powershell.exe .\SimplePS.ps1.
  1. Замените .\SimplePS.ps1 с вашим собственным именем файла сценария PowerShell с расширением PS.
  2. Сценарий должен выполняться в выбранном каталоге в соответствии с базовыми кодами. Если есть что распечатать, вы увидите это в CMD.
  3. Например, “Здравствуйте, это простой скрипт PowerShell!» в текущем сценарии.

Совет эксперта

При запуске сценария PowerShell на CMD процесс может прерваться из-за неподходящих настроек Set-ExecutionPolicy функцию.

Есть два способа исправить эту ошибку:

  1. Щелкните правой кнопкой мыши на Меню Пуск значок и выберите Windows PowerShell (Администратор) из Power User контекстное меню.
  2. Когда вы увидите консоль, выполните следующую команду: Установить ExecutionPolicy RemoteSigned.
  3. Удар Enter.
  4. Когда ты видишь Да и Нет подсказки, нажмите Y и нажмите Enter .
  1. Откройте CMD с повышенными правами.
  2. Скопируйте и вставьте эту команду и нажмите Enter: powershell Set-ExecutionPolicy RemoteSigned.

Теперь вы знаете, как запустить сценарий PowerShell из CMD. Это быстрый и удобный способ запуска сложных сценариев на элементарном уровне. терминал.

Статья помогла? Знаете ли вы лучший способ добиться того же результата? Поделитесь своими мыслями ниже.


Опытный блоггер и обозреватель программного обеспечения с публикациями MakeUseOf, AddictiveTips и AppleToolBox. Он все тестирует, прежде чем написать об этом.


Была ли эта страница полезной?

Дайте нам знать, если вам удалось решить вашу техническую проблему, прочитав эту статью.

Мы рады это слышать!

Есть ли у вас предложение?

Мы знаем, насколько утомительным может быть поиск универсального решения.

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

Содержание

PowerShell

Информация в данном разделе актуальна для:

  • Windows 10: 1607, 1809, 21H2.

  • Windows 11: 21H2

PowerShell – расширяемое средство автоматизации от Microsoft с открытым исходным кодом.
Входит в состав операционной системы начиная с Windows 10

Windows PowerShell (ISE) – среда для создания, выполнения и тестирования скриптов PowerShell.
Входит в состав в состав операционной системы начиная с Windows 10.

Как запустить оболочку PowerShell

    1. Для Windows 10 – «Windows PowerShell»

    2. Для Windows 11 – «Windows Terminal»

  1. При необходимости запустить PowerShell с повышенными привилегиями выберите пункт:

Для Windows 10 1607

Способ №1

  1. В строке поиска наберите «power»

  2. В результатах поиска выберите пункт «Windows PowerShell»

Способ №2

Как запустить “Windows PowerShell ISE”

С помощью графической оболочки

  1. В строке поиска наберите «ise»

  2. В результатах поиска найдите «Windows PowerShell ISE»

  3. Возможно два варианта запуска, с обычными и повышенными привилегиями

    1. С обычными привилегиями – нажмите на вышеуказанный пункт левой кнопкой мыши

С помощью команды

  1. Введите команду «powershell_ise» без кавычек

Как создать сценарий PowerShell

Если вы хотите создать сценарий просто вставив перечень команд из другого источника, можете воспользоваться блокнотом.
Для разработки сценариев луче использовать среду «Windows PowerShell ISE».

С помощью блокнота

  1. Напишите или вставьте в блокнот необходимые команды

  2. Выберите путь сохранения файла

  3. Укажите название файла

  4. Измените расширение файла с «txt» на «ps1»

  5. Нажмите на кнопку «Сохранить» (Save)

  6. Закройте окно блокнота

С помощью “Windows PowerShell ISE”

  1. Напишите или вставьте в «Windows PowerShell ISE» необходимые команды

  2. Выберите путь сохранения файла

  3. Укажите название файла или оставьте имя по умолчанию

  4. Нажмите на кнопку «Сохранить» (Save)

  5. Закройте среду «Windows PowerShell ISE»

Как выполнить сценарий PowerShell

Способ №1

  1. Нажмите правой кнопкой мыши на необходимом сценарии

  2. Выберите пункт «Выполнить с помощью PowerShell» (Run with PowerShell)

Способ №2

  1. Нажмите правой кнопкой мыши на необходимом сценарии

  2. Выберите пункт «Изменить» (Edit)

  3. Дождитесь запуска среды «Windows PowerShell ISE»

  4. Убедитесь, что на панели инструментов «Windows PowerShell ISE» активна зеленая стрелка

  5. Нажмите «F5» или нажмите левой кнопкой мыши на зелёную стрелку.

Способ №3

  1. Нажмите Ctrl+O для открытия сценария, который необходимо выполнить

  2. Найдите место расположения сценария и откройте его двойным щелчком левой кнопки мыши

При выполнении сценария система может сообщить о том, что выполнение сценариев запрещено.

Чтобы снять ограничение на выполнение сценариев PowerShell, выполните нижеуказанную команду в командной части
запущенной среды PowerShell ISE или в среде PowerShell

Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted

Официальная документация

powershell.txt

· Последние изменения: 2023/09/15 15:12 —

vladimir

В статье рассказывается, как без прав локального пользователя обойти запрет на выполнение скриптов в PowerShell, который становится препятствием для пентестеров и разработчиков в их работе.

Что такое политика выполнения PowerShell?

Политика выполнения PowerShell (PowerShell Execution Policy) — это параметр, определяющий, какие типы сценариев PowerShell можно запускать в системе. По умолчанию для параметра установлено значение «Restricted». Когда этот режим активирован, PowerShell предоставляет только базовые команды интерактивной сессии командной строки, не позволяя загрузку и выполнение пользовательских сценариев. Параметр обеспечивает защиту от случайного или злонамеренного выполнения вредоносного кода.

:/>  Windows power shell

Отметим, что режим «Restricted» может ограничить возможности PowerShell и повлиять на его функциональность. Поэтому существует несколько вариантов обхода этого параметра.

Почему администраторы хотят обойти политику выполнения?

Основная и самая частая причина – автоматизация процессов. Также есть несколько других причин, по которым PowerShell стал популярным среди администраторов, пентестеров и хакеров:

  • Встроен в Windows;
  • Предоставляет возможность вызова API Windows;
  • Предоставляет возможность запускать команды без записи на диск;
  • Предоставляет возможность избежать обнаружения антивирусом;
  • Позволяет создавать наборы инструментов для пентеста с открытым исходным кодом.

Как просмотреть настройки политики выполнения

Перед использованием всех функций PowerShell злоумышленникам, возможно, придется обойти политику выполнения «Restricted». Мы можем посмотреть текущую конфигурацию с помощью команды PowerShell «Get-ExectionPolicy». Параметр по умолчанию имеет значение «Restricted».

Руководство по обходу политики выполнения power shell

Также стоит отметить, что политика выполнения может быть установлена ​​на разных уровнях системы. Чтобы просмотреть их список, используйте следующую команду:

Руководство по обходу политики выполнения power shell

Настройка тестовой среды

В приведенных примерах используется сценарий с именем «runme.ps1», который содержит следующую команду PowerShell для вывода сообщения на консоль:

Write-Host “My voice is my passport, verify me.”

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

Руководство по обходу политики выполнения power shell

Если ваша текущая политика разрешает запуск скриптов, и вы хотите установить запрет в целях тестирования приведенных методов, запустите команду «Set-ExecutionPolicy Restricted» из консоли администратора PowerShell.

Обход политики выполнения PowerShell

1. Скопируйте сценарий в интерактивную консоль PowerShell.

Скопируйте и вставьте сценарий PowerShell в интерактивную консоль. Имейте в виду, что вы будете ограничены привилегиями вашего текущего пользователя. Это самый распространённый метод для запуска простых сценариев в интерактивной консоли. Кроме того, метод не приводит к изменению конфигурации и не требует записи на диск.

Руководство по обходу политики выполнения power shell

2. Отправьте сценарий в стандартный поток ввода PowerShell

Просто введите ваш скрипт в стандартный ввод PowerShell. Такой метод не приводит к изменению конфигурации и не требует записи на диск.

Руководство по обходу политики выполнения power shell


3. Прочитайте сценарий из файла и перенаправьте его в стандартный поток ввода PowerShell

Используйте команду Windows «type» или команду PowerShell «Get-Content», чтобы прочитать сценарий с диска и перенаправить его в стандартный ввод PowerShell. Этот метод не приводит к изменению конфигурации, но требует записи сценария на диск. Однако вы можете прочитать его из общего сетевого ресурса, если пытаетесь избежать записи на диск.

Пример 1: команда Get-Content PowerShell

Руководство по обходу политики выполнения power shell

Пример 2: Введите команду

Руководство по обходу политики выполнения power shell

4. Загрузите скрипт по URL-адресу и выполните его с помощью Invoke Expression.

Такой метод можно использовать для загрузки сценария PowerShell из Интернета и его выполнения без записи на диск. Способ также не приводит к каким-либо изменениям конфигурации.

Руководство по обходу политики выполнения power shell

5. Используйте переключатель функций PowerShell (Command Switch)

Метод очень похож на выполнение скрипта с помощью копирования и вставки, но его можно выполнить без доступа к интерактивной консоли. Такой способ хорошо подходит для выполнения простых сценариев, но более сложные сценарии обычно приводят к ошибкам синтаксического анализа. Метод не требует изменения конфигурации и записи на диск.

Пример 1: Полная команда

Руководство по обходу политики выполнения power shell

Пример 2: Укороченная команда

Powershell -c “Write-Host ‘My voice is my passport, verify me.'”

Также вы можете поместить указанные команды PowerShell в пакетные файлы и в места автозапуска (например, в папку автозагрузки), чтобы использовать скрипты во время повышения привилегий.

6. Используйте переключатель EncodeCommand Switch

EncodeCommand Switch очень похож на Command Switch, но отображает все скрипты в кодировке Unicode/base64. Кодирование скрипта таким образом помогает избежать ошибок синтаксического анализа, с которыми вы сталкиваетесь при использовании Command Switch.

Такой метод не приводит к изменению конфигурации и не требует записи на диск. Образец ниже был взят из утилиты Posh-SecMod, которая также содержит метод сжатия для уменьшения размера закодированных команд, если они становятся слишком длинными.

Пример 1: Полная команда

Руководство по обходу политики выполнения power shell

Пример 2: Сокращённая команда с использованием закодированной строки

powershell.exe -Enc VwByAGkAdABlAC0ASABvAHMAdAAgACcATQB5ACAAdgBvAGkAYwBlACAAaQBzACAAbQB5ACAAcABhAHMAcwBwAG8AcgB0ACwAIAB2AGUAcgBpAGYAeQAgAG0AZQAuACcA

7. Используйте команду Invoke-Command

Обычно команда выполняется через интерактивную консоль PowerShell или в сочетании с параметром «Command», но команду можно использовать для выполнения скриптов в удаленных системах, где включен запуск скриптов PowerShell. Такой способ не приводит к изменению конфигурации и не требует записи на диск.

Руководство по обходу политики выполнения power shell

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

8. Используйте команду Invoke-Expression

Команда не требует изменения конфигурации и записи на диск.

Пример 1: Полная команда с использованием Get-Content

Руководство по обходу политики выполнения power shell

Пример 2: сокращенная команда с использованием Get-Content

9. Используйте флаг Bypass

Флаг будет обходить политику выполнения, когда вы выполняете скрипты из файла. Microsoft заявляет, что при использовании флага «ничего не блокируется и не выводится никаких предупреждений или сообщений». Техника не влечет за собой изменения настроек и не требует записи на диск.

Руководство по обходу политики выполнения power shell

10. Используйте флаг Unrestricted

Флаг похож на Bypass, но при его использовании, как заявляет Microsoft, «загружаются все файлы конфигурации и запускаются все сценарии. Если вы запускаете неподписанный скрипт, загруженный из Интернета, перед его запуском у вас запрашивается разрешение». Такой метод не приводит к изменению конфигурации и не требует записи на диск.

Руководство по обходу политики выполнения power shell

11. Используйте флаг Remote-Signed

Создайте свой сценарий, а затем следуйте инструкциям Карлоса Переса, чтобы подписать созданный скрипт. Затем запустите его:

PowerShell.exe -ExecutionPolicy Remote-signed -File .runme.ps1

12. Отключите ExecutionPolicy, заменив AuthorizationManager

Функцию можно выполнить через интерактивную консоль PowerShell или в сочетании с параметром «Command». После вызова функция заменит «AuthorizationManager» на null. В результате политика выполнения устанавливается на unrestricted до конца сессии.

:/>  Параметризация функций

Метод не приводит к постоянному изменению конфигурации и не требует записи на диск. Однако изменение будет применяться на протяжении всей сессии.

Руководство по обходу политики выполнения power shell

13. Установите Excution Policy для уровня Process

В начале статьи было сказано, что политику выполнения можно применять на многих уровнях, включая уровень Process, который вы контролируете. Такой способ позволяет установить политику выполнения на unrestricted на время сессии. Кроме того, команда не приводит к изменению конфигурации и не требует записи на диск.

Руководство по обходу политики выполнения power shell

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

Руководство по обходу политики выполнения power shell

Здесь показано, как постоянно менять политику выполнения для среды текущего пользователя, напрямую изменяя раздел реестра.

Руководство по обходу политики выполнения power shell

Подведение итогов

Политика выполнения не должна быть препятствием для разработчиков, администраторов или тестировщиков на проникновение. Microsoft никогда не предполагала, что PowerShell будет безопасным. Поэтому существует много вариантов обхода политики выполнения. Компания Microsoft предоставила несколько полезных встроенных инструментов, а сообщество специалистов по безопасности продемонстрировало несколько интересных трюков.

Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).

Скрипт – это просто набор команд, сохраненных в текстовый файл (с расширением .ps1), которые PowerShell может понять и выполнить в заданной последовательности. Единственное предупреждение заключается в том, что в отличие от командной строки, протокол безопасности по умолчанию предотвращает выполнение всех сценариев.

Это означает, что при двойном щелчке .ps1 файла в системе Windows 10 ничего не произойдёт, и если вы пытаетесь выполнить скрипт в PowerShell, вы получите сообщение об ошибке: «не может быть загружен, потому что запрещено выполнение сценариев в этой системе». Тем не менее, запускать сценарии на вашем устройстве довольно просто. Вам просто нужно включить правильную политику выполнения.

Работа со скриптами в инструменте PowerShell Windows 10

В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.

Создание файла сценария PowerShell

В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).

Создание скрипта с помощью блокнота

Чтобы создать сценарий PowerShell с помощью блокнота, выполните следующие действия:

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

    Создание файла скрипта PowerShell с помощью блокнота

    Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

  3. Сохраните файл под любым удобным названием, например, first_script.ps1

Создание сценария с помощью интегрированной среды сценариев

Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:

  1. Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.

    Запуск интегрированной среды сценариев

  2. В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:

    Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

    Создаём скрипт для PowerShell через ISE

  3. Откройте меню Файл и нажмите кнопку .
  4. Введите название сценария. Например, first_script_ise.ps1
  5. Сохраните скрипт.

Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.

Запуск файла сценария PowerShell

Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:

  1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
  2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу :
  3. Укажите тип А и ещё раз нажмите клавишу .

    Разрешим запуск скриптов PowerShell

  4. Введите следующую команду для запуска скрипта и нажмите клавишу : & "C:\PATH\to\SCRIPT\first_script.ps1"

    Запуск файла скрипта PowerShell

    В приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.

После выполнения этих шагов сценарий будет запущен, и если он был создан правильно, вы должны увидеть его вывод без проблем.

PowerShell в Windows 10 включает четыре политики выполнения:

  • Restricted – останавливает выполнение скрипта.
  • RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
  • AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
  • Unrestricted запускает любой скрипт без каких-либо ограничений.

В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.

/ /

1

29.11.2023, 22:19. Показов 1434. Ответов 13


Author24 — интернет-сервис помощи студентам

Здравствуйте, только начал изучать програмирование и дали задание.
Нужно через батник выполнить эту команду в повершеле:
dism /online /enable-feature /all /featurename:IIS-ASP; dism /online /enable-feature /all /featurename:IIS-ASPnet45; dism /online /enable-feature /all /featurename:IIS-ASPnet; dism /online /enable-feature /all /featurename:IIS-ISAPIExtensions; start-service W3SVC; (Get-IISAppPool -name DefaultAppPool).start()
Помогите пожайлуста

/ /

29.11.2023, 22:19

Ответы с готовыми решениями:

/ /

Записей в блоге: 12

30.11.2023, 00:45

2

Самый лучший вариант – использование powershell -enc, т.к. батник не сломается от спецсимволов в команде.

Воспользуйтесь любой программой/сайтом для кодирования текста в Base64. Я предпочитаю этот сайт.

Закодированный текст передайте команде powershell -enc.
Ключ -ex bypass нужен для обхода политики выполнения скриптов.

P.S. Я сократил ключи PowerShell, полное название ключа -ex-ExecutionPolicy, а ключа -encEncodedCommand. Команда с сокращенными названиями работает, но документацию (если понадобится) придется искать по полному названию.

Windows Batch file
1
2
3
4
5
6
7
 off
 :: dism /online /enable-feature /all /featurename:IIS-ASP; dism /online /enable-feature /all /featurename:IIS-ASPnet45; dism /online /enable-feature /all /featurename:IIS-ASPnet; dism /online /enable-feature /all /featurename:IIS-ISAPIExtensions; start-service W3SVC; (Get-IISAppPool -name DefaultAppPool).start() :: Запуск PowerShellpowershell bypass 

/ /

30.11.2023, 18:03

3

Цитата
Сообщение от nekit270
Посмотреть сообщение

Воспользуйтесь любой программой/сайтом для кодирования текста в Base64

Пошик же умеет

PowerShell
1
Convert::ToBase64StringSystem.Text.Encoding::Unicode.GetBytes'Write-Host -for green "Hello World!"'
VwByAGkAdABlAC0ASABvAHMAdAAgAC0AZgBvAHIAIABnAHIAZQBlAG4AIAAiAEgAZQBsAGwAbwAgAFcAbwByAGwAZAAhACIA

PowerShell
1
 powershell.exe encodedCommand 
PowerShell
1
Text.Encoding::UTF8.GetStringconvert::FromBase64String

А может нужна обёртка dism? Руководство по обходу политики выполнения power shell

Получить список командлетов модуля dism

PowerShell
1
 Module dism Cmdlet Name feature

Или просто powershell /?

/ /

Записей в блоге: 12

30.11.2023, 19:33

4

iNNOKENTIY21, подходит много чего, именно поэтому специально написал “воспользуйтесь любой программой”. Лично мне удобнее через сайт, поэтому и указал его

:/>  Не удаляется папка. Как удалить неудаляемую папку? ::

/ /

30.11.2023, 20:37

5

nekit270, онлайн, это плохая идея.
Посылаете вы кодироваться в онлайн сервис:

PowerShell
1
 green 
PowerShell
1
powershell.exe encodedCommand 

/ /

Записей в блоге: 12

30.11.2023, 23:42

6

Цитата
Сообщение от iNNOKENTIY21
Посмотреть сообщение

онлайн, это плохая идея

если нет паранойи – вполне неплохая

кстати, кодировку с помощью powershell`а тоже можно “подправить”:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
# предположим, этот класс лежит где-нибудь в $PSHOME\Profile.ps1class convert
    static ToBase64String
       
   
  Convert::ToBase64StringSystem.Text.Encoding::Unicode.GetBytes'Write-Host -for green "Hello World!"' # чтобы окошко не закрывалось сразуstart cmd.exe "/c powershell.exe -enc $s & pause>nul"

/ /

01.12.2023, 09:21

7

Цитата
Сообщение от nekit270
Посмотреть сообщение

# чтобы окошко не закрывалось сразу

PowerShell
11
.ui.RawUI.ReadKey.ch

или powershell -noe -f .\name.ps1

/ /

Записей в блоге: 12

01.12.2023, 11:48

8

FlasherX, мне было лень перекодировать Base64. а вот за -noe спасибо

/ /

01.12.2023, 13:30

9

Цитата
Сообщение от nekit270
Посмотреть сообщение

мне было лень перекодировать Base64

Не понял, как это связано с цитатой? Руководство по обходу политики выполнения power shell

Добавлено: А, в коде FromBase64String нет, ясно.

/ /

02.12.2023, 16:54

10

Цитата
Сообщение от Hikiro
Посмотреть сообщение

Нужно через батник выполнить эту команду в повершеле

нет, не нужно.

сценарии автоматизации для оболочки powershell исполняются самой оболочкой powershell.
Такой сценарий размещается в файле с расширением .PS1

Для их исполнения не нужен ни интерпретатор cmd.exe, ни photoshop.exe, ни даже acad.exe,
а нужна либо оболочка powershell.exe ( рекомендована версия 5.1 ),
либо новая кросс-платформенная оболочка pwsh.exe ( версия 7.* )

PowerShell
1
2
3
4
5
6
dism online enablefeature all featurename:IISASP;
dism online enablefeature all featurename:IISASPnet45;
dism online enablefeature all featurename:IISASPnet;
dism online enablefeature all featurename:IISISAPIExtensions; W3SVC;
GetIISAppPool DefaultAppPool.start

/ /

Записей в блоге: 12

02.12.2023, 17:34

11

Цитата
Сообщение от volodin661
Посмотреть сообщение

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

Представим такую ситуацию: необходимо написать некий скрипт, который должен запускать обычный пользователь.
В таком случае либо понадобится “лаунчер” скрипта:

Windows Batch file
1
powershell bypass 

либо исполнение команды через ключи -command и -encodedCommand

PowerShell – прекрасный инструмент, но из-за политики выполнения по умолчанию требует дополнительных “финтов ушами” для запуска скриптов

/ /

03.12.2023, 18:40

12

В других операционных средах ( MacOS и Linux ) не требуется ничего, это чисто Windows-особенность

/ /

Записей в блоге: 12

03.12.2023, 18:49

13

volodin661, вопрос только, кто это будет исполнять. если ты думаешь, что среднестатистический юзер может без затруднений открыть powershell и вставить туда команду – ты переоцениваешь юзера.

если программа требует для ее запуска каких-либо действий, кроме двойного щелчка по файлу и установки через gui-установщик – это плохая программа для большинства пользователей

/ /

03.12.2023, 19:41

14

мне глубоко фиолетовы низко, средне и высокостатистические юзеры и какие-то высосанные из некоего пальца проблемы запуска сферических скриптов.

( Windows тем же цветом и тоже глубоко)

Но.
Но если будет поставлена задача по автоматизации чего-либо ( клиентских мест или серверов) в Windows,
я или любой другой инженер решит её с помощью powershell и документации, которая находится в открытом доступе.

( запуск сценария powershell по двойному щелчку решается установкой
в ключе реестра
значения Default в

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noLogo -ExecutionPolicy unrestricted -file “%1”