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

В Windows Server 2016 в консоли Server Manager в разделе управления настройками ролей Remote Desktop Services при выборе определённой Коллекции нам доступно окно управления клиентскими подключениями к серверам нашей фермы RDS, однако по какой-то странной причине разработчики этой самой консоли посчитали что функцию выбора более одного пользователя для отправки сообщения реализовывать не нужно, …наверно чтобы администраторам жизнь мёдом не казалась..

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

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

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

В запросе UAC будет запрошено ваше согласие. Нажмите «Да», и приглашение откроется.

Приглашение PowerShell с повышенными правами будет отображать Администратор: Windows PowerShell в верхней части границы приглашения.

ПРИМЕЧАНИЕ:

  1. Вы также можете открыть Диспетчер задач> Меню Файл> Запустить новое задание. Введите powershell и установите флажок Создать эту задачу с правами администратора и нажмите кнопку ОК, чтобы открыть окно PowerShell с повышенными привилегиями.
  2. Нажмите Shift + Ctrl + Alt, а затем щелкните значок PowerShell, чтобы открыть PowerShell от имени администратора.

Затем вы можете продолжить восстанавливать образ системы Windows, перерегистрировать приложения Магазина Windows и т. Д.

Бонусный совет. Узнайте, как узнать, какая версия PowerShell у вас установлена?

Запуск Службы Из Командной Строки (CMD)

Во избежании ошибки «Access is denied«, запустите CMD с правами администратора: нажмите клавишу Win, чтобы открыть меню «Пуск», наберите cmd, чтобы найти командную строку и нажмите комбинацию Ctrl+Shift+Enter, чтобы запустить командную строку от имени администратора.

Используйте следующие команды, чтобы запустить, остановить или проверить статус службы в Windows из командной строки (CMD).

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

C:\> net start serviceName

Узнать состояние службы:

C:\> sc query serviceName

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

C:\> net stop serviceName

Дельный Совет: Убить зависший процесс в Windows из CMD! Читать далее →

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

Скрипты сохраняются в виде файлов с расширением .ps1. Несмотря на то, что PowerShell уже давно является нативной частью ОС Windows, вы не сможете запустить его скрипты простым двойным щелчком. Для этого надо кликнуть правой кнопкой по скрипту и выбрать «Запустить в PowerShell».

Курс по веб-разработке от Logitech и GeekBrains

1–3 марта, Онлайн, Беcплатно

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

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

  • Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
  • AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
  • RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
  • Unrestricted — можно запускать любые скрипты.

Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy:

Командлеты

Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей:

  • существуют системные, пользовательские и опциональные командлеты;
  • результатом выполнения командлета будет объект или массив объектов;
  • командлеты могут обрабатывать данные и передавать их другим командлетам с помощью конвейеров;
  • командлеты нечувствительны к регистру, так что нет никакой разницы между Get-ADUser, get-aduser и gEt-AdUsEr;
  • в качестве разделителя используется символ ; .

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

  • Get-Process — отобразить текущие процессы, запущенные на компьютере;
  • Get-Service — отобразить список служб и их статус;
  • Get-Content — отобразить содержимое указанного файла, например Get-Content C:\Windows\System32\drivers\etc\hosts.
Читайте также:  Как из одного раздела на жестком диске сделать два

При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category:

Также можно создавать и свои собственные командлеты.

Параметры

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

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

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

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

Конвейер

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

  • GetService | SortObject -property Status — сортировка запущенных служб по статусу;
  • “Hello World!” | Out-File C:\ps\ — запись текста в файл.

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

Get-Service | WHERE {$_.status -eq “Running”} | SELECT displayname

Написание и запуск скриптов в 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 work . имя_файла. Ps1, или e: work имя_
  3. В этом случае e: — имя жёсткого диска, где находится файл.
  4. Жмите Enter.
Написание и запуск скриптов в PowerShell

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

Читайте также:  1.2.3 Редактированием реестра выполнить отключение tcp/iPv6.

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

Но, это ограничение можно очень просто обойти.

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

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

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

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

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

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

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

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

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

Как открыть PowerShell в Windows 10?

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

Как открыть PowerShell в Windows 10?

Из меню «Win + X»

Как самостоятельно открыть ПоверШелл, вызвав контекстное меню:

Как открыть PowerShell в Windows 10?
  • перейти на рабочий стол;
  • одновременно нажать на кнопки «Win» и «X»;
  • откроется меню «Приложения и возможности»;
  • отыскать в списке название утилиты на английском;
  • из меню попасть в консоль ПоверШелл можно на пользовательских или администраторских правах;
  • выбрать нужный вариант и кликнуть по нему один раз.
Как открыть PowerShell в Windows 10?

Как попасть в ПоверШелл, если при нажатии на «Win» и «X» открывается командная строка:

  • активировать «Параметры»;
  • отыскать «Персонализация»;
  • перейти в «Панель задач»;
  • отыскать фразу «Заменить командную строку оболочкой WinPowerShell…»;
  • переместить переключатель в позицию «Вкл.»;
