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


Политика выполнения скриптов PowerShell

При разработке PowerShell особое внимание было уделено безопасности. Одной из мер безопасности является наличие политики выполнения (Execution Policy), которая определяет, могут ли скрипты PowerShell выполняться в системе, и если могут, то какие именно.

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

 

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

• Restricted — в системе запрещено выполнение любых скриптов, допускается только выполнение отдельных команд. Это политика по умолчанию для клиентских ОС Windows;
• AllSigned — разрешено выполнение только скриптов, имеющих цифровую подпись от доверенного издателя;
• RemoteSigned — для удаленных скриптов требуется наличие цифровой подписи, локальные скрипты выполняются без ограничений. Удаленными считаются скрипты, полученные из удаленных источников (загруженные из интернета, полученные по электронной почте и т.п.), локальными — скрипты, созданные на локальном компьютере. Это политика по умолчанию для серверных ОС Windows;
• Unrestricted — разрешено выполнение любых скриптов, как локальных так и удаленных. При выполнении удаленного скрипта без цифровой подписи будет выдано предупреждение. Это дефолтная и единственно возможная политика для всех ОС, отличных от Windows;
• Bypass — разрешено выполнение любых скриптов, никакие предупреждения и запросы не выводятся;
• Default — сбрасывает политику на значение по умолчанию. Для серверов это RemoteSigned, для клиентов Restricted;
• Undefined — не определено. В случае, если значение политики не определено, то применяется политика Restricted.

Теоретически все понятно, проверим на практике. Для просмотра параметров политики используется командлет Get-ExecutionPolicy, а для  изменения Set-ExecutionPolicy.

Для начала выведем действующую политику выполнения командой:

Get-ExecutionPolicy

Как и ожидалось, текущая политика Restricted. Разрешим выполнение скриптов, установив для политики значение Unrestricted:

Set-ExecutionPolicy Unrestricted -Force

И еще попробуем запустить скрипт. На сей раз он выполнился без ошибок.

 

Политика Unrestricted разрешает выполнение любых скриптов, но у нее все же есть ограничения. Для проверки я подготовил два скрипта, локальный localscript.ps1 и удаленный remotescript.ps1. Сначала запустим локальный, он выполнится без проблем. А вот при запуске удаленного скрипта PowerShell выдаст предупреждение и потребует подтвердить его запуск. При ручном выполнении это не является большой проблемой, а вот в случае автоматического запуска (напр. из планировщика) скрипт может не отработать.

 

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

 

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

 

У вас может возникнуть вопрос, как именно PowerShell различает локальные и удаленные скрипты. Тут все просто. При загрузке файла приложение (напр. браузер) добавляет файл идентификатор зоны (ZoneId), который и определяет, откуда был взят файл. Идентификатор хранится в альтернативном потоке и имеет значение от 0 до 4:

• Локальный компьютер (0)
• Местная сеть (1)
• Надежные сайты (2)
• Интернет (3)
• Опасные сайты (4)

Если файл имеет ZoneId 3 или 4, то PowerShell считает его удаленным. А если на компьютере включена конфигурация усиленной безопасности Internet Explorer, то файлы, взятые из локальной сети, тоже могут считаться удаленными.

Как выполнить удаленный скрипт? Во первых его  можно разблокировать (превратить в локальный), для этого есть специальный командлет Unblock-File. Хотя если просто открыть скрипт на локальном компьютере и внести в него изменения, то он тоже станет локальным.

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

 

Переходим к политике AllSigned. Это наиболее жесткая политика, требующая подписывания всех без исключения скриптов, как удаленных так и локальных. И даже с подписанными скриптами она работает не так, как RemoteSigned. Для примера сменим политику на AllSigned и снова запустим подписанный скрипт. В этот раз для его выполнения потребуется подтверждение, т.к. PowerShell посчитал подпись недоверенной.

Области применения

Политика выполнения имеет свою область действия (scope). Всего есть 5 областей:

• LocalMachine — политика действует на всех пользователей данного компьютера. Значение хранится в реестре, в разделе HKEY_LOCAL_MACHINE;
• CurrentUser — политика действует только на текущего пользователя. Хранится в разделе реестра HKEY_CURRENT_USER;
• Process — действие политики распространяется только на текущий сеанс PowerShell. Значение хранится в переменной окружения $PSExecutionPolicyPreference и при закрытии сеанса удаляется;
• Userpolicy — политика действует на всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе пользователя, соответственно политика применяется при входе пользователя в систему;
• MachinePolicy — действует на всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе компьютера, политика применяется при загрузке системы;

Вывести значение политики для всех областей можно командой:

Get-ExecutionPolicy -List

 

Получается, что при установке политики без указания области изменяется значение LocalMachine. Если же требуется указать конкретную область действия, то сделать это можно с помощью параметра Scope командлета Set-ExecutionPolicy. Для примера установим для области СurrentUser политику Bypass:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

Затем проверим значение политики в текущем сеансе и убедимся в том, что оно изменилось на Bypass.

 

Теперь установим политику Unrestricted для области Process:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force

Еще раз проверим текущую политику, теперь она имеет значение Unrestricted. Т.е. более ″конкретная″ политика всегда имеет больший приоритет.

 

Для областей UserPolicy и MachinePolicy значение политики задаются через GPO. За настройку отвечает параметр Turn on Script Execution (Включить выполнение сценариев), находящийся в разделе Administrative Templates\Windows Components\Windows PowerShell. Для UserPolicy он находится в конфигурации пользователя (User Configuration), для MachinePolicy — в конфигурации компьютера (Computer Configuration). Политика, применяемая к компьютеру, имеет приоритет перед политикой пользователя.

 

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

• Allow only signed scripts (Разрешать только подписанные сценарии) — политика AllSigned;
• Allow local scripts and remote signed scripts (разрешать локальные и удаленные подписанные сценарии) — политика RemoteSigned;
• Allow all scripts (Разрешать все сценарии) — политика Unrestricted.

Политика Bypass считается небезопасной и ее нельзя установить через групповые политики.

 

Для примера установим для MachinePolicy политику RemoteSigned и проверим результат. Как видите, политика, назначенная через GPO, имеет больший приоритет и переопределяет все остальные политики.

 

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

А что будет, если ни для одной области политика не определена, т.е. везде стоит значение Undefined?  В этом случае все просто, выполнение всех скриптов запрещается, а текущая политика принимает значение Restricted.

Обход политики

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

К примеру для того, чтобы выполнить скрипт, достаточно открыть его в проводнике, кликнуть правой клавишей мыши и выбрать пункт Выполнить с помощью PowewrShell (Run with PowerShell).  Это запускает оболочку PowerShell c политикой Bypass. При этом политика применяется только для выполнения конкретного скрипта, значение политики в реестре не изменяется.

Этот способ называется  ″Run with PowerShell″ и у него есть некоторые ограничения. Скрипты, запущенные таким образом, не могут взаимодействовать с пользователем (выводить сообщения на экран, требовать ввода данных и т.п.). Скрипт просто запускается, выполняется и немедленно закрывается.

 

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

powershell.exe -file .\script.ps1 -Executionpolicy Bypass

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

 

Еще один вариант — это попробовать изменить политику выполнения для области Process. Эта операция не вносит изменений в реестр и не требует прав администратора. Но в том случае, если для назначения политики выполнения используются групповые политики, этот способ не сработает.

Ну и наконец можно просто считать содержимое скрипта и выполнить его в виде команды. Например так:

$script = Get-Content ./script.ps1
Invoke-Expression -Command ″$script″

Разрешить запуск скриптов PowerShell | internet-lab.ru

По умолчанию запуск скриптов PowerShell может быть запрещён.

Пытаюсь запустить скрипт, получаю ошибку:

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

Посмотрим текущее значение политики выполнения скриптов PowerShell:

 Get-ExecutionPolicy

Возможные варианты:

  • Restricted – запрещен запуск скриптов PowerShell, можно выполнять только интерактивные команды.
  • AllSigned – разрешено выполнять только скрипты с цифровой подписью от доверенного издателя.
  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PowerShell скрипты с цифровой подписью. Нельзя запускать PS1 файлы, скачанные из Интернета. В свойствах скачанного файла можно "Разблокировать" запуск скрипта.
  • Unrestricted – разрешен запуск любых PowerShell скриптов.
  • Bypass – разрешён запуск любых PowerShell скриптов. Эта политика обычно используется для автоматического запуска PS скриптов без вывода каких-либо уведомлений и не рекомендуется для постоянного использования.
  • Default – сброс настроек выполнения скриптов на стандартные.

У меня установлена политика AllSigned, поэтому неподписанный скрипт не запустился.

Для изменения текущего значения политики запуска PowerShell скриптов используется командлет Set-ExecutionPolicy.

 Set-ExecutionPolicy Bypass

Как видно из скриншота, политика запуска PowerShell скриптов изменилась, но... не изменилась. Такая ошибка появляется, если политики запуска PowerShell скриптов управляются групповыми политиками, например, если компьютер в домене.

В этом случае нам поможет реестр. В разделе

 \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell

Установить ExecutionPolicy=Bypass.

Ещё можно запустить скрипт с явно указанной политикой:

 powershell.exe -noprofile -executionpolicy bypass -file c:\ps\hello.ps1

Или так:

 Get-Content c:\ps\hello.ps1 | PowerShell.exe -noprofile -executionpolicy bypass

Можно установить не только политику запуска PowerShell скриптов, но и зону её действия с помощью параметра Scope.

 Get-ExecutionPolicy -List

