Написание и запуск скриптов в PowerShell

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Get-ExecutionPolicy -List

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

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

  • Restricted: заблокировано выполнение любых скриптов, но разрешается работа интерактивных команд.
  • RemoteSigned: загруженные скрипты должны быть подписаны доверенным издателем. Локальные скрипты работают без подписи
  • AllSigned: разрешает выполнение любого подписанного скрипта, как локального, так и удаленного (загруженного).
  • Unrestricted: без ограничений. Вы можете запустить все сценарии, даже те, которые не подписаны.
Политики выполнения скриптов в PowerShell
  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser — запуск без ограничения для пользователя.
  • Set-ExecutionPolicyRestricted -Scope CurrentUser вернуть назад, если будет нужно.
Читайте также:  Официальная русская Windows 10 бесплатно

Разрешает без ограничений выполнять сценарии для локального пользователя. Ключ -Scope определяет, к чему применяется изменение политики. Когда вы вводите «CurrentUser«, то применяется только к текущему пользователю, а когда вы вводите «LocalMachine«, он применяется ко всей системе.

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

  • Set-ExecutionPolicy Unrestricted — разрешить выполнение скриптов без ограничений.
  • Set-ExecutionPolicy Restricted— вернуть назад по умолчанию.

Смотрите еще:

  • Что за папка ProgramData Windows 10
  • Исправить ошибку Boot Device Not Found на ноутбуке или ПК
  • Antimalware Service Executable (MsMpEng) — Грузит Систему
  • Ошибка 0x80070490 в Центре обновления Windows 10
  • Защитник Windows: Ограничить нагрузку на процессор

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

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

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

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

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

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

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

Другие вопросы по пользованию
  1. Откройте приложение.
  2. Введите $PSVersionTable.
  3. Если это ни к чему не привело, значит, у вас версия 1.0 — для неё есть команда $
  4. В ином случае появится подробная информация о том, какая версия приложения установлена на ПК.
Другие вопросы по пользованию

Ещё один вопрос, на который стоит дать ответ — как удалить PowerShell? Для этого потребуются такие действия:

Другие вопросы по пользованию
  • Зайдите через Панель управления в меню установки и удаления программ.
  • Найдите ветку Microsoft Windows
  • Удалите обновление для компонента WindowsPowerShell (TM), следуйте инструкциям системы.
Другие вопросы по пользованию

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

Параметры

У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например, Get-Service-NameW* выводит список служб, у которых имя начинается с W. Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member.

Чемпионат Cup IT

8–30 марта, Онлайн, Беcплатно

События и курсы на

Например, Get-Process | Get-Member:

Список параметров командлета Get-Process

Если вы не нашли того, что нужно, или не уверены в том, как правильно задаются параметры, можно даже запросить примеры с помощью параметра -Examples. Встроенное руководство по PowerShell покажет, для чего используются разные параметры:

Примеры использования командлета

Некоторые командлеты также могут вызываться с помощью алиасов. Например, вместо Get-Help можно просто написать Help — эта команда также вызовет встроенное руководство по PowerShell.

При написании больших скриптов или коллективной разработке можно пользоваться комментариями. Каждый комментарий начинается с символа #, а блок комментариев ограничивается комбинациями символов <# и #> в начале и в конце соответственно.

PowerShell: Выполнение сценариев отключено в этой системе

В операционной системе Windows 10 имеется мощный инструмент для управления и выполнения различных задач — это PowerShell.

Эта консоль предназначена для администраторов, поскольку она позволяет им контролировать всю операционную систему с помощью сценариев (script).

PowerShell используется многими фоновыми приложениями для внесения изменений в систему и это ставит под угрозу безопасность нашего ПК.

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

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

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

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

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

  • Get-ExecutionPolicy -List
PowerShell: Выполнение сценариев отключено в этой системе

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

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

  • Restricted: заблокировано выполнение любых скриптов, но разрешается работа интерактивных команд.
  • RemoteSigned: загруженные скрипты должны быть подписаны доверенным издателем. Локальные скрипты работают без подписи
  • AllSigned: разрешает выполнение любого подписанного скрипта, как локального, так и удаленного (загруженного).
  • Unrestricted: без ограничений. Вы можете запустить все сценарии, даже те, которые не подписаны.

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

  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser — запуск без ограничения для пользователя.
  • Set-ExecutionPolicyRestricted -Scope CurrentUser вернуть назад, если будет нужно.

Разрешает без ограничений выполнять сценарии для локального пользователя. Ключ -Scope определяет, к чему применяется изменение политики. Когда вы вводите «CurrentUser«, то применяется только к текущему пользователю, а когда вы вводите «LocalMachine«, он применяется ко всей системе.

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

  • Set-ExecutionPolicy Unrestricted — разрешить выполнение скриптов без ограничений.
  • Set-ExecutionPolicy Restricted— вернуть назад по умолчанию.

Удаленное управление с PowerShell

В основном описанные в статье команды выполняются на том же компьютере, на котором они запущены. Проще говоря, команды для управления AD выполнять нужно на сервере, где контроллер домена и установлен, что, согласиcь, на корню рубит удобство и автоматизацию. Для выполнения команд удалeнно, что нам и требуется, надо пользоваться специальными командлетами. К пpимеру, для подключения к удаленному компьютеру и перезапуску там спулера пeчати вводи

Enter-PSSession -ComputerName SRV4 Restart-Service -Name spooler

Более подробно читай тут.

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

Осуществить такую задачу можно двумя способами:

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

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

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