Как открыть PowerShell в Windows 10?
  • вернуться на рабочий стол;
  • еще раз нажать на «Win» и «X».

С помощью поиска

Как открыть PowerShell в Windows 10?

Как самостоятельно запустить ПоверШелл (через «Поиск»):

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

Из Проводника

Как открыть PowerShell в Windows 10?

Как самостоятельно вызвать утилиту (используя Проводник Виндовс 10):

  • выполнить активацию Проводника;
  • в поисковую строчку ввести название (на английском);
  • на дисплее появится искомое приложение.
Как открыть PowerShell в Windows 10?

Еще один способ вызова ПоверШелл (используя Проводник):

  • активировать виндовский Проводник;
  • отыскать папку с названием утилиты (на английском);
  • обычно ПоверШелл находится: C:\Windows\System32\WindowsPowerShell\v1.0 или C:\Windows\syswow64\Windowspowershell\v1.0;
Как открыть PowerShell в Windows 10?
  • через «Файл», или используя правую клавишу мыши, открыть найденное приложение в нужном режиме (на пользовательских или администраторских правах).

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

Как открыть PowerShell в Windows 10?

Как самостоятельно активировать утилиту через Пуск:

  • перейти в Пуск;
  • откроется список всех установленных на ПК программ;
  • отыскать название утилиты (на английском);
  • запустить в нужном режиме (на пользовательских или администраторских правах).
Как открыть PowerShell в Windows 10?

Важно! В старых вариантах Виндовса искомая утилита PowerShell находится в списке стандартных программ (служебных приложений). Найти ее удастся тоже через Пуск.

Читайте также:  Как запретить доступ к IP-адресам и сетям в Windows из PowerShell

Как вызвать ПоверШелл из консоли Выполнить:

Как открыть PowerShell в Windows 10?
  • активировать Выполнить;
  • в строчке «Открыть» написать символы: «powershell»;
  • нажать на «ОК».
Как открыть PowerShell в Windows 10?

Как самостоятельно открыть утилиту из командной строки:

  • вызвать консоль (на администраторских правах);
  • в окошке написать символы: «powershell»;
Как открыть PowerShell в Windows 10?
  • кликнуть на «Enter»;
  • оболочка утилиты запустится в интерфейсе вызванной командной консоли.

Как вызвать приложение (через Диспетчер задач):

  • активировать на своем ПК «Диспетчер…»;
  • отыскать вверху подраздел «Файл»;
  • в меню «Файл» активировать «Запустить новую задачу»;
  • появится всплывающее окошко «Создание задачи»;
  • в строчке «Открыть» написать символы: «powershell»;
  • если нужно, поставить галочку возле опции «Создать задачу с администраторскими правами»;
  • кликнуть на «ОК».

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.

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

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

Для данной задачи подходит командлет Windows PowerShell «Set-AuthenticodeSignature». Данный командлет отвечает за добавление подписи в любой тип файла, который может быть совместим с протоколом SIP. В данном случае будет извлечен сертификат подписи кода из поставщика сертификата, после чего он будет использован для подписания скрипта Windows PowerShell.

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

  • При помощи первой команды будет использоваться командлет Get-ChildItem, благодаря которому вы можете получить сертификат во вложенном каталоге хранилища сертификатов «Cert:\CurrentUser\My». Наряду с параметром выбора каталога используется параметр CodeSigningCert, который обеспечивает извлечение сертификатов только с заверителем подписи кода. Как правило, принято сохранять результат извлечения сертификата в переменную $cert;
  • В свою очередь, вторая команда выполняется при помощи командлета Set-AuthenticodeSignature, который уже подписывает наш скрипт Минимальными требованиями выполнения команды составляет использование параметра FilePath, который определяет имя скрипта, а также параметра Certificate – указывающего, что сертификат хранится в переменной $cert. При выполнении этой команды настоятельно рекомендуется еще использовать параметр TimestampServer. Для чего он нужен? Смотрите, сертификат выдается на определенный срок и этот срок имеет свойства заканчиваться. Так вот, данный параметр позволит вам быть уверенным в том, что скрипт продолжит выполняться даже по истечению срока действия вашего сертификата. То есть, используя этот параметр вы можете определить сервер отметок времени, который добавит к подписи саму отметку времени. Эта отметка времени представляет собой временной штамп добавленного в файл сертификата. Таким образом, данная отметка времени защищает скрипт от сбоев в случае истечения срока действия сертификата, ввиду того, что пользователи будут знать, что сертификат считался действительным во время подписания. В том случае если вы не будете использовать текущий параметр, скрипт перестанет работать, как только срок действия сертификата истечет. Сам сервер отметок времени указывается в качестве URL-адреса.

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

$cert=Get-ChildItem -Path cert:\CurrentUser\my -CodeSigningCert

Set-AuthenticodeSignature -FilePath C:\PowerShell\ -Certificate $cert

Как видно на следующей иллюстрации, скрипт был успешно подписан:

Рис. 8. Процесс подписания скрипта Windows PowerShell