Например:

 Set-ExecutionPolicy -Scope MachinePolicy -ExecutionPolicy Bypass –Force

Возможные варианты:

  • LocalMachine — для всех пользователей данного компьютера. Значение хранится в реестре, в разделе HKEY_LOCAL_MACHINE.
  • CurrentUser — для текущего пользователя. Хранится в разделе реестра HKEY_CURRENT_USER.
  • Process — в текущем сеансе PowerShell. Значение хранится в переменной окружения $PSExecutionPolicyPreference и при закрытии сеанса удаляется.
  • UserPolicy — для всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе пользователя, политика применяется при входе пользователя в систему.
  • MachinePolicy — действует на всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе компьютера, политика применяется при загрузке системы.

Разрешить запуск скриптов Powershell (Powershell Execution Policy) — Windows admin blog

ОПИСАНИЕ

По умолчанию скрипты Powershell блокируются для запуска. Механизм этот называется Execution Policy. Однако, зачастую необходимо разрешить выполнение скриптов, чтобы, например, иметь возможность выполнять их по расписанию в планировщике заданий.

Чтобы узнать, какая сейчас установлено политика, нужно воспользоваться командой

Get-ExecutionPolicy

Значения этой политики хранятся в реестре по следующему пути:

Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ Microsoft.PowerShell

строковый параметр «ExecutionPolicy»

По умолчанию значение этого параметра выставлено в «Restricted» (ограниченный), что и запрещает выполнение скриптов.

На самом деле, область применения политики различная — она может устанавливаться на разных уровнях системы, таким образом она будет распространяться на компьютер (будет действовать для всех пользователей), только на текущего пользователя и т.п. Посмотреть эту информацию можно, добавив параметр -list

Get-ExecutionPolicy -list

ИЗМЕНЕНИЕ ПОЛИТИКИ

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

Set-ExecutionPolicy

Доступные значения:

Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined

Наиболее интересны для нас первые четыре:

Restricted — выполнение сценариев запрещено. Эта опция установлена по умолчанию. Команды в таком случае можно выполнять только в интерактивном режиме.

All Signed — разрешено выполнение только сценариев, подписанных доверенным издателем.

RemoteSigned — разрешено выполнение любых сценариев, созданных локально, а сценарии, созданные на удаленных системах, выполняются только в том случае, если подписаны доверенным издателем.

Unrestricted — разрешено выполнение абсолютно любых сценариев.

Наиболее безопасным будет параметр RemoteSigned, который будет выполнять только сценарии, созданные вами локально.

Чтобы изменить политику, запустите Powershell от имени администратора и введите:

Set-ExecutionPolicy RemoteSigned

Видим запрос

Изменение политики выполнения
Политика выполнения защищает компьютер от ненадежных сценариев. Изменение политики выполнения может поставить под угрозу безопасность системы, как описано в разделе справки, вызываемом командой about_Execution_Policies и расположенном по адресу https:/go.microsoft.com/fwlink/?LinkID=135170 . Вы хотите изменить политику выполнения?
[Y] Да — Y [A] Да для всех — A [N] Нет — N [L] Нет для всех — L [S] Приостановить — S [?] Справка
(значением по умолчанию является «N»):

Выбираем пункт A .

Поделиться ссылкой:

Понравилось это:

Нравится Загрузка...

Похожее

Как запустить скрипт PowerShell в Windows

Обновлено 16.07.2021

Всем привет сегодня хочу рассказать как запустить скрипт PowerShell в Windows. Представьте ситуацию вы написали скрипт который сильно упрощает вам вывод информации по Active Directory, вы открываете оснастку powershell прописываете путь к своему скрипту нажимаете enter и получаете ошибку.

Не удается загрузить файл <путь к вашему файлу>, так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений.

Смотрим как ее решить.

Ошибки при запуске скрипта PowerShell

Как запустить скрипт PowerShell в Windows-02

Так же вы можете увидеть ошибку после запуска установленного PowerCLI:

Import-Module : Невозможно загрузить файл C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.2.0.17
531155\VMware.VimAutomation.Sdk.psm1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
строка:1 знак:1
+ Import-Module VMware.PowerCLI
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Ошибка безопасности: (:) [Import-Module], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

PowerShell обладает рядом режимов исполнения, которые определяют, какой тип кода разрешается выполнять. Все это управляется ключом реестра, живущим в HKLM. Существует 4 различных режима исполнения:

  • Ограниченный (Restricted): Политика исполнения по умолчанию, не допускает работу скриптов и разрешает работу лишь интерактивных команд.
  • Все подписанные (All Signed): Допускает работу всех скриптов. Правда, все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; данный режим подвергает вас риску работы подписанных (но вредоносных) скриптов, после получения подтверждения доверия издателю.
  • Удаленные подписанные (Remote Signed): Локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
  • Неограниченный (Unrestricted): Все скрипты и файлы конфигурации, полученные из коммуникационных приложений, вроде Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger работают после подтверждения, что вы понимаете, что файл исходит из Интернета; никакие цифровые подписи не требуются; данный режим подвергает вас риску работу неподписанных, вредоносных скриптов.

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

Разрешить выполнение скриптов powershell

Чтобы запускать созданные собою скрипты, необходимо разрешить выполнение ненадежных скриптов с помощью команды Set-ExecutionPolicy remotesigned и подтверждением (Внимание!!! для выполнения этой команды необходимо запустить PowerShell с правами администратора). После этого можно вновь запустить выполнения скрипта.

Как запустить скрипт PowerShell в Windows-03

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

Как запустить скрипт PowerShell по расписанию

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

Я приведу пример, когда мне нужно было отслеживать события ID 20291 или ID 11707.  И так откройте окно выполнить и введите в нем:

Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт "Создать задачу".

Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи "СИСТЕМА (SYSTEM)", это будет гарантировать, что задание точно отработает.

Поставьте галку "Выполнять с наивысшими правами"

Переходим на вкладку тригеры и создаем новый. В параметрах выберите "При событии"

Далее задаем:

  • Журнал - Приложение
  • Источник - MsiInstaller
  • Код события - 11707

Тут тригер будет срабатывать, когда в логах появится событие 11707.

В действие оставляем "Запуск программы". В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:\scripts\id11707.ps1.

В итоге у меня вышло вот так.

Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.

Запуск скрипта PowerShell через исполняемый файл exe

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

На этом у меня все, мы разобрали методы запуска скриптов PowerShell в Windows, с вами был Иван Семин. Материал сайта pyatilistnik.org

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

PowerShell обладает рядом режимов исполнения, которые определяют, какой тип кода разрешается выполнять. Все это управляется ключом реестра, живущим в HKLM. Существует 4 различных режима исполнения:

Ограниченный (Restricted): Политика исполнения по умолчанию, не допускает работу скриптов и разрешает работу лишь интерактивных команд.

Все подписанные (All Signed): Допускает работу всех скриптов. Правда, все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; данный режим подвергает вас риску работы подписанных (но вредоносных) скриптов, после получения подтверждения доверия издателю.

Удаленные подписанные (Remote Signed): Локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.

Неограниченный (Unrestricted): Все скрипты и файлы конфигурации, полученные из коммуникационных приложений, вроде Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger работают после подтверждения, что вы понимаете, что файл исходит из Интернета; никакие цифровые подписи не требуются; данный режим подвергает вас риску работу неподписанных, вредоносных скриптов.

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

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

Для изменения политики исполнения на неограниченную, запустите нижеследующую команду в административном PowerShell:

Set-ExecutionPolicy Unrestricted

Вы увидите запрос подтверждения. Нажмите Enter.

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

Set-ExecutionPolicy Restricted

И снова вы увидите запрос подтверждения. Нажмите Enter.

Вот и все! Удачи вам!

Как включить выполнение скрипта PowerShell в Windows 10?

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

Что такое скрипты?

Скрипты - это строки кода, которые составляют конкретная функция или конкретное приложение . Скрипты считаются широко используемыми компьютерными инструментами в сети и характеризуются очень практичным и эффективным характером.

Для чего нужны скрипты?

Скрипты позволяют выполнять несколько действий, среди которых можно выделить следующие: выполнение функции специфические для веб-страницы, веб-разработка, добавление программного расширения. Вы даже можете запланировать такие задачи, как закрыть Word из кода или скрипта VBA среди других автоматических процессов. Короче говоря, они являются важным элементом Интернета.

Что такое PowerShell?

PowerShell - это инструмент, который позволяет управлять системой и поставляется в виде консоли. PowerShell отличается тем, что является более продвинутым ресурсом, чем cmd и MS-DOS, и отвечает за упрощение управления операционной системой и некоторыми приложениями.

Важно отметить, что PowerShell использует комплексный язык консоли, основанный на наборе математических операторов, переменных и других элементов, предназначенных для написания сценариев. Некоторые пользователи предпочитают удалить или удалить complètement Windows PowerShell когда они не осознают его полезность. Однако рекомендуется сохранить инструмент в связи с его актуальностью при выполнении различных задач.

Как включить выполнение скрипта PowerShell в Windows 10?

Часто выполнение сценариев PowerShell в Windows 10 по умолчанию отключено. По этой причине удобно включить выполнение скриптов PowerShell в Windows 10 с помощью процедуры, которую мы объясним ниже.

Перейдите в PowerShell, чтобы включить выполнение скрипта.

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

Откроется командное окно PowerShell, в котором отображается каталог «System32» для «Windows». Если вам интересно, вы можете сделать окно Powershell прозрачным . В этом окне вы сможете ввести строки кода, необходимые для выполнения необходимых вам действий.

