PowerShell — это новая командная оболочка для Windows, которая по задумкам Microsoft должна вытеснить и заменить cmd. По-умолчанию, эта оболочка уже идет в составе Windows 7 и выше. Если у вас более старая операционная система или вы просто хотите скачать более свежую версию PowerShell, сделать это можно здесь: https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx
Как запустить скрипт PowerShell?
Есть несколько различных способов запуска скрипта, ниже приведены основные:
- Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
- Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
- Запустить стандартную коммандную строку и в ней написать:
powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)
Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл <имя_скрипта>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.
Как разрешить выполнение неподписанного скрипта PowerShell?
1. В оболочке PowerShell, перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:
Set-ExecutionPolicy RemoteSigned -Scope Process
2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:
powershell -executionpolicy RemoteSigned -file <имя_скрипта>
Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:
3. Разрешить запуск навсегда: запустить оболочку PowerShell от имени «Администратора», затем выполните команду:
Set-ExecutionPolicy RemoteSigned
Однако, я бы не рекомендовал такой способ, чтобы не подвергать ваш компьютер возможным угрозам, т.к. так вы разрешаете выполнение скриптов всем и всегда.
Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.
Как запустить скрипт PowerShell в фоновом режиме?
Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:
powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>
Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.
Запуск скрипта PowerShell c параметрами
Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:
powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр»
В самом скрипте вы можете получить эти параметры так:
param ($var1, $var2, $var3) echo $var1, $var2, $var3
В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.
Как запустить скрипт PowerShell с помощью ярлыка?
Осуществить такую задачу можно двумя способами:
- Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
- Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v<версия>\ и в свойствах ярлыка в поле «Объект» дописать необходимые параметры.
Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.
Скриптовый язык PowerShell — довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом
PowerShell scripts are a great way to automate tasks, gather information, or modify properties in bulk. Most PowerShell commands are only a single line that you can just copy and paste into PowerShell. But how do you run a complete PowerShell Script?
There are a couple of options when it comes to running PowerShell scripts, simply from the cmd, using the PowerShell ISE, or even a scheduled task.
In this article, I will explain the different options to run a PowerShell script. Also, I will help you with common errors, like “running scripts is disabled on this system”.
Fix Running Scripts is Disabled on this System
We are going to start with a common error that prevents most users from running a PowerShell script, the error “Running scripts is disabled on this system”. This error is caused by the PowerShell Execution Policy.
By default, the PowerShell Execution policy is set to Restricted. This means that PowerShell scripts won’t run at all.
So to run a PowerShell script, we first need to change the execution policy. For the policy we have a couple of options:
Execution Policy | Description |
---|---|
Restricted | Default option – does not allow to run any PowerShell script |
Unrestricted | Can run any script, shows warning for downloaded scripts |
RemoteSigned | Requires a digital signature for downloaded scripts. You can run locally written scripts. You can unblock downloaded scripts to run them without signature |
ByPass | You can run all scripts and no warnings are displayed |
AllSigned | You can only run signed scripts from trusted publishers |
Execution Policies are not designed as a security model, but more to prevent the accidental execution of a PowerShell script. The best option is to use the RemoteSigned policy, this way you can’t run a downloaded script by accident (you will have to unblock it first). Read more about the execution policy in this article.
Tip
Learn more about writing your own PowerShell scripts in this complete guide
To change the execution policy in PowerShell (and fix “Running scripts is disabled on this system) we need to start PowerShell with administrator privilege:
- Press Windows key + X (or right click on the start menu)
- Choose Windows PowerShell (admin)
- Run the command below:
Set-ExecutionPolicy RemoteSigned
You should now be able to run PowerShell Scripts.
There are a couple of options to run a PowerShell script. The most convenient way is to simply right-click the file and choose Run with PowerShell.
But this method comes with a downside. By default, most PowerShell scripts will close the PowerShell window automatically when the script is done. So the script gets executed, but you won’t be able to read any errors or output.
You can solve this by adding the following line to the end of the PowerShell script, but that is not always a convenient option:
Read-Host -Prompt "Press Enter to exit"
Use Windows PowerShell
Personally, I prefer the start PowerShell scripts from the command line in Windows PowerShell itself. There are two ways to do this, you can first start PowerShell and navigate to the script or open PowerShell in the correct location from the explorer.
We start with the latter, opening the PowerShell in the correct location from the explorer. In the explorer, locate the script that you want to run, in this case, c:\temp\powershell.
- Right-click on the blank area in Explorer (not on the PowerShell file)
- Choose Open PowerShell window here
(In Windows 11 you will need to select Open in Windows Terminal)
As you can see, PowerShell is started in the folder c:\temp\PowerShell. We can now run the script by simply typing the filename (type the first few letters and press Tab to autocomplete it)
You can also first start Windows PowerShell:
- Right-click on the start menu (or press Windows key + X)
- Choose Windows PowerShell
- Navigate to the folder where the script is located
cd c:\path\to\script <enter>
- Run the PowerShell script
.\PowerShellExampleScript.ps1 <enter>
Run PowerShell Script from CMD
If you have tried to run a PowerShell from cmd, then you might have noticed that it will just open the script in notepad. Not really the result we are looking for.
To run the PowerShell script, we need to tell the command prompt to open the script with PowerShell. We can use the following cmd for this:
PowerShell c:\path\to\script\PowerShellScript.ps1
Note that you will need to specify the full path to the PowerShell script. The result of the script is displayed in the command prompt.
If you want to keep the PowerShell session open, you can add the -noexit
parameter to the command:
PowerShell -noexit c:\temp\PowerShell\PowerShellExampleScript.ps1
Using PowerShell ISE
When you download a script from the internet it’s always a good idea to review the script before you run it. An easy way to review and run a PowerShell script is to use the PowerShell ISE.
To open a PowerShell file in the editor, simply right-click it and choose Edit
When you use the editor for the first time you might need to expand the script pane first, to see the content of the PowerShell script:
To run a script in PowerShell ISE simply click on the green play button in the toolbar. The results of the scripts are displayed in the console:
Run PowerShell Script as Administrator
Some PowerShell scripts require administrator privilege to run correctly. They might need access to all folders on your system drive, or need to interact with other domain computers or servers.
The easiest way to run PowerShell scripts as an administrator is to start Windows PowerShell as administrator.
- Press Windows key + X (or right-click the start menu)
- Choose Windows PowerShell (admin)
- Click Yes on the User Account Security prompt
You can now run any PowerShell command or script with Administrator privilege. Simply navigate to the script (or even drag and drop the script) to run it.
You can also run a PowerShell script as administrator from the command line. When you have PowerShell open, we can start a new PowerShell process and run it as Administrator. Optionally we can even specify the file that we want to run:
# Open a new PowerShell windows with Administrator Privilege Start-Process PowerShell -Verb runAs # Run PowerShell script with Administrator Privilege Start-Process PowerShell -Verb runAs -ArgumentList "-file c:\temp\powershell\powershellexamplescript.ps1"
Wrapping Up
I hope you were able to run your PowerShell script with the steps above. Make sure that you have set the Execution policy correctly before you run a PowerShell script.
If you have any questions, just drop a comment below. Make sure you also read more about setting up your PowerShell profile.
Windows PowerShell – это мощный язык для написания скриптов, а также программа для Windows, которая эти скрипты выполняет. Язык был представлен в 2006 году как часть второго сервис-пака для операционной системы Windows XP. С тех пор PowerShell присутствует во всех версиях Windows. В 2008 году была представлена вторая версия языка, она используется начиная с Windows 7. Скрипты на данном языке сохраняются в файлах с расширением PS1 и могут выполняться как знакомые всем BAT и CMD файлы.
В данной статье мы расскажем о том, как запустить Windows PowerShell с правами пользователя и от имени администратора в Windows 7 и Windows 10, а также как выполнять скрипты написанные на этом языке.
Стандартные способ запуска
Пожалуй, самый простой способ запустить программу Windows PowerShell это воспользоваться меню «Выполнить». Как в Windows 7, так и в случае Windows 10, меню «Выполнить» можно вызвать при помощи комбинации клавиш Win-R. После нажатия данной комбинации клавиш появляется небольшое окно с текстовым полем для ввода команды. Чтобы запустить данную программу введите команду «powershell» и нажмите на клавишу ввода.
Еще один простой способ запуска Windows PowerShell – это поиск в меню «Пуск». Чтобы воспользоваться данным вариантом просто откройте меню «Пуск» и введите в поиск название программы. После этого операционная система найдет нужную программу и предложит ее открыть.
После этого программу можно запустить, просто кликнув по ней в результатах поиска. Оба этих способа одинаково работают что в Windows 7, что в Windows 10.
Запуск PowerShell от имени администратора
Также поиск в меню «Пуск» — это самый простой способ запустить PowerShell от имени администратора. Для этого нужно воспользоваться поиском и когда программа будет найдена, кликнуть по ней правой кнопкой мышки. В открывшемся меню будет доступен вариант запуска от имени администратора. Данный способ запуска от имени администратора также доступен в Windows 7 и Windows 10
Кроме этого, в Windows 10 есть дополнительная возможность, которая позволяет запускать PowerShell как с правами пользователя, так и от имени администратора. Чтобы воспользоваться этим вариантом нужно кликнуть правой кнопкой мышки по кнопке «Пуск» и в открывшемся меню выбрать «PowerShell».
Если же в этом меню вместо PowerShell у вас отображается обычная командная строка, то это можно исправить. Откройте меню «Параметры» (комбинация клавиш Win-i) и перейдите в раздел «Персонализация – Панель задач». Здесь нужно включить опцию, которая заменяет командную строку на PowerShell, после чего описанный выше способ будет работать.
Как запустить PowerShell в папке
Если вам нужно запустить PowerShell в сразу определенной папке, то в Windows 10 для этого нужно открыть эту папку при помощи проводника и нажать на кнопку «Файл» в левом верхнем углу окна. В результате появится меню с помощью которого можно будет запустить данную программу с правами пользователя или от имени администратора.
В операционной системе Windows 7 вы можете запустить PowerShell в папке при помощи адресной строки. Для этого откройте нужную папку и введите в адресную строку команду «powershell».
В результате PowerShell откроется сразу в выбранной вами папке.
Кстати, таким образом вы можете запускать и стандартную командную строку, но в этом случае нужно вводить «cmd».
Как запустить скрипт PowerShell
В PowerShell есть несколько режимов работы, которые определяют возможность запуска скриптов:
- Restricted / Ограниченный — режим по умолчанию, в нем запрещено выполнение скриптов, но можно использовать интерактивные команды.
- All Signed / Все подписанные — режим разрешает выполнение всех подписанных издателем скриптов.
- Remote Signed / Удаленные подписанные — режим разрешает выполнение локальных скриптов, но скачанные из интернета скрипты требуют наличия подписи.
- Unrestricted / Неограниченный — режим разрешает запуск всех скриптов без ограничений, включая скачанные из интернета скрипты без подписи.
По умолчанию, используется режим Restricted или «Ограниченный». Поэтому если вам нужно запустить скрипт, то предварительно нужно выполнить команду «Set-ExecutionPolicy RemoteSigned -Scope Process» и нажать на клавишу «Y» для подтверждения. Данная команда разрешит выполнение удаленно подписанных скриптов для текущего сеанса.
После выполнения данной команды вы сможете запускать скрипты просто введя в консоль их полный адрес. Например, на скриншоте внизу мы выполнили скрипт «c:\test.ps1».
Если вы хотите запустить скрипт из стандартной командной строки, то это можно сделать при помощи команды «powershell -executionpolicy RemoteSigned -file путь». Ниже мы приведем еще несколько вариантов запуска скриптов PowerShell, которые могут быть полезны в определенных ситуациях.
- powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <путь>
- Запуск скрипта в фоновом режиме (параметр -WindowStyle Hidden). Если добавить параметр -NonInteractive, то скрипт не будет задавать никаких вопросов и выполнится без участия пользователя.
- powershell -executionpolicy RemoteSigned -file <путь> param1 param2 «text param»
- Запуск скрипта c параметрами. Как видно, параметры передаются точно также как и в случае запуска обычных программ.
Если же вы хотите навсегда разрешить запуск скриптов, то для этого нужно выполнить команду «Set-ExecutionPolicy RemoteSigned» и нажать на клавишу «Y» для подтверждения.
Но, если ваш скрипт был скачан из интернета, то описанного выше варианта может быть недостаточно. Для того чтобы полностью и навсегда отключить любые предупреждения при запуске скриптов используйте «Set-ExecutionPolicy Bypass».
Обратите внимание, постоянное разрешение на запуск скриптов подвергает ваш компьютер опасности, поэтому желательно использовать временные разрешения, которые работают до завершения сеанса.
Посмотрите также:
- Windows PowerShell: что это за программа
- Как установить Windows Terminal на Windows 10
- Как включить и отключить Hyper-V в Windows 11 и Windows 10
- Выключение компьютера через командную строку
- Как перезагрузить компьютер через командную строку
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
Не один год прошел с момента выхода Windows 7 и Server 2008.
Программисты, системные администраторы и продвинутые пользователи нашли множество применений синему окошку, схожему с командной строкой.
Начинающие же юзеры в большинстве своём даже не знают, что такое PowerShell (PS).
А ведь скрипты для PowerShell позволяют автоматизировать, без малого, 100% действий и сценариев, выполняемых в операционной системе посредством командной строки и графического интерфейса.
С основными возможностями этой программы и ознакомимся, побольше внимания уделив функции создания и запуска скриптов (микропрограмм).
Руководств и документации по программе существует несметное количество, в том числе и на русском языке. Задача статьи – дать пользователю концептуальные знания, ввести в курс дела, а стоит ли знакомиться с интерпретатором и выполнением скриптов в нём поближе, решит каждый самостоятельно.
Содержание:
Что собой представляет Windows PowerShell?
PowerShell – интерпретатор командной строки CMD на основе .NET Framework, наделённый собственным языком сценариев.
Первое значит, что работает он в текстовом режиме: вводишь запускаешь команду, а на экране видишь результат её выполнения.
Как это было в MS-DOS и старых версиях UNIX’а.
Второе значительно упрощает, ускоряет и автоматизирует администрирование, обслуживание систем, приложений, процессов и связанных с ними сервисов администраторами и простыми юзерами.
Для Vista, XP и более старых редакций Windows, если их кто-то использует, PowerShell можно установить с пакета Windows Management Framework.
По сравнению с другими интерпретаторами, PS отличается:
- интеграцией с .NET Framework – позволяет создавать мощные скрипты, внедряя в них программный код;
- все возвращаемые данные являются объектами, а не данными текстового/строчного типа (string), что подразумевает их передачу другим скриптам и любую обработку.
Рис. 1 – Вид окна PowerShell
PowerShell второй версии обладает следующими возможностями, часть из которых рассмотрим подробнее:
- Возможность представления команд в виде командлетов – их запуск осуществляется внутри интерпретатора, в ином случае команда выполняется в отдельном процессе.
- Использование конвейеров – предназначены для передачи данных из одной команды в другую с сохранением их структуры и типа.
- Интегрирована многопоточная передача данных по сети с установкой приоритетности и возобновлением соединения.
- Поддержка позиционных и именованных параметров.
- Фоновая работа – асинхронный вызов команд и запуск скриптов на удалённых машинах.
- Установка ограниченных сессий с удалёнными клиентами и выполнение сценариев на них.
- Модули – способ организации скриптов, когда они становятся самодостаточными и выполняются в собственном контейнере, не влияя на окружение модуля.
- Наличие обработчика ошибок.
- Графическая среда для языка: синтаксис, отладчик, подсветка, автоматическое завершение команд с поддержкой Юникод и закладок.
- Добавление точек прерывания в строки, команды, операции и переменные для отладки сценария.
- Блочные и подстрочные комментарии.
- Поддержка создания алиасов для некоторых командлетов, преобразовывающихся в обычные команды в момент выполнения.
- Создание ограниченных сессий, где можно выполнять строго заданный перечень команд и очень многое другое.
Исходный код PowerShell стал доступным каждому: любой участник сообщества может беспрепятственно создавать собственные расширения для увеличения функционала интерпретатора командной строки.
Приступать к освоению интегрированного скриптового языка, не имея навыков программирования, можно.
Создать сложный сценарий получится вряд ли, но выполнять последовательности примитивных действий получится едва ли не у каждого.
Хотя, не обладая знаниями об основных понятиях PowerShell, сделать в окне командного интерпретатора вряд ли что-либо получится. С них и начнём.
к содержанию ↑
Командлеты
Командлеты – своеобразные команды PS, за которыми скрываются самые разные функции. Встроенные в интерпретатор команды реализованы по принципу «глагол-имя существительное», например, Get-Process (получение списка процессов). Такое решение позволяет понимать суть команды уже из её названия (на английском языке).
Часть командлетов поддерживает получение/передачу данных и массивов информации с сохранением их структуры и типа. Это работает по принципу конвейера (речь об этом пойдёт в следующем разделе). Несмотря ни на что, командлеты запускаются и обрабатывают объекты строго порядку.
Для реализации командлетов могут задействоваться любые поддерживаемые .NET API, созданные на любом из .NET-языков.
Таким образом юзеру предоставляется доступ до специфических функций программы.
Командлеты умеют эксплуатировать API для получения доступа к требуемой информации напрямую или через уникальные пути (буквы дисков и пути к директориям).
Посредством командлетов можно работать с реестром Windows, объектами файловой системы и хранилища сертификатов, установленными приложениями и службами.
к содержанию ↑
Конвейер
При создании не очень уж примитивных сценариев или для выполнения каких-либо операций с данными, полученными в результате работы скрипта порой приходится также совершать какие-либо действия.
Для этого существует конвейер. Как и в UNIX, он объединяет команды путём передачи выходных данных одного командлета во входные для другого в неизменном виде, сохраняя свой тип.
При этом не требуются никакой контейнер или посимвольный разбор информации.
В состав передаваемой информации может входить и функция. После окончания работы объединённых команд вызывается функция превращения информации в текстовый вид (конвертация данных в строковые) с применением форматирования текста.
к содержанию ↑
Скрипты
Несмотря на то, что оболочка позволяет автоматизировать множество действий, вводить команды нужно вручную, как и в случае с командной строкой, что не очень удобно.
Особенно, когда одни и те же операции следует выполнять постоянно.
Да и без человеческого фактора не обойтись: опечатки, ошибки, случайно задетые клавиши при написании строчек кода, исправление или набор строки заново требуют более дружелюбного отношения к пользователю.
Для выполнения однообразных цепочек действий в PS реализованы сценарии – текстовые файлы с последовательностью понятных для интерпретатора команд внутри.
Скрипты в PowerShell еще больше упростят и автоматизируют работу за ПК и его обслуживание, особенно, если в сценарии присутствуют разветвления, условия, логические операции и циклы.
Но здесь «не всё золото, что блестит»: написать собственный сценарий или загрузить готовый (пускай и немного подогнав его под собственные цели) так просто не получится.
Если бы в Microsoft это разрешили, сколько бы бед наделали скрипты для PowerShell, написанные мошенниками и недоброжелателями в корыстных или хулиганских целях.
Для выполнения макроса в Windows PS необходимо пройти контроль его запуска.
Если он не пройден, а скрипт должен выполниться, придётся изменить конфигурацию отвечающих за безопасность макросов объектов.
к содержанию ↑
Прежде чем пользоваться скриптами
При эксплуатации VBS возникает много проблем, от коих разработчики PowerShell избавились напрочь, если скриптовую безопасность не понижать для удовлетворения скриптовых запросов пользователя или решения задач, связанных с уровнем защищенности операционной системы.
Запуск скачанного скрипта на пользовательской машине – простой и действенный вариант распространения вредоносного программного обеспечения или кражи персональной информации злоумышленниками.
Всё происходит из-за элементарного незнания содержимого скриптового файла (ps1) и желания побыстрее решить свои задачи за счёт труда других. Объекты, контролирующие уровень безопасности выполнения сценариев, создают окружение, в котором запустить скрипт невозможно.
Преднамеренный запуск макросов происходит после изменения уровня безопасности, если юзер даст добро, осознавая, что он делает, и зная наверняка, что в файле *.ps1 находится.
По причине неудобства конфигурации защиты для людей, нуждающихся в реализации и выполнении собственных сценариев, существует возможность изменения конфигурации.
Здесь можно как снизить защиту до минимума, так и разумно лавировать между возможность открыть дыры для проникновения вредоносного ПО в систему и удобством в работе с PowerShell.
Оболочка обладает тремя уровнями безопасности:
- файлы с расширением ps1 не идентифицируются системой как исполняемые и обозначаются как неизвестные или текстовые (по двойному клику открываются в используемом на компьютере по умолчанию текстовом редакторе);
- оболочка позволяет выполнять скрипты после указания к ним полного пути, скриптовые файлы в текущей директории не ищутся, делая невозможным выполнения макросов, расположенных в текущем каталоге;
- запуск встроенного скрипта Execution Policy, отвечающего за добавление в перечень разрешенных скриптов требуемого.
Даже не думайте изменять конфигурацию, понизив её хотя бы до второго уровня, не ознакомившись с основами PowerShell, пока не начнёте хотя бы поверхностно понимать содержимое файлов *.ps1.
Существует и понятие политики выполнения, созданной с целью предотвратить случайный запуск сценариев. Настроек политики запуска существует целых пять:
- ограниченные – установлены по умолчанию, выполняются только подписанные Microsoft сценарии, позволяющие получать информацию об аппаратной и программной оболочке компьютера;
- имеющих подпись удаленных файлов – выполнять можно все макросы, но загруженные с интернета или присланные по почте файлы должны быть подписанными;
- имеющих цифровую подпись от надежного источника – выполняются все подписанные сценарии;
- неограниченные – запуск любых макросов;
- обходные – предназначены для программистов, которые создают собственную систему безопасности, а не используют представленную в оболочке.
Проверить текущее состояние политики запуска можно командой «Get-ExecutionPolicy». Какой бы ни была политика безопасности, пользователь не сможет запустить скрипт, в котором содержатся команды, на выполнение коих у него недостаточно привилегий.
к содержанию ↑
Запуск PowerShell
От теории пора переходить к практике. Итак, для выполнения скриптов необходимо получить цифровую подпись или понизить политику безопасности (второй вариант попроще).
Вызвать окно PowerShell можно несколькими путями.
Представлено оно в двух видах:
- классическая консоль;
Рис. 2 – Окно PowerShell
- PowerShell ISE – добавляет поддержку вкладок, синтаксиса, контекстной справки, контекстного и главного и меню, что в значительной мере облегчает работу в интерпретаторе.
Рис. 3 – Внешний вид PowerShell ISE
к содержанию ↑
Пуск
Проще всего вызвать PS через Пуск.
- Открываем меню (в Windows 7 кликаем «Все программы»).
- Идём в каталог Windows PowerShell и кликаем по нужной иконке.
Рис. 4 – Запуск PS через Пуск
Также вызвать PS через можно с помощью интегрированной поисковой системы.
Рис. 5 – Запуск PS через поиск
к содержанию ↑
Командный интерпретатор
Кто любит нестандартные и быстрые способы запуска, воспользуйтесь окном «Выполнить». Оно открывается одноимённой кнопкой в Пуске и комбинацией клавиш Win+R.
В диалоговом окне пишем «powershell» и жмём «Ввод».
Рис. 6 – Запуск PS через диалог «Выполнить»
к содержанию ↑
Win+X
В Windows 10 PS можно вызывать из меню WinX. Дело в том, что по умолчанию путём клика по команде «Командная строка» открываемся CMD. Её можно заменить на PowerShell.
Открываем «Свойства» Панели задач, во вкладке «Навигация» ставим галочку возле единственной опции и сохраняем настройки.
Рис. 7 – Замена командной строки на PowerShell в меню WinX
Можно вызывать PowerShell через командную строку, прописав в ней «powershell» или запуском исполняемого файла по пути: %WINDIR%\System32\WindowsPowerShell\v1.0 для 32-битных систем и по адресу %WINDIR%\ syswow64\WindowsPowerShell\v1.0 для 64-разрядных Windows любой редакции.
Рис. 8 – Запуск PS из каталога, где хранится его исполняемый файл
к содержанию ↑
Настройка политики безопасности
Осталось немного – разрешить PowerShell выполнение скриптов. Прописываем команду «Set-ExecutionPolicy RemoteSigned» и жмем «Y».
Рис. 9 – Изменение политики выполнения
На этом всё. Теперь можете выполнять любые командлеты и скрипты. Попробуем, например, отобразить список активных процессов, выполнив «Get-Process».
Рис. 10 – Результат выполнения первой команды
к содержанию ↑
Запуск скриптов
Создавать сценарии можно в любом текстовом редакторе (лучше остановиться на Win, Notepad++ или подобному, с поддержкой синтаксиса или проверки) либо в программе PowerShell ISE.
Последняя предоставляет удобный доступ к командлетам, возможности запуска, отладки и сохранения сценариев.
Предположим, что свой первый скрипт вы написали (это получение перечня запущенных процессов), сохранили через меню «Файл», и его нужно запустить. Делается это тремя путями:
1 Прописываем полный путь к скрипту в PowerShell (или ISE);
Рис. 11 – Запуск первого скрипта путём прописывания пути к нему
2 Через контекстное меню файла ps1;
Рис. 12 – Запуск сценария через его контекстное меню
3 Открываем сценарий в PowerShell ISE и жмём F
Рис. 13 – Запуск скриптов из окна PowerShell ISE
Важно, чтобы в пути к файлу отсутствовали пробелы!
PowerShell – мощное средство для упрощения выполнения рутинных операций в Windows 7, Server 2008 и более новых. Важное достоинство PowerShell – скрипты и наличие версии программы с графическим интерфейсом PS ISE. Команды в ней представлены в виде командлетов, что сделает возможным ознакомление с оболочкой и понимание смысла каждой команды. Политика безопасности не даст новичку навредить своему компьютеру полученными из неизвестных источников скриптами, а режим отладки, создание собственных командлетов, функций и механизм обработки ошибок открывают перед программистами и администраторами неограниченные возможности.
Бывают случаи когда для выполнения каких либо задач функционала утилит CSVDE и LDIFDE недостаточно и для решения задачи необходимо использовать PowerShell. Если задача не тривиальная и требует ввода большого количества команд, удобней записать их в один файл и запустить этот файл из PowerShell, чем вводить все в одну строку. Как сделать скрипт и запустить его в PowerShell?- на этот вопрос вы найдете ответ, если прочитаете статью.
Для того чтобы запустить скрипт PowerShell необходимо сделать текстовый файл (txt), набрать в нем необходимые команды, после этого сменить расширение файла на PS1. Если возникли проблемы с изменением расширения файла- оно не отображается, рекомендую прочитать статью- Как сделать видимым расширение файлов.
Теперь необходимо запустить PowerShell («Пуск- Все программы- Стандартные- Windows Power Shell«) и перейдите в папку со скриптом CD D:/ (в данном примере скрипт расположен в корне диска D), после этого запускаем скрипт .\<имя скрипта> например: .\script.ps1. Можно другим способом, запустить скрипт PowerShell- прописать весь путь, например D:/script.ps1
При первом запуске выполнении скрипта увидите ошибку:
Не удается загрузить файл <путь к вашему файлу>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.
Чтобы запускать созданные собою скрипты, необходимо либо использовать сертификат более подробно об этом можно узнать если запустит команду get-help about_signing, либо разрешить выполнение ненадежных скриптов с помощью команды Set-ExecutionPolicy remotesigned и подтверждением (Внимание!!! для выполнения этой команды необходимо запустить PowerShell с правами администратора). После этого можно вновь запустить выполнения скрипта.