Включение выполнения сценария PowerShell в Windows 10

Если вы попытаетесь запустить сценарий в PowerShell, вы увидите сообщение «Выполнение сценария отключено в этой системе». Следовательно, вам нужно написать эту строку кода: set-executionpolicy неограниченный --force и нажмите клавишу «Enter», чтобы разрешить выполнение сценариев PowerShell на локальном компьютере с «неограниченной» политикой.

Политики выполнения скриптов

Вы можете использовать другие политики для запуска скриптов такие как «Undefined», который выполняет ту же функцию, что и «Unrestricted», «Allsigned», который устанавливает, что все сценарии подписаны, «ByPass», чтобы избежать предупреждений, «Restricted», который отключает выполнение сценария, и «RemoteSigned», который требует подписи проверенный редактор при загрузке скриптов из Интернета.

Команда set-executionpolicy

Set-executionpolicy изменяет политики выполнения в Windows PowerShell. Кроме того, эта команда является одной из стратегии безопасности которые позволяют загружать файлы конфигурации, такие как профиль PowerShell.

Области действия в PowerShell

Здесь очень много области применения в PowerShell например: «Локальный компьютер» с областью действия для всех пользователей ПК, «Текущий пользователь» для текущего пользователя, «Процесс», который влияет только на текущий сеанс в PowerShell, «Политика пользователя», которая устанавливает групповую политику для текущего пользователя и «MachinePolicy» с групповыми политиками для всех пользователей.

Проверьте, какой тип политики назначен каждой области после включения выполнения сценариев PowerShell в Windows 10.

Чтобы узнать, какой тип политики связан с каждой областью, введите PowerShell: Get-ExecutionPolicy – ​​список и нажмите «Enter». Таким образом, система покажет вам конфигурацию каждой из областей применения.

Решаем проблему с подписью скрипта в Powershell

Часто в практике .NET-программеров случается так, что для выполнения конкретной задачи написание отдельной программы нецелесообразно. Лучшим решением в подобных ситуациях является написание скрипта, однако далеко не каждый в силу понятных причин захочет устанавливать на рабочую машину под Windows интерпретатор стороннего разработчика. А вот использовать PowerShell – решение вполне вменяемое.

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

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

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

Как решить проблему подписи?

Начнем с того, что по дефолту на исполнение любых скриптов наложен запрет. И потому для начала нам потребуется разрешить выполнение скриптов только от доверенных издателей, с соответствующим корневым сертификатом. Прописываем из под сеанса админа в PowerShell следующее:

> Sеt-ExecutiоnPоliсy АllSignеd

Теперь придется повозиться с утилитой для создания персонального и корневого сертификатов. В соответствии с «инструкцией»

> Gеt-Hеlp Abоut_Signing

для создания сертификата используется утилита mekecert.exe, которая находится здесь:

%Prоgram Filеs%\Micrоsoft SDKs\Windоws\v7.0A\bin\mаkесеrt

Дальнейшие манипуляции, прописанные ниже, необходимо выполнить под обычным сеансом командной строки:

  1. Для начала создаем корневой сертификат, который будет использовать локальную машину в качестве центра его удостоверения:

> mаkecеrt -n "CN=PоwеrShеll Lоcal Cеrtificаte Rооt" -a shа1 -еku 1.3.6.1.5.5.7.3.3 -r -sv rооt.рvk rооt.cеr -ss Rооt -sr lосаlMасhinе

Данный способ «бесплатного» получения сертификата используется достаточно часто и считается одним из наиболее практичных.

  1. Теперь создаем персональный пользовательский сертификат дл PowerShell.

> mаkecert -pе -n "CN=PоwеrShеll Usеr" -ss MY -а shа1 -еku 1.3.6.1.5.5.7.3.3 -iv rооt.pvk -ic rооt.cеr

С его помощью будут подписываться скрипты при использовании корневого сертификата для его заверения. При успешном выполнении всех манипуляций в обеих строках должно отобразиться состояние «Succeeded».

При наличии персонального сертификата X509 можно не выполнять манипуляции, которые были описаны выше. Далее проверяем, что ОС распознает сертификат, который мы только что создали. Для этого в Powershell прописываем:

> Gеt-Сhilditеm cеrt:\СurrеntUsеr\my –cоdеsigning

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

> Sеt-AuthеnticоdeSignature "FilеNаmе" @(Gеt-ChildItеm cert:\CurrеntUsеr\Mу -cоdesigning)[0]

Вполне логично создать скрипт, подписывающий другие скрипты, который можно создать в любом текстовом редакторе, исключая ISE PowerShell. Скрипты, создаваемые в рамках данной среды, могут словить ошибку по типу «Unknown Error».

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

pаram([string] $file=$(thrоw "Plеаse spеcify а filеname."))

$cеrt = @(Gеt-ChildItеm cеrt:\CurrеntUsеr\My -cоdеsigning)[0]

Sеt-AuthеnticоdeSignаture $filе $cеrt

Примечания

- Если корневой сертификат на любом компьютере, кроме того, на котором он был создан, не достоверный, скрипт не удастся выполнить в принципе;

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

Для добавления обоих типов сертификатов в список достоверных потребуется использовать консоль mmc (оснастка Cеrtificates). Необходимо добавить сертификаты в папки Trustеd Publishеrs и Trustеd Rооt Cеrtification Authorities.

Вас также может заинтересовать:

Как разрешить сценарии PowerShell в Windows 7 (как)

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

PowerShell имеет несколько режимов выполнения, которые определяют тип кода, который может выполняться. Это управляется разделом реестра, который находится в кусте HKLM.Существует 4 различных режима выполнения:

  • Limited: Стратегия выполнения по умолчанию, не запускает скрипты, только интерактивные команды.
  • Все подписанные : Запускает сценарии; все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; это подвергает вас риску запуска подписанных (но вредоносных) сценариев после того, как вы убедитесь, что доверяете издателю.
  • Удаленная подпись : Локальные сценарии выполняются без подписи.Все загруженные скрипты требуют цифровой подписи, даже UNC-пути.
  • Без ограничений : Запускает сценарии; все сценарии и файлы конфигурации, загруженные из коммуникационных приложений, таких как Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger, запущенные после подтверждения того, что вы понимаете файл, поступающий из Интернета; не требуется цифровая подпись; это подвергает вас риску запуска неподписанных вредоносных сценариев, загруженных из этих приложений.

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

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

Set-ExecutionPolicy Unrestricted

Вас спросят, уверены ли вы, что хотите изменить политику выполнения, снова нажмите Enter.

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

Ограниченный метод Set-Execute

Опять же, вас спросят, уверены ли вы, что хотите изменить режим выполнения, продолжайте и нажмите Enter.

.

Информация о подписи — PowerShell

  • Статья
  • Время считывания: 7 мин
  • Соавторы: 2

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

Да Нет

Хотите что-нибудь добавить к этому мнению?

Отзыв будет отправлен в Microsoft: когда вы нажмете «Отправить», отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Краткое описание

Объясняет, как подписывать сценарии в соответствии с политикой выполнения PowerShell.

Подробное описание

Эта информация относится только к PowerShell, работающему в Windows.

Политика ограниченного выполнения не позволяет запускать какие-либо сценарии.Политика выполнения AllSigned и RemoteSigned не позволяет PowerShell запускать сценарии без цифровой подписи.

В этом разделе объясняется, как запускать выбранные сценарии, которые не подписаны, даже если политика выполнения — RemoteSigned , и как подписывать сценарии для собственного использования.

Дополнительные сведения о политике выполнения PowerShell см. в разделе about_Execution_Policies.

Чтобы разрешить выполнение подписанных сценариев

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

Политика с ограничениями не позволяет запускать скрипты.

Чтобы найти политику выполнения, эффективную для компьютера, введите:

  Get-ExecutionPolicy  

Для запуска неподписанных сценариев, написанных на локальном компьютере и подписанных другими пользователями, запустите PowerShell с параметром «Запуск от имени администратора», а затем используйте следующую команду, чтобы изменить политику выполнения на компьютере на RemoteSigned :

.
  Set-ExecutionPolicy RemoteSigned  

Дополнительные сведения см. в разделе справки для командлета Set-ExecutionPolicy .

Запуск неподписанных сценариев с использованием политики выполнения RemoteSigned

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

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

  Невозможно загрузить файл <имя-файла>.Файл <имя-файла> не является цифровым подписал. Скрипт не будет выполняться в системе. См. раздел «Получить справку». about_Signing" для более подробной информации.  

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

Для запуска неподписанных сценариев используйте командлет Unblock-File или описанную ниже процедуру.

  1. Сохраните файл сценария на своем компьютере.
  2. Нажмите кнопку «Пуск», выберите «Мой компьютер» и перейдите к сохраненному файлу сценария.
  3. Щелкните правой кнопкой мыши файл сценария и выберите пункт Свойства.
  4. Щелкните Разблокировать.

Если сценарий, загруженный из Интернета, имеет цифровую подпись, но доверие издателя еще не выбрано, PowerShell отображает следующее сообщение:

  Вы хотите запускать программное обеспечение от этого ненадежного издателя? Файл <имя-файла> опубликован CN = <имя-издателя>. Этот издатель не является доверенным в вашей системе.Запускать только скрипты от проверенных издателей. [V] Никогда не запускать [D] Не запускать [R] Запускать один раз [A] Всегда запускать [?] Справка (по умолчанию "D"):  

Если вы доверяете издателю, выберите «Выполнять один раз» или «Выполнять всегда». Если вы не доверяете издателю, выберите «Никогда не запускать» или «Не запускать». Если вы выберете «Никогда не запускать» или «Всегда запускать», PowerShell больше не будет запрашивать этот издатель.

Методы подписи сценария

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

Рекомендации по подписыванию кода см. в разделе Рекомендации по подписыванию кода.

Дополнительные сведения о подписании файла сценария см. в разделе Set-AuthenticodeSignature.

Командлет New-SelfSignedCertificate введен в модуль PKI в PowerShell 3.0 создает самозаверяющий сертификат, пригодный для тестирования. Дополнительные сведения см. в разделе справки для командлета New-SelfSignedCertificate.

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

  • Сертификаты, созданные центром сертификации. За определенную плату общедоступный центр сертификации проверяет вашу личность и предоставляет сертификат подписи кода.После приобретения сертификата в центре сертификации вы можете поделиться сценарием с пользователями на других компьютерах Windows, поскольку эти другие компьютеры доверяют ЦС.

  • Сертификаты, которые вы создаете: вы можете создать самозаверяющий сертификат, для которого компьютер является центром, создающим сертификат. Этот бесплатный сертификат позволяет вам писать, подписывать и запускать сценарии на вашем компьютере. Однако сценарий, подписанный самозаверяющим сертификатом, не будет выполняться на других компьютерах.

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

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

Создать самозаверяющий сертификат

Чтобы создать самозаверяющий сертификат, используйте командлет New-SelfSignedCertificate в модуле PKI. Этот модуль появился в PowerShell 3.0 и включен в Windows 8 и Windows Server 2012. Дополнительные сведения см. в разделе справки для команды New-SelfSignedCertificate .

  $ параметры = @ { Subject = 'CN = Сертификат подписи кода PowerShell' Тип = 'Подпись кода' CertStoreLocation = 'Сертификат: \ CurrentUser \ My' ХэшАлгоритм = 'sha256' } $ cert = New-SelfSignedCertificate @params  

Использование Makecert.исполняемый файл

Чтобы создать самозаверяющий сертификат в более ранних версиях Windows, используйте средство создания сертификата MakeCert.exe . Этот инструмент включен в Microsoft .NET SDK (версия 1.1 и выше) и Microsoft Windows SDK.

Дополнительные сведения о синтаксисе и описаниях параметров утилиты MakeCert.exe см. в разделе Построитель сертификатов (MakeCert.exe).

Для использования утилиты MakeCert.exe , чтобы создать сертификат, выполните следующие команды в окне командной строки SDK.

Примечание

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

  makecert -n "CN = корневой локальный сертификат PowerShell" -a sha256 ` -эку 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer ` -ss корень -sr локальная машина makecert -pe -n "CN = пользователь PowerShell" -ss MY -a sha256 ` -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer  

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

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

В командной строке PowerShell введите:

.
  Сертификат Get-ChildItem: \ CurrentUser \ my -codesigning  

Эта команда использует поставщик сертификатов PowerShell для отображения информации о сертификате.

Если сертификат был создан, выходные данные показывают отпечаток, идентифицирующий сертификат, на экране, подобном следующему:

  Каталог: Microsoft.PowerShell.Security\Certificate::CurrentUser\My Тема отпечатка ---------- ------- 4D4917CB140714BA5B81B96E0B18AAF2C4564FDF CN = пользователь PowerShell]  

Подписание скрипта

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

Следующий пример сценария подписывает Add-Signature.Скрипт ps1 . Однако, если вы используете политику выполнения AllSigned , Add-Signature.ps1 , вы должны подписать сценарий перед его запуском.

Действительный

До PowerShell 7.2 сценарий должен быть написан с использованием кодировки ASCII или UTF8NoBOM. PowerShell 7.2 или более поздней версии поддерживает подписанные сценарии для любого формата кодировки.

Чтобы использовать этот скрипт, скопируйте следующий текст в текстовый файл и назовите этот скрипт Add-Signature.пс1 .

  ## Подписывает файл param ([string] $ file = $ (throw "Пожалуйста, укажите имя файла")) [email protected](Get-ChildItem cert:\CurrentUser\My -codesigning) [0] Set-AuthenticodeSignature $ файл $ сертификат  

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

  [email protected](Get-ChildItem cert:\CurrentUser\My -codesigning) [0] Set-AuthenticodeSignature add-signature.ps1 $ cert  

После того, как скрипт подписан, вы можете запустить его на локальном компьютере.Однако сценарий не будет выполняться на компьютерах, где политика выполнения PowerShell требует цифровой подписи от доверенного центра. Если вы попытаетесь, PowerShell отобразит следующее сообщение об ошибке:

.
  Невозможно загрузить файл C:\remote_file.ps1. Подпись сертификат не может быть проверен. В строке: 1 символ: 15 +.\удаленный_файл.ps1 <<<<  

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

Включить надежную защиту закрытого ключа

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

Чтобы предотвратить автоматическую подпись от вашего имени, используйте диспетчер сертификатов Certmgr.exe для экспорта ключа подписи и сертификата в файл .pfx .Диспетчер сертификатов входит в состав Microsoft .NET SDK, Microsoft Windows SDK и Internet Explorer.

Чтобы экспортировать сертификат:

  1. Запустите Диспетчер сертификатов.
  2. Выберите сертификат, выданный локальным корнем сертификата PowerShell.
  3. Нажмите кнопку Экспорт, чтобы запустить мастер экспорта сертификатов.
  4. Выберите «Да, экспортировать закрытый ключ» и нажмите «Далее».
  5. Выберите «Включить надежную защиту».
  6. Введите пароль, затем повторите его для подтверждения.
  7. Введите имя файла с расширением Pfx.
  8. Нажмите кнопку Готово.

Для повторного импорта сертификата:

  1. Запустите Диспетчер сертификатов.
  2. Нажмите кнопку «Импорт», чтобы запустить мастер импорта сертификатов.
  3. Откройте файл .pfx в папке, созданной в процессе экспорта.
  4. На странице «Пароль» выберите «Включить надежную защиту закрытого ключа», а затем введите пароль, назначенный в процессе экспорта.
  5. Выберите личное хранилище сертификатов.
  6. Нажмите кнопку Готово.

Предотвращение истечения срока действия подписи

Цифровая подпись в сценарии действительна до истечения срока действия сертификата подписи или до тех пор, пока сервер меток времени не сможет проверить, подписан ли сценарий, когда сертификат подписи действителен.

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

См. также

.

Как установить политику выполнения PowerShell

При попытке запуска сценариев PowerShell может потребоваться установить политику выполнения PowerShell, чтобы разрешить запуск сценария. В противном случае вас может приветствовать сообщение « имя сценария не может быть загружено, поскольку выполнение сценариев отключено в этой системе. "Сообщение об ошибке.

Используйте это руководство, чтобы разрешить запуск сценариев PowerShell в Windows.

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

Щелкните правой кнопкой мыши значок скрипта и выберите « Свойства ».

Убедитесь, что установлен флажок « Разблокировать », а затем выберите « OK ».

Вариант 1 — команда PS

Нажмите кнопку « Start » и введите « powershell ».

Щелкните правой кнопкой мыши « Windows PowerShell » и выберите « Запуск от имени администратора ».

Введите следующее, затем нажмите " Enter ":
Set-ExecutionPolicy RemoteSigned -Force

Вариант 2 — раздел реестра

Удерживайте нажатой клавишу Windows , затем нажмите « R », чтобы отобразить окно «Выполнить».

Введите " regedit ", затем выберите " OK ":

Перейти к следующему:

  • HKEY_LOCAL_Machine
  • ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
  • Майкрософт
  • PowerShell
  • 1
  • Корпуса
  • Майкрософт Powershell

Щелкните правой кнопкой мыши папку « Microsoft.PowerShell » и выберите « New » > « String Value ».

Введите « ExecutionPolicy », затем нажмите « Enter », чтобы задать имя строки.

Откройте « ExecutionPolicy », а затем введите « RemoteSigned » в поле « Значение данных ».

Выберите " OK ".

Вариант 3 — групповая политика

Параметры групповой политики для установки политики выполнения можно найти в редакторе управления групповыми политиками по этому пути:

  • Политики> Административные шаблоны> Компоненты Windows> Windows PowerShell> Включить сценарии
.

Как исправить «Сценарии отключены в этой системе» в PowerShell в Windows 10

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

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

Исправление запущенных сценариев отключено в этой системе

Откройте PowerShell с правами администратора и выполните следующую команду.

 Get-ExecutionPolicy-список 

Отобразятся правила выполнения, установленные для пользователя и компьютера. Вполне вероятно, что для обеих политик или, по крайней мере, для политики CurrentUser задано значение Limited.

Чтобы исправить ошибку «скрипты отключены в этой системе», необходимо изменить политику для CurrentUser. Для этого выполните следующую команду.

 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 

Подтвердите, что хотите внести изменение, и вы сможете запустить скрипт.

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

Запустите эту команду.

 Set-ExecutionPolicy RemoteSigned -Scope LocalMachine 

Подтвердите, что хотите внести изменение, а затем попробуйте запустить сценарий.

Это должно быть нормально, если вы написали скрипт сами, если вы скачали его из интернета и он не подписан, вам нужно изменить политику выполнения на Unlimited. Для этого замените «RemoteSigned» во всех вышеперечисленных командах на «Unrestricted». Будьте осторожны, какие сценарии вы запускаете при их загрузке. Они могут быть опасны.

Набор-ExecutionPolicy

Это довольно простая команда для установки политики выполнения в PowerShell. Эта команда может иметь четыре разных параметра или состояния: «Ограничено», «Все подписаны», «Удаленно подписано» и «Не ограничено».

Переключатель -Scope определяет, к чему применяется изменение политики. При вводе «CurrentUser» применяется только к текущему пользователю, при вводе «LocalMachine» применяется ко всей системе

. .

Как изменить политику выполнения PowerShell в Windows 10

Главная «Windows 10» Как изменить политику выполнения PowerShell в Windows 10

Изменение политики выполнения для PowerShell — Иногда в PowerShell выполняется успешный сценарий, но в результате отображаются коды красного цвета. Красные коды указывают на сбой реализации скрипта. Во многих случаях этот сбой вызван неправильной политикой выполнения.Но Windows 10 упростила политику внесения изменений PowerShell, и вы можете сделать это через настройки разработчика в разделе «Обновление и безопасность».

Для ограничения выполнения сценариев в PowerShell создается всего 4 политики. Эти правила решают, следует ли запускать данный тип скриптов или нет. Например, если скрипт загружается со стороннего веб-сайта, политика решает, разрешать ли его.

Прежде чем двигаться дальше, нам нужно знать 4 разных правила Powershell:

Restricted — Эта политика не разрешает выполнение каких-либо сценариев.Предположим, пользователь находится в срочном режиме и пытается запустить PowerShell в интерактивном режиме.

Все подписанные — эта политика позволяет запускать только сценарии, подписанные высоконадежными издателями.

Без ограничений -Все скрипты запускаются свободно и без ограничений.

RemoteSigned — эта политика позволяет запускать в PowerShell только загруженные сценарии, подписанные доверенным издателем.

Если вы не забыли настроить подписывание для запуска скрипта PowerShell, для переопределения правил выполнения требовались определенные команды. Но начиная с Windows 10, как и другие настройки, это было легко, и теперь для изменения политики выполнения PowerShell в Windows 10 достаточно одной кнопки. Посмотрим —

Как изменить политику выполнения PowerShell в Windows 10

шаг 1 - Нажмите комбинацию клавиш Win & I чтобы развернуть программу Настройки.

Paso 2 - Когда программа установки распространится на экран, нажмите блок Обновление и безопасность .

> Step> - На левой боковой панели прокрутите вниз, пока не дойдете до For Developers, и щелкните по нему.

> Шаг> - Перейдите на правую сторону и найдите PowerShell внизу.

Шаг 5 . В сегменте PowerShell см. раздел Использование следующих параметров для запуска сценария PowerShell.Установите флажок непосредственно перед Изменить политику выполнения, чтобы разрешить локальному сценарию Powershell запускать неподписанный .

> Шаг> -Нажмите Применить , чтобы применить измененные настройки в PowerShell.

>

> После изменения политики выполнения PowerShell в Windows 10 вы можете удобно запускать несколько сценариев в одной системе.

РЕКОМЕНДУЕТСЯ: Нажмите здесь, чтобы исправить ошибки Windows

.

Как запустить сценарий оболочки в Windows?

Как запустить сценарий в Windows?

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

  • Дважды щелкните значок файла сценария, как для исполняемого файла.
  • Нажмите кнопку «Пуск», а затем «Выполнить».
  • В командной строке введите имя скрипта.
  • Запланируйте сценарий с помощью планировщика заданий Windows.

Как запустить сценарий оболочки в Windows 10?

Чтобы установить оболочку Bash на компьютер с Windows 10, выполните следующие действия:

  1. Откройте «Настройки».
  2. Щелкните Обновление и безопасность.
  3. Нажмите Для разработчиков.
  4. В разделе «Использовать функции разработчика» выберите Режим разработчика, чтобы настроить среду для установки Bash.
  5. В окне сообщения нажмите Да, чтобы включить режим разработчика.

Можем ли мы запустить сценарий оболочки в Windows?

Вы можете установить Cygwin, который предоставляет Unix-подобную среду в Windows, но не имеет особенно "родной" среды. Или вместо того, чтобы пытаться писать и запускать сценарии оболочки Unix, вы можете писать пакетные файлы Windows. Обычно они имеют суффикс .bat или .cmd.

Как запустить сценарий оболочки?

Шаги для написания и выполнения сценария

  • Откройте терминал.Перейдите в каталог, в котором вы хотите создать скрипт.
  • Создайте файл с расширением .sh.
  • Записать скрипт в файл с помощью редактора.
  • Сделайте скрипт исполняемым с помощью chmod + x.
  • Запустите скрипт с помощью ./.

Могу ли я запускать сценарии bash в Windows?

и команды linux работают После установки git-расширений (https://code.google.com/p/gitextensions/) вы можете запустить файл .sh из командной строки. (Не требуется ./script.sh, просто запустите его как файл bat/cmd) Или вы можете запустить его в «полной» среде bash, используя оболочку MinGW Git bash.

Как запустить командную строку?

Запуск командной строки из окна «Выполнить» (все версии Windows) Один из самых быстрых способов запустить командную строку в любой современной версии Windows — использовать окно «Выполнить». Быстрый способ запустить это окно — нажать Win + R на клавиатуре.Затем введите cmd и нажмите Enter или нажмите / коснитесь OK.

Может ли сценарий оболочки работать в Windows?

Вы можете установить Cygwin, который предоставляет Unix-подобную среду в Windows, но не имеет особенно "родной" среды. Или вместо того, чтобы пытаться писать и запускать сценарии оболочки Unix, вы можете писать пакетные файлы Windows.

Могу ли я запустить bash в Windows?

Программное обеспечение, установленное в оболочке Bash, ограничено оболочкой Bash.Доступ к этим программам можно получить из командной строки, PowerShell или другого места в Windows, но только с помощью команды bash -c.

Как запустить пакетный файл из командной строки?

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

  1. Открыть Пуск.
  2. Найдите командную строку, щелкните правой кнопкой мыши верхний результат и выберите «Запуск от имени администратора».
  3. Введите путь и имя пакетного файла и нажмите Enter: C:\PATH\TO\FOLDER\BATCH-NAME.хлыст.

Как запустить install sh?

Как это делают профессионалы

  • Откройте Приложения -> Аксессуары -> Терминал.
  • Найдите, где находится файл .sh. Используйте команды ls и cd. ls выведет список файлов и папок в текущей папке. Попробуйте: введите «ls» и нажмите Enter.
  • Запустите файл .sh. Например, когда вы видите script1.sh из ls, запустите это: ./script.sh.

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

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

  1. Добавьте строку she-bang {#! / Bin / bash) вверху.
  2. Использование chmod u + x имя_скрипта сделает скрипт исполняемым. (где имя скрипта - имя вашего скрипта)
  3. Поместите скрипт в папку /usr/local/bin.
  4. Запустите сценарий, используя только имя сценария.

Как запустить сценарий bash?

Чтобы создать bash-скрипт, поставьте #!/bin/bash вверху файла. Чтобы выполнить скрипт из текущего каталога, вы можете запустить ./scriptname и передать любые параметры. Когда оболочка выполняет скрипт, она находит #!/Путь/к/интерпретатору.

Как запустить сценарий ksh?

Ответ 1

  • убедитесь, что ksh правильно установлен в /bin/ksh.
  • для запуска скрипта из командной строки ./script в каталоге, где скрипт существует.
  • Если вы хотите запустить скрипт из любого каталога без префикса ./, вам нужно добавить путь к скрипту в переменную окружения PATH, добавьте эту строку.

Как запустить скрипт из командной строки в Windows?

Запустить пакетный файл

  1. Из меню Пуск: ПУСК > ВЫПОЛНИТЬ c:\path_to_scripts\my_script.смд, ок.
  2. "c:\script path\my script.cmd"
  3. Откройте новую командную строку, выбрав ПУСК > ВЫПОЛНИТЬ cmd, ОК.
  4. В командной строке введите имя сценария и нажмите Enter.

Как запустить файл в Терминале?

Советы

  • Нажимайте «Enter» на клавиатуре после ввода каждой команды на терминале.
  • Вы также можете запустить файл без изменения его каталога, указав полный путь.Введите «/path/to/FileName» без кавычек в командной строке. Не забудьте сначала установить исполняемый бит с помощью команды chmod.

Похож ли bash на PowerShell?

Синтаксис. PowerShell — это не просто оболочка; это полная среда сценариев. В этом сравнении Windows PowerShell и Bash вывод Ls Bash и каталога PowerShell аналогичен. PowerShell полагается на конвейер объектов.

Как использовать Git в Windows?

Для использования репозитория вам необходимо:

  1. Установить Git.
  2. Сгенерируйте SSH-ключи с помощью PuTTY или ssh-keygen.
  3. Поместите ключи в нужное место (в конкурсе для PuTTY, в соответствующую папку .ssh для OpenSSH)
  4. Проверьте, что соединение с репозиторием Git работает.
  5. Настройте свой профиль Git.

Как использовать Runs в Windows 10?

Просто одновременно нажмите клавишу Windows и клавишу R, и немедленно откроется окно команды «Выполнить». Этот способ самый быстрый и работает на всех версиях Windows.Нажмите кнопку «Пуск» (значок Windows в левом нижнем углу). Выберите «Все приложения» и разверните «Система Windows», затем нажмите «Выполнить», чтобы открыть ее.

Как открыть командную строку с повышенными привилегиями?

  • Нажмите кнопку «Пуск».
  • Введите cmd в поле поиска и нажмите Ctrl + Shift + Enter. Если все сделано правильно, появится окно контроля учетных записей, показанное ниже.
  • Нажмите Да, чтобы запустить командную строку Windows от имени администратора.

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

В проводнике нажмите и удерживайте клавишу Shift, а затем щелкните правой кнопкой мыши или нажмите и удерживайте папку или диск, для которого вы хотите открыть командную строку в этом месте, затем нажмите / коснитесь «Открыть командную строку здесь».

Как перейти в командную строку во время запуска?

Шаг 1: Нажмите «Пуск», введите команду в поле и перезагрузите компьютер.На начальном экране загрузки нажимайте клавишу F8, пока не появится экран «Дополнительные параметры загрузки». Шаг 2. С помощью клавиш со стрелками выберите «Безопасный режим с командной строкой» и нажмите «Ввод». Я жду загрузки файла Windows.

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

13 ответов

  1. Запустите Windows PowerShell и немного подождите, пока не появится командная строка PS.
  2. Перейти в каталог где скрипт PS> cd C:\my_path\yada_yada\ (ввод)
  3. Запустить скрипт: PS>.\ запустить_импорт_скрипт. ps1 (введите)

Как запустить пакетный файл в Windows?

Цель

  • Открыть Старт. .
  • Щелчок. Файловый браузер.
  • Перейдите в папку, содержащую ваш BAT-файл.
  • Дважды щелкните файл BAT.
  • Щелкните файл правой кнопкой мыши и выберите «Запуск от имени администратора».

Как запустить скрипт в Windows 10?

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

  1. Откройте «Пуск».
  2. Найдите PowerShell, щелкните правой кнопкой мыши верхний результат и выберите «Запуск от имени администратора».
  3. Введите следующую команду, чтобы запустить сценарии, затем нажмите Enter:
  4. Введите A и нажмите Enter.
  5. Введите следующую команду для запуска сценария и нажмите Enter:

Как запустить сценарий bash на Raspberry Pi?

Основной синтаксис канала:

  • команда 1 | команда 2.
  • sudo nano hello-world.sh.
  • Первая строка этой программы, #!/bin/sh, называется shebang.
  • Далее нам нужно сделать исполняемый файл hello-world.sh.
  • sudo chmod + x hello-world.sh.
  • ш hello-world.sh.
  • ./witaj-swiecie.sh.

Как вызвать сценарий оболочки из другого сценария оболочки?

16 ответов

  1. Сделайте второй скрипт исполняемым, добавьте вверху строку #!/bin/bash и путь, где находится файл, в переменную окружения $PATH.Тогда вы можете назвать это обычной командой;
  2. Или вызовите это с исходным кодом (псевдоним this.)
  3. Или используйте bash для его выполнения: /bin/bash/path/to/script;

Для чего нужны сценарии bash?

По сути, сценарий оболочки Bash представляет собой компьютерную программу, написанную на языке программирования Bash. Сценарии оболочки — это искусство создания и поддержки таких сценариев. Сценарии оболочки можно вызывать из интерактивной командной строки, описанной выше; или они могут быть вызваны из других частей системы.

Фото в статье "Фликр" https://www.flickr.com/photos/xmodulo/26293563991

.

Запуск скрипта powershell из bat-файла. Windows PowerShell: что это за программа

Существует несколько различных способов запуска скрипта, наиболее важные из них следующие:

  1. Запустить PowerShell и запустить в нем скрипт (ввести путь к файлу и имя файла, например так: C:\Scripts\test.ps1 или перейти в папку со скриптом командой cd C:\Scripts и запустить его командой.\test.ps1) Ракету можно найти и запустить по разному. Один из способов — пройти через загрузочное меню.Для Windows 7 — нужно зайти в «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — вам нужно найти группу с буквой «W» и в ней вы найдете «Windows PowerShell».
  2. Run «Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать сценарии PowerShell, которая также поставляется по умолчанию вместе с самой PowerShell. После запуска просто нажмите кнопку «Открыть» или перейдите в меню «Файл» — «Открыть» и выберите нужный скрипт, затем нажмите F5 или кнопку «Выполнить скрипт».Windows PowerShell ISE можно найти там же, где и PowerShell — в меню «Пуск»…
  3. Запустите стандартную командную строку и напишите в ней:
    powershell -file (пример: powershell -file myscript.ps1)

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

Как разрешить запуск неподписанного сценария PowerShell?

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

Процесс Set-ExecutionPolicy RemoteSigned-Scope

2. При запуске из стандартной командной строки использовать параметр -executionpolicy, то есть запустить скрипт так:

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

3. Разрешить запуск навсегда: запустите PowerShell от имени администратора, затем выполните команду:

Set-ExecutionPolicy RemoteSigned

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

Как запустить сценарий PowerShell в фоновом режиме?

Для этого просто используйте параметр запуска -WindowStyle, который может принимать следующие значения: Normal, Minimized, Maximized и Hidden. Итак, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file

Вы также можете добавить -NonInteractive, если хотите, чтобы скрипт не задавал вопросов.Таким образом, скрипт будет выполняться незаметно для пользователя. Будьте осторожны при использовании этого метода.

Запустить скрипт PowerShell с параметрами

Фактический запуск должен быть таким, как если бы вы запускали обычную программу или bat-файл с параметрами. Например, чтобы запустить скрипт с параметрами из команды, вы можете написать следующую команду:

powershell -executionpolicy Удаленно подписанный -fileparam1 param2 «еще один текстовый параметр»

В самом скрипте вы можете получить эти параметры следующим образом:

Param ($ var1, $ var2, $ var3) echo $ var1, $ var2, $ var3

В PowerShell ISE вы можете запустить скрипт с параметрами в том же способ с помощью командной панели.

Как запустить скрипт PowerShell с помощью ярлыка?

Есть два способа выполнить это задание:

  1. Создать bat/cmd файл куда вписать команду на запуск скрипта (параметры вы видели выше)
  2. Создайте ярлык PowerShell, который вы найдете в c:\Windows\System32\WindowsPowerShell\v\ и добавьте необходимые параметры в свойствах ярлыка в поле "Объект".

Так, например, чтобы запустить powershell при входе пользователя в систему, просто создайте ярлык, как описано в шаге 2, и поместите его при запуске.Кроме того, создание ярлыка одним из вышеперечисленных способов облегчит запуск скрипта от имени администратора или любого другого пользователя в качестве обычной программы.

Скриптовый язык PowerShell — достаточно мощный инструмент для решения различных задач, но использовать его можно не только во благо, но и во вред, так что используйте его с умом ;)

PowerShell — это богатая альтернатива командной строке. Многих владельцев ПК, хорошо разбирающихся в системных процессах, интересуют возможности использования с Windows 10 и более ранними версиями этого ПО для самостоятельного изменения конкретных процессов и настроек ПК.

С PowerShell нет ничего сложного. Просто следуйте всем инструкциям в этой статье, и у вас все получится.

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

Как открыть PowerShell?

Сделать это можно так:

  • - приложение находится в общем списке компонентов под буквой W.
  • Поиск на панели задач — откройте его и введите слово PowerShell для поиска.
  • Через меню "Выполнить" - запустить его комбинацией Win+R и ввести название инструмента, после чего он будет найден в системе.
  • Задайте действие PowerShell в команде - но вы должны знать, что вы будете работать с приложением через уже запущенную строку, а не в отдельном окне.
  • В параметрах Windows выберите «Свойства панели задач» и «Пуск». Во вкладке «Навигация» поставьте галочку рядом с «Преобразовать командную строку в PowerShell…».Теперь можно включить утилиту комбинацией Win+X.

Как писать и запускать скрипты?

Как создать и запустить сценарий PowerShell? Это можно сделать просто в блокноте — с его помощью укажите нужные команды в новом документе. Затем сохраните его, но измените формат на .ps1 — именно такое расширение имеют файлы этой системной утилиты.

В самом приложении можно писать скрипты вот так:

  • Запустить.
  • Нажмите "Создать".
  • Или нажмите «Файл» и выберите «Создать» из отображаемого списка.
  • Запишите все команды, которые нужно выполнить, сохраните файл.

Скрипты по-прежнему можно писать и редактировать в FAR Manager, но нельзя использовать напрямую в таком приложении, так как оно отображает файлы этого типа через стандартную строку cmd. Однако остальные действия выполняются так же, как и в «родном» инструменте.

Вы можете запустить сценарий следующим образом:

  1. Войдите в PowerShell как администратор.
  2. Используйте команды cd, чтобы указать расположение нужного файла. Например, e:cd\cd работают. \ Имя файла. Ps1 или e:\work\filename.ps1
  3. В данном случае e: — это имя жесткого диска, на котором находится файл.
  4. Нажмите ввод.

Программа обязательно выведет сообщение с текстом «Невозможно загрузить файл ___ .Ps1, поскольку для этой системы запрещено выполнение сценариев…» при первом запуске команды. Дело в том, что Windows поставляется с защитой от несанкционированного доступа благодаря разработчикам, поэтому по умолчанию никто из пользователей не имеет доступа для выполнения таких действий.Но это ограничение можно легко обойти.

Как? Текст, который появляется с ошибкой, посоветует вам ввести get-help about_signing для получения дополнительной информации. Вы можете следовать этим инструкциям или использовать удаленно подписанную комбинацию Set-ExecutionPolicy — после ввода потребуется подтверждение, и ограничение будет снято.

Другие вопросы по использованию

У многих возникает вопрос, как проверить версию PowerShell? Для этого выполните следующие действия:

  1. Введите $PSVersionTable.
  2. Если это не работает, вы используете версию 1.0, где находится команда $ host.version.
  3. В противном случае на компьютер устанавливается точная версия приложения.

1. Написание скрипта

Сценарий PowerShell (независимо от версии) представляет собой текстовый файл с расширением *.ps1.

Вот пример простого сценария Power Shell (файл systemInfo.ps1):

# Получить объект WMI для операционной системы

Get-WmiObject Win32_OperatingSystem

Этот файл можно создать и отредактировать, например, в FAR Manager.

Примечания FAR Manager, хотя и может работать в консоли Power Shell, выполняет сценарии из-под себя в среде обычной консоли Windows cmd... Это означает, что FAR Manager можно использовать только для создания и редактирования сценариев PowerShell, но не для запуска их. Но прежде чем отчаиваться, прочтите раздел 3.

.

2. Запустить скрипт

Сценарий должен выполняться из консоли Power Shell, а не из обычной консоли Windows. В консоли Power Shell нужно перейти в директорию, где находится скрипт (используя КД команд), затем запустить сам скрипт, обязательно поставив перед ним символы «.\ " ... Например у нас есть путь к файлу скрипта d:\work\systemInfo.ps1... Тогда команды запуска будут:

КД \

работа на компакт-диске

\ системная информация.ps1

или около того (указывается только полный путь к скрипту):

д:\работа\systemInfo.ps1

Скорее всего, при запуске скрипта вы получите следующую ошибку:

Невозможно загрузить D:\work\systemInfo.ps1, так как в этой системе не разрешены сценарии.Введите «получить помощь about_signing» для получения дополнительной информации.

строка: 1 символ: 18

Информация о категории: Не определено: (:), PSSecurityException

FullyQualifiedErrorId: RuntimeException

Ошибка возникает из-за того, что по умолчанию в Power Shell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет выполнять скрипт с командами PowerShell в той же командной строке.

Для запуска скриптов PowerShell необходимо создать файл *.bat, например enableScript.bat со следующим содержимым:

powershell-Command Set-ExecutionPolicy RemoteSigned

Этот *.bat файл можно запускать в любой консоли: в PowerShell или в обычной cmd... После выполнения этого файла скрипты PowerShell будут запускаться в консоли PowerShell.

3. Запустите скрипт PowerShell из обычной командной консоли Windows

. Скрипт

PowerShell также можно запустить из обычной консоли Windows.Для этого можно использовать команду:

Powershell-Файл ./systemInfo.ps1

Таким образом, скрипты могут выполняться прямо из FAR-менеджера и будут работать.

Но здесь есть небольшая тонкость. Параметр -File работает только с локальными путями, даже если путь указан относительно "./". То есть если *.ps1 - файл находится на локальном диске C: или D: то такое подключение будет работать. Но если вы попытаетесь выполнить скрипт, расположенный на ресурсе домена, скрипт не будет найден.Возможно, это будет исправлено в будущих версиях PowerShell.

Опытные пользователи Windows 10, возможно, слышали об инструменте командной строки PowerShell. Также с ним могут быть знакомы те, у кого есть опыт работы с Windows 7 и 8.1. После долгих лет использования приложения со строками Windows и .bat пришло время познакомиться с более функциональным инструментом.

PowerShell

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

Шаг 1: Установите

Во-первых, нам нужна сама утилита PowerShell. Если вы используете Windows 10, у вас уже установлен PowerShell 5. Обновление Windows 10th Anniversary Update использует версию 5.1, но разница незначительна. Windows 8 и 8.1 используют PowerShell 4, чего тоже вполне достаточно. Установка PowerShell в Windows 7 не составит труда, но необходимо выполнить несколько дополнительных действий.В частности, необходимо дополнительно установить .Net Framework. Вы можете установить Windows Management Framework, которая включает PowerShell.

PowerShell

имеет два интерфейса. Опытные пользователи могут выбрать полный графический интерфейс, известный как интегрированная среда сценариев (ISE). Новичкам лучше использовать консоль PowerShell, простой текстовый интерфейс в стиле командной строки Windows или даже DOS 3.2.

Чтобы запустить PowerShell от имени администратора в Windows 10, нажмите кнопку «Пуск» и прокрутите вниз до Windows PowerShell в списке приложений.В Windows 8.1 найдите Windows PowerShell в системной папке Windows. В Windows 7 оболочка находится в папке «Стандартные». Как обычный пользователь, PowerShell можно запустить таким же образом, используя левую кнопку мыши вместо правой кнопки мыши.

на любых версиях Windows можно применить поиск. Для удобства дальнейшего использования вы можете закрепить PowerShell на панели задач.

Шаг 2. Старые команды Windows

Синтаксис команд Windows работает в PowerShell как обычно.Например, CD меняет папки, dir показывает список всех файлов и папок в текущей папке.

В зависимости от того, как вы запускаете консоль PowerShell, вы можете начать с c:\Windows\system32 или c :\Users\... В примере на скриншоте используется команда CD.. (с пробелом ), чтобы подняться на один уровень выше, затем выполните команду dir , чтобы просмотреть список файлов и папок в каталоге C:\.

Шаг 3. Установите файлы справки

Такие команды, как CD и dir , не являются активными командами PowerShell. Они называются псевдонимами — заменой настоящих команд PowerShell. Псевдонимы полезны для людей с большим опытом работы с командной строкой. Однако они не касаются глубин PowerShell.

Чтобы начать работу с PowerShell, введите Support и нужную команду. На скриншоте показана команда .

Команда Поддержка говорит, что dir является псевдонимом для PowerShell Get-ChildItem ... Если вы наберете get child v PS C: \> , вы увидите то же самое, что и при использовании команды dir .

Как показано в нижней части снимка экрана, файлы справки PowerShell не устанавливаются автоматически. Чтобы получить их, запустите PowerShell от имени администратора и введите update-help ... Установка файлов справки займет несколько минут, некоторые модули могут отсутствовать - например, в этом случае справка NetWNV и SecureBoot не устанавливаются. Когда все будет готово, полная справочная система всегда предоставит вам необходимые рекомендации.

Теперь введите команду для получения справки и для любой интересующей вас команды ("командлет" в PowerShell, по-русски - cmdlet) будет выведено ее описание. Например, получить помощь, получить ребенка перечисляет варианты получить ребенка ... Вы также можете просмотреть различные возможные варианты. Например,

получить помощь получить ребенка - примеры

дает семь подробных вариантов использования get child ... Command

get-help get-childitem-detailed

содержит эти семь примеров и подробное объяснение каждого параметра в командлете для получения дочернего элемента .

Шаг 4: Получите помощь по параметрам

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

Для получения подробной информации о параметрах командлетов , получить дочерний или любой другой, используйте параметр -full :

получить помощь, чтобы получить ребенка -полный

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

Просмотр описаний параметров показывает, что получить дочерний элемент позволяет получить элемент дочерний элемент (например, имя подпапки или имя файла) в указанном месте, с совпадением определенных символов или без него. Например:

get-childItem "*.txt" -recurse

возвращает список файлов "*.txt" в текущей папке и всех подпапках (из-за параметра -рекурсия ).Однако

get-childitem "HKLM:\Software"

возвращает список всех ключей реестра верхнего уровня по адресу HKEY_LOCAL_MACHINE\Software .

Если вы когда-либо пытались получить доступ к реестру через командную строку Windows или файлы .bat, вы сможете оценить функциональность этого варианта доступа.

Шаг 5: изучение имен

Есть причина, по которой командлеты, показанные до сих пор, выглядят одинаково: get-childitem, update-help, get-help используют одну схему глагол-существительное.Это соглашение используется всеми командлетами PowerShell, в которых глагол стоит перед одним существительным. Это понравится тем, кто когда-то страдал от несоответствия имени команды в VB и VBA.

Взгляните на самые популярные командлеты:

Установить местоположение : Устанавливает текущее рабочее местоположение в определенное местоположение

Получить содержимое : Получить содержимое

Получить элемент : загрузить

файла и папки

элемент копирования : копирует объект из одного места в другое

Удалить элемент : Удаляет файлы и папки

: Запускает процессы на локальном или удаленном компьютере

.

Get-Service : получает службы, работающие на локальном или удаленном компьютере

invoke-webrequest : Извлекает содержимое с веб-страницы в Интернете

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

загрузить-помощь копировать-элемент-полный

Из описания в справке видно, что нужно командлету.Например, если вы хотите скопировать все файлы и папки из Documents v c:\temp , используйте

элемент копирования c:\users\\documents\* c:\temp

Введя эту команду, вы увидите некоторые интересные функции PowerShell. Например, если вы наберете copy-i и нажмете клавишу Tab, PowerShell заполнит Copy item ... Если вы наберете команду с ошибкой, и PowerShell не сможет ее распознать, она даст вам полное описание того, что пошло не так. .

Попробуйте этот командлет:

звонок-веб-запрос askwoody.com

Вы получите краткий список заголовков, изображений, ссылок и другого контента на сайте. Ищите для справки в списке invoke-webrequest , который «возвращает набор форм, ссылок, изображений и других важных элементов HTML» — именно то, что должно отображаться на экране.

Несколько командлетов помогают управлять самой PowerShell:

команда get : список всех доступных командлетов

.

get-verb : список всех доступных

глаголов

clean-host : очистить экран главной программы;

Различные параметры позволяют сократить количество команд и сузить набор полезных опций.Например, чтобы получить список всех командлетов, работающих со службами Windows, введите

.

получить-команда *-служба

Будут показаны все доступные глаголы с существительным. сервис ... Вот их список:

Получить услугу

Новая услуга

Перезапустить службу

Служба резюме

Сервисный набор

Запустить службу

Остановить службу

Приостановка обслуживания

Эти командлеты можно комбинировать друг с другом.

Шаг 6: использование труб

Если вы знакомы с командной строкой Windows или пакетными файлами, вы знаете о перенаправлении и каналах. Перенаправление (символ >) и каналы (символ |) берут результат действия и присоединяют его в другом месте. Например, вы можете перенаправить результат команды dir в текстовый файл или передать результат команды whiz в команду найти , отфильтровать интересные результаты, такие как

.

каталог> темп.текст

пинг askwoody.com | найти «пакеты»> temp2.txt

Здесь во второй команде нахожу Я ищу строку пакетов , полученную с сайта askwoody.com командой swish и объединяю все совпадающие строки в файл с именем temp2.txt .

Первая из этих команд прекрасно работает с PowerShell. Для запуска второй команды вам нужно что-то вроде этого:

пинг асквуди.ком | пакеты с выбранной строкой | выходной файл temp2.txt

Использование перенаправлений и конвейеров значительно расширяет возможности командной строки Windows: вместо бесконечной прокрутки экрана в поисках текстовой строки можно отфильтровать нужные команды Windows.

Powershell имеет поддержку трубки и не ограничивается текстом. PowerShell позволяет передавать весь объект от одного командлета к другому, где объект представляет собой комбинацию данных (называемых свойствами) и действий (методов), которые могут использовать эти данные.

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

Как это понять? Используйте командлет , чтобы получить члена ... Если вы хотите узнать, какой тип объекта поддерживает командлет, просмотрите его , чтобы получить члена ... Например, если вы пытаетесь понять процессы, запущенные на вашем компьютере, и сузить параметры до командлетов , вот как проверить выходные данные командлетов:

процесс загрузки | приобрести члена

Запуск этого командлета дает вам длинный список свойств и методов для , но в самом верху списка вы можете увидеть тип объекта, который создает :

Имя типа: System.Diagnostics.Process

На приведенном ниже снимке экрана также показаны свойства под названием Получить дескрипторы процесса, имя, NPM, PM, SI, VM и WS .

Если вы хотите манипулировать результатом для работы с этим командлетом (вместо вывода длинного списка активных процессов на монитор), вам нужно найти другую команду, принимающую на вход System.Diagnostics.Process ... Чтобы найти нужные командлеты, используйте PowerShell:

.

get-command-Parametertype System.Diagnostics.Process

В этом командлете перечислены командлеты, которые может обрабатывать Система.Диагностика Процесс 900 39.

Известно, что некоторые командлеты принимают практически любые данные. Наиболее важным из них является ... Этот командлет проходит по каждому объекту канала один за другим и применяет к нему указанные критерии выбора. Есть специальный тег под названием $$_ , который позволяет использовать каждый предмет в трубе по отдельности.

Предположим, вы хотите получить список всех процессов, запущенных на компьютере с именем «svchost», то есть вы хотите сопоставить свойство Имя процесса svchost ... Используйте команду:

процесс загрузки | объект-где ($_.имя -eq "svchost")

Командлет просматривает каждый элемент System.Diagnostics.Process , сравнивает . Назовите этот объект "svchost"; если есть совпадения, они отображаются на мониторе. Смотрите скриншот.

Шаг 7. Разбор полезных команд PowerShell

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

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

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Register "$($_.Место установки)\AppXManifest.xml")

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

Вот как работает команда. Get-AppXPackage проверяет все пакеты приложений в профиле пользователя. Даже если вы удалите приложение, оно останется в списке профилей пользователей.

Командлет Get-AppXPackage возвращает объект Microsoft TypeName .Windows.Appx.PackageManager.Commands.AppxPackage , включая полное имя пакета приложения и расположение соответствующего XML-файла манифеста. Если вы запустите командлет для загрузки пакета приложений , вы увидите длинный список пакетов приложений. На снимке экрана показано описание приложения Xbox.

Командлет Для каждого цикла он проходит через каждый объект в пакете AppX , отправляя его в командлет Add-AppxPackage ... Согласно получить помощь для Add-AppxPackage , есть два ключевых переключателя:

  • Переключатель -Регистр используется для регистрации существующих инсталляций пакетов приложений, можно задать параметры Отключить режим разработки и Регистр
  • Переключатель -Отключить режим разработки указывает Windows перерегистрировать существующий пакет приложения, который был отключен, извлечен или поврежден.

Строка "$($_.Расположение установки)\AppXManifest.x мл" описывает где находится файл manifest.xml ... При просмотре файлов AppXManifest.xml вы увидите сложный список идентификаторы приложений, исполняемые файлы и большое количество визуальных элементов, связанных с приложением

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

После перехода на операционную систему Windows 10 многие пользователи заметили кнопку «Запустить PowerShell» в интерфейсе Проводника.Соответственно, в сети возникало множество вопросов, пользователей интересовало, что такое Windows PowerShell и для чего он нужен. Если вас тоже интересует этот вопрос, этот материал должен вам помочь.

Что такое Windows PowerShell

Windows PowerShell — это язык сценариев и программа командной строки для выполнения этих сценариев. Этот язык был выпущен в 2006 году как часть второго пакета обновлений для Windows XP, и с тех пор PowerShell входит в состав всех операционных систем Microsoft.В 2008 году появилась вторая версия языка, и начиная с Windows 7 используется именно она. Файлы сценариев Windows PowerShell имеют расширение PS1 и могут выполняться как известные файлы BAT и CMD.

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

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

Командлеты (на английском языке) следуют правилу глагол-существительное, например Get-Help. Вы можете изучить основы Windows PowerShell, обратившись к справке (командлет Get-Help).Чтобы получить общую информацию, просто введите «Get-Help», чтобы получить справку по конкретному командлету, введите «Get-Help CmdletName». Например, если мы введем «Get-Help Get-Process», мы получим справку по командлету Get-Process.

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

Windows PowerShell можно запустить несколькими способами. Самый простой вариант — просто воспользоваться поиском в меню «Пуск». Для этого откройте меню «Пуск», введите поисковый запрос «Windows PowerShell», а затем откройте найденную программу.

Вы также можете использовать комбинацию клавиш Windows-R и ввести команду «powershell».

В Windows 10 PowerShell можно запустить из любой папки. Для этого необходимо нажать кнопку «Файл» в левом верхнем углу Проводника и выбрать «Запустить Windows PowerShell».

Как использовать Windows PowerShell

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

Опорожнение корзины. Для очистки корзины есть специальный командлет Clear-RecycleBin. Этот командлет полезен для написания сценариев поддержки компьютеров. При запуске командлета необходимо указать диск, на котором вы хотите очистить корзину. Пример:

Очистить корзину c:

На следующем снимке экрана показано, как выполнить этот командлет.После ввода «Clear-RecycleBin c:» вам будет предложено подтвердить. Чтобы продолжить выполнение командлета, необходимо ввести букву «Y» и нажать Enter.

Если вы добавите «-Force» в командлет «Clear-RecycleBin c:», корзина будет очищена без запроса подтверждения. Смотрите скриншот ниже.

Архивация файлов... Для архивации и распаковки файлов используются командлеты «Compress-Archive» и «Expand-Archive».Например, чтобы заархивировать папку "C:\test\" в архив "C:\archive\test2.zip", выполните следующий командлет:

Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip

В результате выполнения вышеуказанной команды в папке "C:\архив\" появится файл "test2.zip", где будет заархивировано содержимое папки "C:\test\".

Список командлетов Windows PowerShell

Существует огромное количество различных командлетов для Windows PowerShell, и охватить их все в одной статье не получится.Поэтому предлагаем вам ознакомиться с самыми популярными из них:

  • Get-Help - получение помощи;
  • Update-Help - помощь в обновлении;
  • Get-Command — найти
  • командлетов
  • Get-Alias ​​— Поиск псевдонимов для командлетов;
  • Get-PSDrive — просмотр подключенных дисков;
  • Get-Member - просмотр свойств и методов объекта;
  • Get-WindowsFeature — отображает информацию о доступных ролях и функциях сервера.
  • Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
  • Uninstall-WindowsFeature (аналог Remove-WindowsFeature) — удаляет серверные роли или компоненты;
  • Get-History - просмотр истории введенных в данной сессии команд;
  • Get-Variable - просмотр списка переменных и их значений;
  • New-Variable - создать новую переменную;
  • Set-Variable - установка значения переменной;
  • Clear-Variable - очистка значения переменной;
  • Remove-Variable - удаление переменной и ее значения;
  • Format-List - просмотр результата команды в виде списка свойств, где каждая строка имеет отдельное свойство;
  • Format-Table - отображать результат команды в виде таблицы;
  • Format-Wide — отображает результат команды в виде широкой таблицы, в которой показано только одно свойство для каждого объекта;
  • Format-Custom — отображать результат команды в пользовательском представлении;
  • Export-Csv - экспорт данных в формат CSV;
  • Import-Csv — импортировать данные из CSV-файла;
  • Export-Clixml - экспорт данных в формат XML;

Полный список командлетов Windows PowerShell можно получить, запустив командлет Get-Command -CommandType.

.

Смотрите также

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: