Powershell что такое: Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности / Хабр

Содержание

Что такое Windows PowerShell – для чего он нужен

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

Windows PowerShell – это усовершенствованная оболочка, интегрированная во все операционные системы Microsoft, начиная с Windows 7. Она включает в себя интерактивные подсказки и среду сценариев, которую можно использовать по отдельности или в комбинации.

Что такое Windows PowerShell

Как следует из названия, Windows PowerShell – это оболочка командной строки. Она была разработана специально для использования системными администраторами и может использоваться для выполнения всех команд cmd.exe.

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

Давайте подробно рассмотрим, какие функции и преимущества предлагает эта оболочка от Microsoft:

  • Интеграция с Microsoft .NET Framework. NET Framework – это среда управляемого выполнения для Windows, предоставляющая широкий спектр сервисов для запуска приложений. Команды сценариев PowerShell имеют доступ к ресурсам .NET Framework.
  • Объектно-ориентированный. В отличие от большинства оболочек, которые принимают и возвращают чистый текст, все команды PowerShell, генерирующие выходные данные, возвращают объекты .NET Framework, устраняя необходимость разбора текста в случае, если выходные данные команды нужны для последующей команды.
  • Command-Let. Windows PowerShell представляет концепцию command-let или
    cmdlet
    , инструмента командной строки с единственной функцией, встроенной в оболочку. Доступно более ста системных командлетов. Кроме того, вы можете писать собственные командлеты и делиться ими с другими пользователями. Каждый командлет может использоваться отдельно или в сочетании с другими для выполнения сложных задач.
  • Предназначен для системных администраторов. PowerShell включает функции, предназначенные для системных администраторов, такие как возможность работы на удаленных компьютерах, доступ к реестру Windows и запуск или остановка служб.

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

После объяснения, что такое Windows PowerShell, давайте посмотрим, как его запустить.

  1. Нажимаем на клавиатуре компьютера клавиши Win (это клавиша с логотипом Windows) и R одновременно. Откроется командное окно «Выполнить».
  2. В поле Открыть: введите powershell
    и нажмите кнопку ОК.

Более современный способ – доступный в Windows 10 – щелкнуть правой кнопкой мыши по меню «Пуск» и выбрать соответствующий пункт из меню «Опытного пользователя»

Как взаимодействовать с Windows PowerShell

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

Мы можем использовать символы направления > для отправки вывода в файл или >> для добавления в файл. PowerShell использует псевдонимы для связи команд cmd.exe со своими командлетами. Например, команда cd является псевдонимом для командлета set-location, точно так же, как dir является псевдонимом для командлета get-children.

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

Одна из сильных сторон этой оболочки – её командлеты. Каждый командлет представлен «глаголом», за которым следует тире и существительное.

Чтобы просмотреть полный список всех доступных командлетов, введите get-command. Чтобы получить информацию о конкретном командлете, введите get-help и имя командлета.

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

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

Что такое Windows PowerShell ISE

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

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

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

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

  1. Нажмите на клавиатуре компьютера клавиши Win (это клавиша с логотипом Windows) и R одновременно. Откроется окно «Выполнить».
  2. В поле Открыть: введите powershell_ise и нажмите кнопку ОК.

Что такое Windows PowerShell и для чего он нужен

Изучая меню пуск Windows 7 или начальный экран Windows 8 1, начинающие пользователи нередко открывают для себя приложения, назначение которых им не понятно. Как раз одно из таких приложений — PowerShell. Что же такое этот самый PowerShell и есть ли от него хоть какой-то толк? Ну, раз его кто-то придумал и интегрировал в Windows, значит, толк всё-таки есть. Кстати, этим самым придумавшим PowerShell является компания Microsoft.

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

командная строка, но только намного более функциональная.

Что умеет этот инструмент администрирования? Много чего. С его помощью системные администраторы и опытные пользователи могут управлять процессами, службами, файловыми хранилищами, аккаунтами и даже серверами. Также оболочка позволяет запускать внешние команды, работать с объектами .NET, COM и XML, проделывать разные трюки и т.п., создавать и выполнять собственные сценарии. Кстати, для написания скриптов в Windows предусмотрена специальная графическая консоль ISE, являющаяся своего рода дополнением к основной оболочке PowerShell.

Как и консоль CMD, оболочка PowerShell имеет свой набор команд, именуемых командлетами.

Утилита распознает многие из команд CMD, но в целом синтаксис языка, определения командлетов и их параметров отличаются от того, что пользователи привыкли видеть в обычной командной строке. Кроме того, знакомые команды вроде dir, cd, copy и т.п., прекрасно понимаемые PowerShell, на самом деле являются псевдонимами. Например, команда Dir, служащая для просмотра файловой системы соответствует «родному» командлету Get-ChildItem. Псевдонимы или как принято говорить, алиасы, служат чисто для удобства.

Разобраться с PowerShell начинающему пользователю, особенно если тот незнаком хотя бы с основами обычной командной строки, будет непросто. А руководств и справочников, достаточно понятных и простых для усвоения, не так уж и много. Есть неплохое руководство, написанное Франком Кохом, с которым мы рекомендуем ознакомиться, если вы всё же решитесь приступить к изучению скриптового языка PowerShell.

Ну, и конечно, собственная справочная системы оболочки.

Она мощная и развёрнутая, с множеством конкретных примеров. Пользоваться ей достаточно просто. Основная информация по справочной системы выводится командлетом Get-Help. Командлет Get-Command выводит список всех доступных команд.

Get-Command

Для получения справки по конкретному командлету или алиасу используется связка get-help командлет. Например, команда get-help get-process выведет основную справку по использованию командлета get-process, отвечающего за вывод списка текущих процессов. Передав же ей параметры –detailed, -examples, -full или –online, можно будет получить самые подробные сведения обо всех его нюансах.

Руководство по Windows PowerShell для начинающих

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

PowerShell — это объектно-ориентированный программный движок и скриптовый язык с интерфейсом командной строки, предоставляющий широкие возможности для конфигурирования операционных систем семейства MS Windows. Он предлагает как чисто консольный интерфейс, так и полноценную среду разработки PowerShell ISE (Integrated Scripting Environment, встроенное скриптовое окружение) для скриптов.

Для запуска интерфейса командной строки введите powershell в меню «Выполнить» (WinKey + R). PowerShell ISE запускается с помощью команды «PowerShell ISE» в том же меню. ISE более предпочтительно, так как предоставляет более широкие возможности разработчику благодаря подсветке синтаксиса, функции автозаполнения кода и другим особенностям, присущим многим «большим» IDE.

Среда разработки Windows PowerShell ISE

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

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

Также существуют системные политики, ограничивающие выполнение скриптов. Можно проверить текущие параметры политики, введя команду 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 с нуля, так как помогает быстрее начать ориентироваться в его возможностях.

Результат выполнения команды Get-Help-Category

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

Параметры

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

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

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

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

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

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

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

Конвейер

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

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

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

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

Заключение

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

Если пользуетесь не только Windows, но и Linux, посмотрите статью про команды терминала Linux для начинающих. В ней рассказывается про работу с процессами и файлами, навигацию, каналы, xargs, awk и grep.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Перевод статьи «Windows PowerShell Scripting Tutorial for Beginners»

Что такое PowerShell? Назначение компонента Windows Power Shell Что такое powershell в windows 8

С загадочными письменами и настойчиво мигающим курсором? Это командная строка. Утилита присутствует во всех версиях Windows. С ее помощью удобно управлять системой, вызывать программы, находить файлы. Но для профессиональной работы cmd недостаточно функциональна. Поэтому компания Microsoft решила исправить все минусы консоли и выпустила продукт под названием Windows PowerShell. Что это и как использовать разработку, читайте дальше.

Что такое PowerShell от Windows

PowerShell — это интерактивная объектно-ориентированная командная среда с функциями языка сценариев. Официальный релиз PowerShell 1.0 от «Майкрософт» состоялся 14 ноября 2006 года. Разработчики объединили интерфейс обычной командной строки CLI с платформой для управления локальными и удаленными сетями.NET Framework.

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

18 августа 2016 года Microsoft объявила, что Windows PowerShell — это теперь продукт с открытым исходным кодом, доступный каждому разработчику. Также компания добавила поддержку Unix-ориентированных операционных систем, включая дистрибутивы Linux и OS X.

Как управлять PowerShell

Для выполнения задач используются cmdlets, или командлеты. Это небольшие команды, записанные в виде исполняемых файлов. В версии 2.0 PowerShell для Windows XP и Server 2008 R2 создатели добавили модули, позволяющие управлять большим количеством ресурсов, включая Active Directory и Exchange Server.

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

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

Учитывая, что Windows PowerShell — это расширяемая среда, пользователи могут создавать свои команды, писать «авторские» модули с использованием языка.Net.

Начало работы с PowerShell

В 2016 году была выпущена последняя бета-версия 6.0 PowerShell. В Windows 7, 8 и 10 утилита является встроенной. Если вы пользуетесь другой операционной системой, приложение придется скачать. Для этого зайдите на официальный сайт microfoft.com и в окне поиска введите Installing Windows PowerShell. Система автоматически переведет на страницу с последними релизами продукта. Выберете из списка свою ОС и нажмите Download.

Когда файл полностью загрузится, откройте его двойным щелчком мышки. По умолчанию среда установится в ProgramFiles\PowerShell\ и создаст ярлык в меню «Пуск». Если вы являетесь счастливым пользователем Windows, нажмите на значок системы в нижнем левом углу и введите PowerShell в «Найти программы и файлы». Запускайте приложение, вводите свой первый командлет и начинайте работу.

Список необходимых команд и инструкций для PowerShell

Имя каждого командлета представлено в форме «глагол-существительное» или «действие-объект». Предлагаем список наиболее важных cmdlets PowerShell для Windows 10 и предыдущих версий, начиная с XP. Они будут полезны даже начинающим пользователям, которые только вчера научились сохранять текстовые документы.

  1. Get-Help. Встроенный в ядро оболочки командлет. Предназначен для вызова справки и предоставляет полезную информацию о синтаксисе, программах, их назначении, других командлетах. Если в обычном командном интерпретаторе вы писали ipconfig /?, то в PowerShell нужно набрать Get-Help Get-Process.
  2. Get-Content. Упрощает процедуру чтения файлов для новичков и системных администраторов. Если раньше необходимо было открывать дескриптор и читать поочередно все строки документа, то теперь достаточно передать файл командлету. Для этого пропишите в консоли C:\> Get-Content C:\…\«имя файла».«расширение».
  3. Get-Service. Доступ к информации об установленных на компьютере службах.
  4. Get-Member. Выдает информацию о возвращаемом командлетом объекте, позволяет увидеть его свойства и методы.
  5. Get-Command. Выполняет поиск командлетов, возвращает о них всю информацию, включая данные о функциях, скриптах, приложениях и других элементах. В версии 5.0 PowerShell для Windows 10 в Get-Command добавлен столбец Version, и теперь команлдет отображает сразу несколько версий одного и того же модуля.
  6. Stop-\Start-Service. Незаменимый помощник для администраторов. Командлет запускает и останавливает службы на удаленных и локальных компьютерах.

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

Помимо командлетов, утилита PowerShell в Windows 7 и выше включает специальные символы, такие как $_ или {}. Наибольшее недоумение значки вызывают у новичков, не имевших дело с Linux-подобными системами или программированием.

  1. Вертикальная черта «|». Этот символ используется для программ с конвейерной передачей данных. При работе с консолью его включают, когда хотят указать команде справа от вертикальной черты принять выходные данные от команды слева. В PowerShell вертикальную черту применяют практически с той же целью, комбинируя сразу несколько команд. Например, создать новое имя пользователя, добавить его в группу и сбросить пароль по умолчанию.
  2. Знак функции «{}». Позволяет эффективно контролировать процесс выполнения сценариев. Как и в C-подобных языках программирования, функция в PowerShell образуется посредством заключения нескольких командлетов в фигурные скобки и готова запускаться необходимое количество раз.
  3. Специальный символ $_. Используется для написания скриптовых блоков, фильтров и процедурных выражений. $_ принимает значение текущего объекта и передает его следующему. С помощью знака доллара без нижнего подчеркивания можно обозначить или ввести переменную: $var = «Hello».

Что такое PowerShell ISE

В комплекте с утилитой PowerShell идет графическое приложение Windows PowerShell ISE. Это оболочка, или интегрированная среда, для написания скриптов. ISE предоставляет разработчикам огромный спектр возможностей. С ее помощью можно создавать, отлаживать и редактировать скрипты, открывать текстовые и XML-файлы. Цветная подсветка синтаксиса существенно облегчает тестирование и поиск ошибок в коде.

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

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

Начните знакомство с ISE и в нижнем окне введите Get-Process. Нажмите несколько раз Tab. Рядом с командлетом появятся его параметры, которые будут меняться после каждого нажатия клавиши. Это и будет ваш первый сеанс работы со скриптовой средой от Microsoft.

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

Если на вашем компьютере установлена Windows 10, то, пожалуй, ещё более быстрый способ открыть PowerShell — нажать правой кнопкой мыши по кнопке «Пуск» и выбрать нужный пункт меню (там присутствует сразу два пункта — для простого запуска и от имени администратора). Это же меню можно вызвать, нажав клавиши Win+X на клавиатуре.

Примечание: если в этом меню вместо Windows PowerShell у вас отображается командная строка, то заменить её на PowerShell вы, при желании, можете в Параметры — Персонализация — Панель задач, включив пункт «Заменить командную строку оболочкой Windows Powershell» (в последних версиях Windows 10 параметр включен по умолчанию).

Запуск PowerShell с помощью диалогового окна «Выполнить»

Еще один простой способ запуска PowerShell — использовать окно «Выполнить»:

  1. Нажмите клавиши Win+R на клавиатуре.
  2. Введите powershell и нажмите Enter или Ок.

При этом в Windows 7 можно установить отметку запуска от имени администратора, а в последней версии Windows 10, если при нажатии Enter или Ok удерживать клавиши Ctrl + Shift, то утилита также запуститься от имени администратора.

Видео инструкция

Другие способы открыть PowerShell

Выше перечислены далеко не все способы открытия Windows PowerShell, но, уверен, что их будет вполне достаточно. Если же нет, то:

Также, бывает, спрашивают, а что такое PowerShell ISE и PowerShell x86, которые находятся, например, при использовании первого способа. Отвечаю: PowerShell ISE — «Интегрированная среда сценариев PowerShell». По сути, с её помощью можно выполнять все те же команды, но, помимо этого, в ней присутствуют дополнительные возможности, облегчающие работу со скриптами PowerShell (справка, инструменты отладки, цветовая разметка, дополнительные горячие клавиши и т.п.). В свою очередь версии x86 нужны в случае, если вы работаете с 32-битными объектами или с удаленной системой x86.

После перехода на операционную систему Windows 10 многие пользователи заметили в интерфейсе Проводника кнопку «Запустить 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), но он имеет и свой собственный язык, состоящий из собственных команд, которые здесь называются командлетами.

Командлеты (на английском cmdlets) формируются по правилу Глагол-Существительное, например, Get-Help. Ознакомиться с основами Windows PowerShell можно с помощью справки (командлет «Get-Help»). Для получения общей информации просто введите команду «Get-Help», для получения справки о конкретном командлете введите «Get-Help Имя-командлета». Например, если ввести команду «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 ». Данный командлет пригодится при написании скриптов для обслуживания компьютеров. При выполнении командлета нужно указать диск, на котором нужно очистить корзину. Пример:

Clear-RecycleBin c:

На скриншоте внизу видно, как выполняется данный командлет. После введения команды «Clear-RecycleBin c: » появляется запрос на подтверждение. Для того чтобы продолжить выполнение командлета нужно ввести букву «Y» и нажать Enter.

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

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

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

В результате выполнения показанной выше команды, в папке «C:\archive\» появится файл «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 cmdlet».

Пользователи, находящиеся в процессе изучения начального экрана Windows 8.1 или Windows 7, нередко запускают в работу совсем незнакомые им приложения. Одним из таковых является Power Shell – продукт от компании Microsoft.

Что такое Power Shell

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

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

Функционал инструмента администрирования

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

Оболочка Power Shell имеет собственный набор команд, как и консоль CMD, называемых командлетами. Синтаксис языка, определения командлетов и их параметров в этой программе отличается от привычного, хотя утилита способна распознавать многие команды CMD.

Прекрасно понимаемые Power Shell команды вроде cd, dir, copy и им подобные в этой оболочке являются псевдонимами или, как принято говорить, алиасами, служащими просто для удобства. Пример: команда dir, вводимая пользователем с целью просмотра файловой системы, соответствует командлету Get-ChildItem.

Как разобраться в программе

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

Решаясь начать изучение скриптового языка Power Shell, целесообразно ознакомиться с руководством, созданным Франком Кохом, или обратиться к справочной системе самой программы. Последняя является довольно мощной, с большим количеством конкретных примеров. Основная информация здесь откроется для просмотра после ввода командлета Get-Help.


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

Определение PowerShell

Начнем с того, что такое оболочка. Оболочка – это интерфейс, который позволяет воспользоваться какими-либо функциями операционной системы. Таким образом, PowerShell это оболочка, которую разработала компания Microsoft и предназначена для более автоматизированного выполнения задач. Данный инструмент создан на основе.NET и оболочки командной строки, а также языка сценариев.

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

Первая версия инструмента PowerShell появилась еще в 2006 году для Windows XP, Server 2003 и Vista. На данный момент последняя версия инструмента 4.0. Выпущена в 2013 году вместе с Windows 8.1.

Какие функции выполняет PowerShell?

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

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

В том случае, если вы являетесь администратором сети, то PowerShell сможет вам помочь в работе, например, с Active Directory. Также, стоит заметить, что утилита содержит более 100 команд. Это говорит о том, что она поможет решить вам большинство задач.

Запуск PowerShell на Windows 7

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

По-другому инструмент можно открыть, если зайти в меню Пуск, все программы, стандартные и папка Windows PowerShell .

Запуск PowerShell на Windows 8.1

Для открытия PowerShell в Windows 8.1 необходимо в поиске ввести ключевое слово «», чтобы открыть поиск, нажмите Win+Q .

Другой способ открытия – через окно «Выполнить ». Нажимаем Win+R , открывается окно, в которое вы вводите .

Использование в повседневности

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

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

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

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

Что такое powershell.exe?

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

Подлинный файл powershell.exe является одним из компонентов программного обеспечения Microsoft Windows, разработанного Microsoft .

Microsoft Windows — это операционная система. PowerShell — это среда управления конфигурацией и автоматизации задач от Microsoft. Powershell.exe — это исполняемый файл, связанный с PowerShell, и не представляет никакой угрозы для ПК пользователя. PowerShell — это инфраструктура управления конфигурацией и автоматизации задач Microsoft, которая состоит из оболочки командной строки и связанного языка сценариев. Это было доступно через платформы и в настоящее время с открытым исходным кодом. PowerShell позволяет администраторам выполнять административные задачи как удаленно, так и в локальных системах Windows, и впервые был выпущен как неотъемлемая часть операционных систем Windows 7 и Windows Server 2008 R2.

Microsoft Corporation — американская многонациональная технологическая компания, основанная Биллом Гейтсом и Полом Алленом в 1975 году. Компания известна несколькими крупными приобретениями, включая LinkedIn за 26, 2 млрд долларов в 2016 году и Skype Technologies. Компания предлагает широкий спектр продуктов, таких как операционные системы Windows, Microsoft Xbox и планшеты Surface.


Расширение .exe в имени файла указывает на файл exe cutable. Исполняемые файлы могут, в некоторых случаях, нанести вред вашему компьютеру. Поэтому, пожалуйста, прочитайте ниже, чтобы решить для себя, является ли powershell.exe на вашем компьютере троянцем, который вы должны удалить, или это файл, принадлежащий операционной системе Windows или доверенному приложению.

Процесс Powershell.exe в диспетчере задач Windows

Процесс, известный как Windows PowerShell, принадлежит программному обеспечению Microsoft Windows Operating System от Microsoft (www.microsoft.com).

Описание: оригинальный powershell.exe является важной частью Windows и редко вызывает проблемы. Powershell.exe находится в подпапках C: \ Windows \ System32, в основном C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ . Известные размеры файлов в Windows 10/8/7 / XP составляют 452 608 байт (60% всех вхождений), 461 312 байт, 431 616 байт, 460 288 байт или 448 000 байт.

Это системный файл Windows. Это заслуживающий доверия файл от Microsoft. Программа не видна. Поэтому технический рейтинг надежности 6% опасности, но вы также должны учитывать отзывы пользователей.

Если powershell.exe находится в подпапках C: \ Windows, тогда рейтинг надежности 4% опасности . Размер файла составляет 451 072 байта (50% всех вхождений) или 452 608 байтов. Файл powershell.exe — это системный файл Windows. Файл powershell.exe — это файл, подписанный Microsoft. Программа не видна.

Важно: Некоторые вредоносные программы маскируют себя как powershell.exe, особенно если они находятся в папке C: \ Windows или C: \ Windows \ System32. Таким образом, вы должны проверить файл powershell.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера. Это был один из лучших вариантов загрузки The Washington Post и PC World .

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с powershell. Это означает запуск сканирования на наличие вредоносных программ, очистку жесткого диска с использованием 1 cleanmgr и 2 sfc / scannow, 3 удаления ненужных программ, проверку наличия программ автозапуска (с использованием 4 msconfig) и включение автоматического обновления Windows 5. Всегда не забывайте выполнять периодическое резервное копирование или, по крайней мере, устанавливать точки восстановления.

Если у вас возникла реальная проблема, попробуйте вспомнить последнее, что вы сделали, или последнее, что вы установили до того, как проблема появилась впервые. Используйте команду 6 resmon для определения процессов, которые вызывают вашу проблему. Даже для серьезных проблем, вместо переустановки Windows, лучше восстановить вашу установку или, для Windows 8 и более поздних версий, выполнить команду 7 DISM.exe / Online / Cleanup-image / Restorehealth. Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс powershell.exe на вашем компьютере, оказались полезными следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Уникальный рейтинг риска безопасности указывает на вероятность того, что процесс является потенциальным шпионским ПО, вредоносным ПО или трояном. B Malwarebytes Anti-Malware обнаруживает и удаляет спящие шпионские, рекламные программы, трояны, клавиатурные шпионы, вредоносные программы и трекеры с вашего жесткого диска.

Связанный файл:

timountermonitor.exe wsxservice.exe flcomserv.exe powershell.exe fubtool.exe dacore.exe tppaldr.exe windows driver.exe gmouseservice.exe safeguard32.dll pctsgui.exe


Windows PowerShell

  • Bot
  • 04.10.2021
  • 118
  • 0
  • 1
  • 1
  • 0
  • Содержание статьи

Вступление

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

Наиболее распространенным средством «экономии времени и избавления от головной боли» стала запись и последовательное пакетное исполнение необходимых операций — исполнение сценариев или скриптов в интерпретаторе команд операционной системы.

Попытки улучшить состояние дел в области управления и администрирования Windows с помощью командного интерфейса привели не к адаптации чужеродного для системы языка сценариев или созданию супер-утилиты, работающей в DOS, а к появлению PowerShell – новой командной оболочки.

В составе MS-DOS и Windows 9x таким интерпретатором, позволяющим выполнять обработку пакетных файлов (bat-файлов), являлся command.com, впоследствии (начиная с выхода Windows NT) замененный cmd.exe. Позднее появился Windows Script Host.

Тем не менее, процесс написания и выполнения сценариев в ОС Windows не развит так хорошо, как, например, в UNIX-системах. Одна из причин этого – сам графический интерфейс ОС Windows, видимо и сделавший ее столь популярной среди обычных, не корпоративных пользователей. Возможность управления некоторыми элементами среды Windows с помощью графического интерфейса не всегда можно реализовать с помощью системных утилит, выполняемых в командной строке. С другой стороны, возможности каких-то системных программ, поставляемых в составе Windows, не всегда представлены в GUI. К тому же интерпретаторы в Windows имеют довольно ограниченный набор команд, «зашитых» в саму оболочку. Windows Script Host не интегрирован с командной строкой и сам по себе представляет потенциальную опасность – его использует достаточно большое количество вредоносных программ.

Попытки улучшить состояние дел в области управления и администрирования Windows с помощью командного интерфейса привели не к адаптации чужеродного для системы языка сценариев или созданию супер-утилиты, работающей в DOS, а к появлению Windows PowerShell – новой командной оболочки. По некоторым данным, ее появление связано с использованием платформы .NET при создании командного интерфейса для WMI. В данный момент PowerShell является отдельным приложением, который можно установить на любую систему, использующую платформу .Net 2.0 (Windows XP, Vista, Server 2003). Начиная с Server 2008, PowerShell будет являться встроенным компонентом Windows-систем. Если же у вас не Server 2008, для знакомства с PowerShell предварительно необходимо будет его загрузить (возможно, вам понадобится и установка .NET).

Что такое Powershell?

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

Знакомство с PowerShell

Запустив PowerShell, вы не обнаружите поначалу никаких различий между ним и cmd.exe (разве что цвет фона окна у PowerShell по умолчанию — синий). Более того, вскоре вы обнаружите, что операции копирования/вставки в PowerShell реализованы также безобразно, как и в cmd.exe. Но первое впечатление о схожести этих оболочек, скажем так, не совсем соответствует действительности.

То обстоятельство, что работа оболочки PowerShell основана на .NET Framework, является главным ее отличием от предыдущих командных оболочек Windows. PowerShell полностью объектно-ориентирована. Результатом выполнения команды в PowerShell является не некий «текст сам по себе», а объект платформы .NET. Этот объект представляет собой собственно данные и имеет набор присущих ему свойств и методов.

Внутренние команды (точнее, командные структуры) для работы с объектами в PowerShell называются командлетами. Для них придумано специальное единообразное именование в виде комбинации действие-цель. Например, для получения данных используется действие “set”, для получения – “get”, для вывода — “out” и т. д. Цель – это тип объекта, к которому будет применено действие. Командлеты можно рассматривать как мини-программы, исполняемые в среде PowerShell. Для повышения функциональности можно создавать собственные командлеты или устанавливать командлеты сторонних разработчиков. Кроме командлетов, PowerShell позволяет выполнять функции, внешние сценарии (хранятся в файлах с расширением ps1) и внешние исполняемые файлы.

В состав PowerShell включена довольно обширная справочная система. Для начала работы с ней можно выполнить команду Get-Help.

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

Параметры

Строго говоря, следуя духу единообразного именования в PowerShell, все передаваемые командлету имена параметров должны следовать за символом «-». Однако для простоты написания названия некоторых параметров можно опускать. Например, для вызова справки по командлету Get-Content вместо полного указания

Get-Help –name Get-Content

можно ввести команду

Get-Help Get-Content

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

Get-Help Get-Content –Detailed

Конвейер

В PowerShell реализован механизм передачи данных от одного процесса другому или вывод их в файл. Поскольку, как отмечалось выше, PowerShell оперирует не текстом, а объектами, при перенаправлении элементом обмена информации является объект, вместе со своей структурой. Такая возможность позволяет оперировать с объектами — отбирать их по заданному фильтру, сортировать, группировать их и т. д. Для организации такого конвейера (в документации на английском языке используется термин pipeline — трубопровод или канал) в тексте сценария используется знак вертикальной черты. При обнаружении такого знака интерпретатор передает объекты от одного командлета другому в качестве входных параметров.

В качестве примера конвейера и возможности получать доступ к свойствам передаваемых по нему объектов, приведем следующую ситуацию. Для проверки, не выполняются ли на компьютере некие подозрительные программы, мы хотим получить список всех запущенных процессов, получить пути и названия файлов, их запускающих, а также посмотреть дату создания таких файлов. В дополнение, отсортируем такой список по дате создания в убывающем порядке и отберем 10 наиболее «свежих» из них. Добавим к выводной информации также время последней модификации файла. Процессы с именами «System» и «Idle» из рассмотрения исключим, так как они не содержат пути к файлам.

Как говорится, хорошо сформулированный вопрос — уже половина решения. Взгляните:

Get-Process | 
where-Object {"System", "Idle" -notContains $_.Name} | 
Get-Item | Sort CreationTime -desc | 
Select Directory, Name, CreationTime, LastWriteTime -first 10

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

Рассмотрим действия кода «по шагам». Сначала мы получаем список процессов с помощью командлета Get-Process. Эти данные передаются по конвейеру далее и фильтруются по условиям, заданным в where-Object (мы откидываем процессы с именами «System» и «Idle»).

Следующий элемент конвейера — Get-Item возвращает атрибуты отобранных объектов. Осталось их отсортировать (время создания в убывающем порядке) и выбрать интересующие нас значения (имена папки и исполняемого файла, время создания и последней модификации файла). Последний параметр, -first 10 указывает, что выводиться будут лишь первые 10 элементов из списка объектов. Попробуем выполнить:

Замечательно, то что надо. Однако при попытке выполнить тот же код в среде Windows XP или Server 2003 обнаружилось, что там это выглядит не столь гладко:

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

Get-Process | Select Path

выяснилось, что пути двух процессов — winlogon и csrss — в Windows XP и Server 2003 PowerShell интерпретирует как \??\C:\WINDOWS\system32\. За разъяснением такого поведения я обратился к Василию Гусеву, специалисту по PowerShell. Он пояснил, что эти процессы не используют Win32API, и столь разная реакция на них в XP/Vista со стороны .NET, вероятно, вызвана различием платформ этих операционных систем.

Решив, что использовать механизмы обработки ошибок (в части обхода «непонятного» пути с подавлением вывода сообщения об ошибке) или исключения из списка процессов winlogon и csrss в данном случае не годится (возможно, они инфицированы, а дату их модификации в результатах мы уже не увидим), команды были изменены следующим образом:

Get-Process | 
ForEach-Object {
  if ($_.Path -ne $NULL )
  {
    Get-Item ($_.Path -replace "\\\?\?\\", "")
  }
} | Sort CreationTime -desc | Select FullName, Name, CreationTime, LastWriteTime -first 10

А читатель может получить некоторое представление об использовании в PowerShell условий и регулярных выражений. Небольшие пояснения к коду. На втором этапе конвейера применен командлет ForEach-Object, позволяющий выполнить заданную операцию для каждого объекта из набора, передаваемого на его вход. Как указывалось выше, текущий объект, над которым выполняется операция, представлен переменной $_. В качестве заданной операции здесь выступает условие вида if (условие){исполняемый код, если условие истинно}. Так же, как и в cmd.exe, для операторов сравнения используются не символы вида < или >, а аббревиатуры — в данном случае это «не равно»(not equal): -ne. Итак, если путь процесса содержит какое-либо значение (в случае с «System» и «Idle» путь просто отсутствует), с помощью функции replace все символы «\??\» в пути будут удалены (пожалуй, более детально затрагивать вопрос регулярных выражений мы пока не будем), а командлет Get-Item предоставит доступ к свойствам текущего процесса. Ну а далее — все, как и в первом примере. Результат выполнения теперь одинаков:

Получение сведений об объектах

Возможно, у читателя уже возник вопрос — а как, вообще говоря, можно узнать, какую информацию можно получить в результате выполнения той или иной команды? Какие действия можно произвести с полученными данными? Например, в вышеописанном случае, откуда можно было узнать, что мы сможем получить дату создания файла? Одним из простых способов анализа объекта, возвращаемого командой, является передача этого объекта на вход командлета Get-Member. Этот командлет выводит сведения о типе объекта и всех его элементов. Как правило, объекты имеют большое количество разнообразных свойств и результатом работы Get-Member может стать весьма объемный текст, который не очень удобно просматривать. В этом случае можно либо разделять информацию на части, либо ее отфильтровывать. Пример получения информации об объекте, возвращаемом командлетом Get-Process, просмотр которой можно осуществлять постранично:

Get-Process | Get-Member | Out-Host -Paging

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

Get-Process | Get-Member -MemberType Properties

выведет лишь свойства объекта, а

Get-Process | Get-Member -MemberType Methods

— лишь его методы. Еще один способ посмотреть свойства объекта — присвоить переменной объект, затем набрать в консоли имя переменной, поставить точку и нажать клавишу Tab. С каждым нажатием клавиши PowerShell будет перебирать и подставлять методы и свойства объекта. Перебор в обратную сторону возможен с помощью сочетания клавиш Shift+Tab.

Безопасность

Как уже отмечалось, использование сценариев VBScript/JScript представляет потенциальную опасность для системы — для их исполнения достаточно щелкнуть по значку мышью. Опасность еще более возрастает, если пользователь вошел под учетной записью, входящей в группу администраторов. В PowerShell скрипт с расширением ps1 невозможно запустить на исполнение с помощью мыши — в системе такой файл будет открыт не в командной оболочке, а в Блокноте. Для запуска сценария необходимо запустить саму оболочку PowerShell, ввести имя файла и нажать клавишу Enter.

В новой оболочке так же невозможна подмена команд. Суть этого приема, применяемого злоумышленниками, заключается в следующем. Обычно у пользователя, не имеющего прав администратора, есть некоторые папки с разрешениями на запись и выполнение файлов. Характерный пример — папка C:\Documents and Settings\имя_пользователя. Вредоносная программа создает в такой папке исполняемый файл с именем, совпадающим с именем команды оболочки или именем исполняемой системной программы. К примеру, я создал в «своей» папке документов ipconfig.vbs, выводящий простое сообщение. Теперь, если, запустив cmd.exe, и находясь в своей папке, я попытаюсь выполнить команду Windows ipconfig, то получу вот такой результат:

Для полноты иллюстрации можно поместить в папку с документами и исполняемый файл, переименованный в нашем случае в ipconfig.exe. Тогда даже при вызове с указанием расширения будет запускаться файл из текущей папки, а не из \system32. С PowerShell такой фокус не пройдет — для вызова скрипта, путь к которому не совпадает с путями, заданными в системной переменной %Path, необходимо явно указать его расположение. Даже в том случае, когда скрипт расположен в папке, являющейся для оболочки текущей, необходимо указать путь в таком виде: .\имя_файла. Точка с обратным слешем указывают интерпретатору на текущую папку.

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

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

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

Также к инструментам, помогающим повысить безопасность при работе с PowerShell, я бы отнес параметры команд из разряда «а что будет, если…». Их два — whatif и confirm. Первый позволяет определить, какое действие и с каким объектом будет произведено, однако само действие реализовано не будет. Что-то вроде моделирования. Второй перед выполнением действия будет запрашивать подтверждения пользователя, и в случае утвердительного ответа — запускать необходимую команду фактически. То есть, такой вид подстраховки.

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

Get-Process | Stop-Process

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

Get-Process | Stop-Process -whatif

ничего страшного не произойдет — просто PowerShell покажет, что бы он сделал, если бы команда выполнялась без ключа -whatif:

Псевдонимы

Оболочка имеет встроенный механизм псевдонимов команд. С одной стороны, псевдонимы используются для упрощения ввода команд. Как правило, в этом случае в качестве псевдонима используется сокращенное наименование командлета (например, gc для Get-Content или fl для Format-List). С другой стороны, этот механизм обеспечивает совместимость интерфейсов различных командных интерпретаторов. К примеру, имея опыт работы с cmd.exe, вы привыкли выводить содержимое папки с помощью команды dir. Выполнение этой команды в PowerShell приведет к тому же результату, хотя на самом деле оболочка вместо псевдонима dir будет выполнять командлет Get-ChildItem. Список всех доступных псевдонимов можно получить с помощью команды Get-Alias. Пользователь может создавать собственные псевдонимы, используя команду Set-Alias.

Диски PowerShell

Так же, как Windows оперирует с данными, используя файловую систему, оболочка PowerShell работает с хранилищами данных, представленных в виде дисков. Физические диски системы являются не единственным встроенным в оболочку видом хранилищ, с которыми обеспечивается взаимодействие. Пользователь может работать с реестром, встроенными переменными и переменными среды, хранилищами сертификатов точно так же, как и с обычными дисками, папками и файлами. Реализация такого взаимодействия и обеспечение абстракций, позволяющих пользователю применять одинаковые команды и методы к различным хранилищам данных, выполняется провайдерами — программами .NET.

Список провайдеров, доступных в данный момент оболочке, можно получить командой Get-PSProvider. Изначально в PowerShell присутствуют следующие «диски» — псевдонимы (Alias), переменные среды (Env), физические диски системы (C, D, и т. д.), функции, системный реестр, внутренние переменные (Variable) и хранилище сертификатов.

Вот пример чтения содержимого ветки реестра HKLM\Software\Microsoft

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

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

# Создаем новый подраздел с именем valks в ветке HKEY_CURRENT_USER\Software
New-Item -path HKCU:\Software\valks
# Добавляем в созданный раздел новый строковый параметр с именем Param1 и значением StringValue
New-ItemProperty -path HKCU:\Software\valks -name Param1 -propertyType String -value StringValue
# Создадим подраздел SubFolder
New-Item -path HKCU:\Software\valks\SubFolder
# Добавляем еще один параметр - Param2 типа DWord и значением 12
New-ItemProperty -path HKCU:\Software\valks -name Param2 -propertyType DWord -value 12
# Получаем список всех параметров
Get-ItemProperty HKCU:\Software\valks
# Получаем значение параметра Param2
Get-ItemProperty HKCU:\Software\valks | Format-list Param2
# Или можем считать раздел в переменную $key
$key = Get-ItemProperty HKCU:\Software\valks
# И вывести значение нужного параметра
Write-Host "Значение параметра Param2: " $key.Param2
# Изменим значение параметра Param2 на 193
Set-ItemProperty HKCU:\Software\valks -name Param2 -value 193
# Изменим название параметра Param1 на Параметр1
Rename-ItemProperty -path HKCU:\Software\valks -name Param1 -newname Параметр1
# Удаляем Параметр1
Remove-ItemProperty HKCU:\Software\valks -name Параметр1
# Удаляем весь подраздел valks
Remove-Item HKCU:\Software\valks

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

function GetAutoexec ($hives) {
  # Если функции не передается входной массив ключей реестра,
  # используем этот:
  $hives = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run", `
  "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", `
  "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run"
  # Выодим заголовок и переносим строку
  Write-Host "Список автозагрузки`n"
  # Начинаем перебирать элементы массива - ветви реестра
  Foreach ($hive in $hives){
    # Выводим название ветви зеленым цветом
    Write-Host "Ветвь $hive" -ForegroundColor Green
    # Проверяем, существует ли ветвь в реестре
    if (Test-Path $hive){
      # Получаем очередной ключ реестра
      [Microsoft.Win32.RegistryKey]$param = Get-Item $hive
      # для каждого ключа...
      foreach ($p in $param){
        # ...получаем список его параметров
        foreach ($key in $p.getvalueNames()){
          # выводим название параметра и его значение
          "Загрузка $key из " + $p.GetValue($key)
        }
      }
    }
    # переносим строку
    Write-Host "`n"
  }
}
# осуществляем вызов самой функции
GetAutoexec

Пользователь может создавать собственные диски, используя существующие провайдеры. Вот пример создания диска PowerShell с именем Win, содержимое которого будет являться корневой папкой C:\Windows:

New-PSDrive -Name Win –PSProvider FileSystem -Root "C:\Windows"

После создания диска PowerShell к нему можно обращаться точно так же , как к обычному диску системы.

Однако необходимо знать, что по завершении сеанса работы с PowerShell он будет автоматически удален. Так же, как и псевдонимы, функции и переменные, созданные пользователем в течение сеанса. Для того, чтобы сохранить перечисленные изменения, необходимо создать профиль PowerShell.

Профили PowerShell

Профиль — это файл с расширением ps1. Фактически, это тот же скрипт, выполняемый оболочкой при ее запуске. Профили в оболочке не создаются автоматически — они должны быть созданы пользователем самостоятельно. Созданные профили будут загружаться при каждом запуске PowerShell, если политикой выполнения разрешено загружать конфигурационные файлы. Возможна обработка до четырех различных профилей. Расположение файлов в порядке последовательности их загрузки:

  • %windir%\system32\WindowsPowerShell\v1.0\profile.ps1 — профиль, применяемый ко всем пользователям и оболочкам
  • %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1 — профиль, применяемый ко всем пользователям только оболочки PowerShell
  • %UserProfile%\My Documents\WindowsPowerShell\profile.ps1 — применяется для текущего пользователя во всех оболочках
  • %UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 — применяется для текущего пользователя только в оболочке PowerShell

Под различными оболочками здесь нужно учитывать то обстоятельство, что PowerShell может оказаться не единственным приложением, использующим файлы профилей ps1. Некоторые интегрированные среды разработки (IDE) также могут использовать их. Один из характерных примеров — инструмент PowerGUI, разработанный Quest Software, предоставляющий средства графического интерфейса для работы с PowerShell.

Путь к профилю текущего пользователя только оболочки PowerShell хранится во встроенной переменной $profile. Для его создания выполните команду:

New-Item -Path $profile -ItemType file -force

После создания его можно открыть любым текстовым редактором, например Блокнотом:

notepad $profile

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

Работа с объектами WMI

WMI (Windows Management Interface, интерфейс управления Windows) — набор интерфейсов для управления ОС Windows с помощью специальных компонентов. Возможно управление локальным компьютером, и находящимся в сети. WMI — разновидность Web-Based Enterprise Management (WBEM) и Common Information Model (CIM), разработанная Microsoft. Входит в состав Windows Vista, Windows Server 2003, Windows XP, Windows Me и Windows 2000. Для Windows 95 и Windows 98 доступна в виде отдельно устанавливаемого компонента. Поддерживает использование скриптовых языков, таких как VBScript или Windows PowerShell для управления персональными компьютерами и серверами, работающими под управлением Microsoft Windows.

Объекты WMI являются для PowerShell вполне «родными». Достаточно выполнить команду:

Get-WmiObject -List

чтобы увидеть большое количество классов, обеспечивающих доступ к объектам WMI в оболочке. В случае подключения к WMI на удаленном компьютере, состав классов будет зависеть от ОС и установленных на нем расширений WMI. Для получения сведений о доступных классах на удаленной машине, необходимо указать его IP-адрес или имя в качестве параметра:

Get-WmiObject -List -ComputerName Server

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

Если не использовать специальное указание, некоторые сведения не выводятся, видимо из соображений «не захламлять экран». Для получения более детальной информации можно воспользоваться командами форматирования и отбора данных.

PS C:\Documents and Settings\Администратор> Get-WmiObject -Class Win32_OperatingSystem
SystemDirectory : C:\WINDOWS\system32
Organization    : Nrest
BuildNumber     : 3790
RegisteredUser  : Сергей
SerialNumber    : 69889-650-3137304-45684
Version         : 5.2.3790
     
PS C:\Documents and Settings\Администратор> Get-WmiObject -Class Win32_OperatingSystem | 
Format-List Locale, Version, CurrentTimeZone, OSLanguage, InstallDate
     
Locale          : 0419
Version         : 5.2.3790
CurrentTimeZone : 180
OSLanguage      : 1049
InstallDate     : 20081022233211.000000+240

А вот небольшой пример опроса всех компьютеров в локальной сети с адресом 192.168.1.0 и маской подсети 255.255.255.0:

1..254| 
ForEach-Object -Process 
  {
    Get-WmiObject -Class Win32_PingStatus 
    -Filter ("Address='192.168.1." + $_ + "'")
    -ComputerName .
  } |
Select-Object -Property Address,ResponseTime,StatusCode

В первом элементе конвейера генерируется массив чисел от 1 до 254. На втором этапе каждое число из массива подставляется в IP-адрес, который будет пинговаться при помощи средств WMI. Результаты будут выводиться в таблицу с тремя столбцами — адрес хоста, время отклика и статус ответа. В случае ответа хоста возвращается статус с кодом «0».

Заключение

Конечно, в одной статье невозможно описать все возможности PowerShell. К тому же Microsoft продолжает работу над его улучшением — вторая версия должна поддерживать управление удаленными компьютерами непосредственно самой оболочкой. Ожидаются и другие нововведения. Учитывая, что PowerShell будет являться компонентом новых ОС, не приходится сомневаться в том, что сфера его применения в продуктах Microsoft будет только расширяться.

Автор выражает признательность Василию Гусеву за помощь, оказанную при подготовке статьи

POWERSHELL: ЧТО ЭТО ТАКОЕ, ОСНОВНЫЕ И РЕКОМЕНДУЕМЫЕ КОМАНДЫ — УЧЕБНЫЕ ПОСОБИЯ

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

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

В отличие от того, что происходит в CMD, PowerShell предоставляет нам надежный интерфейс сценариев со специальными функциями, где вы можете запускать их для выполнения различных процессов в системе Windows. С такой интерактивной командной строкой вы можете запускать команды для автоматизации различных задач.

Этот инструмент уже был совместим с Windows XP, но для его использования его необходимо было загрузить и установить. Теперь с Windows 10 Powershell уже предустановлен и имеет значительный обзор, чтобы облегчить доступ.

Указатель содержания

Что такое Windows Powershell?

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

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

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

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

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

Инструмент PowerShell можно быстро открыть с помощью функции «Выполнить», включенной в Windows.

  • Для этого одновременно нажмите клавиши Windows + R. В открывшемся окне «Выполнить» введите «PowerShell» и нажмите кнопку «ОК» или нажмите клавишу «Ввод».

Другой доступ к Powershell — использование поисковой системы, предлагаемой Cortana, расположенной в нижней левой части экрана, из которой вы можете искать этот инструмент.

Основные команды PowerShell (учебник)

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

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

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

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

Get-Command

Если вы хотите знать все командлеты, которые предлагает PowerShell, вы можете сделать это, набрав эту команду в консоли.

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

Чтобы получить этот список команд, необходимо написать «Get-Command», за которым следует определенный параметр, с помощью которого информация будет получена из соответствующего командлета. Например, если мы напишем в Powershell «Get-Command * -help *», мы увидим серию команд, которые принимают параметр «-help» .

Если вы добавите звездочку к каждой стороне параметра, как мы сделали в примере, вы получите все возможные комбинации, которые использует командлет Get-Command, когда они сопровождаются «-help».

Введите «Get-Command -Name» в консоли «Мы получаем набор команд, которые включают это конкретное имя. Может случиться, что вы не помните или не знаете правильное имя командлета. В этой ситуации вы можете включить две звездочки на каждой стороне имени, как упомянуто выше, например, «Get-Command -Name * set *», чтобы вы могли увидеть список командлетов, которые включают термин «set» в твое имя

Get-Host

Выполнение этой команды дает вам версию Windows PowerShell, которую использует система.

Get-History

Эта команда предоставляет историю всех команд, которые были выполнены во время сеанса PowerShell и которые в настоящее время выполняются.

Get-Random

Выполнение этой команды дает случайное число от 0 до 2 147 483 646.

Get-Service

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

Чтобы использовать этот командлет, введите «Get-Service» в консоли, используя любой из дополнительных параметров, в синтаксисе, подобном следующему примеру:

Get-Service | Where-Object {$ _. Status -eq «Running»}

При этом услуги выполняются в системе. Если эта команда выполняется без какого-либо параметра, будет представлен список всех служб с соответствующими состояниями (например, «Работает» или «Остановлен»).

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

Get-Help

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

Если вы используете PowerShell в течение короткого времени, очень вероятно, что вы окажетесь дезориентированы и столкнетесь с некоторыми трудностями; В этих условиях Get-Help станет вашим руководством, поскольку эта команда предоставляет необходимую документацию о командлетах, функциях, командах и сценариях.

Точно так же его использование совсем не сложно: вам просто нужно написать «Get-Help» вместе с командлетом, о котором вы хотите узнать больше деталей. Чтобы проиллюстрировать его использование, мы могли бы искать дополнительную информацию из командлета «Get-Process», и в этом случае было бы достаточно написать «Get-Help Get-Process».

Чтобы иметь более четкое представление о том, как Get-Help работает в Windows PowerShell, просто запустив эту команду, мы увидим описание вместе с кратким объяснением того, как ее использовать.

Get-Date

Чтобы быстро узнать, какой день был в определенный день в прошлом, с помощью этой команды вы получите точный день. Например, чтобы узнать, какой день был 20 мая 2009 года, вам нужно написать в Powershell:

«Get-Date 05.05.2009», ввод даты в формате «dd.mm.aa». В случае выполнения Get-Date один, он даст нам текущую дату и время.

PS C: \ Users \ MiguePR> Get-Date Суббота, 27 июля 2019 г. 12:00:40

Copy-Item

С помощью этой команды вы можете копировать папки или файлы.

Если вы хотите сделать копию файлов и каталогов на вашем накопителе или если вам нужно скопировать ключи или записи реестра, то Copy-Item — это правильный командлет. Она работает очень похоже на команду «cp», которая включена в командную строку, хотя она намного лучше.

Для этого команда Copy-Item должна использоваться для копирования и изменения имени элементов с использованием той же команды, с помощью которой можно установить новое имя для указанного элемента. Если вы хотите скопировать и переименовать файл «ProfesionalReview.htm» в «Proyectitosbuenos.txt», напишите:

Копия-элемент «C: \ Proyectos.htm» -Предназначение «C: \ MyData \ Proyectos.txt».

Invoke-Command

Если вы хотите запустить скрипт или команду PowerShell (локально или удаленно, на одном или нескольких компьютерах), «Invoke-Command» будет вашим лучшим вариантом. Он прост в использовании и поможет вам управлять пакетными компьютерами.

Вам нужно ввести Invoke-Command рядом со скриптом или командой с ее точным местоположением.

Invoke-Expression

С Invoke-Expression выполняется другое выражение или команда. Если вы обнаружите, что вводите строку ввода или выражение, эта команда сначала его проанализирует, а затем выполнит. Без этой команды строка не возвращает никаких действий. Invoke-Expression работает только локально, в отличие от Invoke-Command.

Чтобы использовать эту команду, выражение-выражение должно быть записано вместе с выражением или командой . Например, вы можете установить переменную «$ Command» с помощью команды, которая указывает на командлет «Get-Process». Выполнив команду «Invoke-Expression $ Command», «Get-Process» будет действовать так же, как и командлет на локальном компьютере.

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

Invoke-WebRequest

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

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

(Invoke-WebRequest — Uri ‘https://wwww.ebay.com’). Ссылки

В этом случае будут получены ссылки с сайта eBay.

Set-ExecutionPolicy

Хотя мы можем создавать и запускать сценарии (.ps1) из PowerShell, мы ограничены из-за проблем безопасности. Однако это можно изменить с помощью категории безопасности с помощью командлета Set-ExecutionPolicy.

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

  • ОграниченоВсе подписаноУдалено подписаноНеограничено

Например, если мы хотим установить ограниченный уровень безопасности, мы должны использовать:

Set-ExecutionPolicy -ExecutionPolicy Restricted

Get-Item

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

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

На другой стороне Get-Item находится командлет Remove-Item, который позволяет удалить указанный элемент.

Remove-Item

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

Командлет Remove-Item позволяет удалять элементы из определенных мест с использованием определенных параметров. В качестве примера можно удалить файл «Finanzas.txt» с помощью следующей команды:

Удалить элемент «C: \ MyData \ Finance.txt»

Get-Content

Когда вам нужно все, что содержит текстовый файл с точки зрения содержимого по определенному пути, откройте его и прочитайте его с помощью текстового редактора, например Блокнота. Используя Windows PowerShell, вы можете использовать команду Get-Content, чтобы просмотреть содержимое файла, не открывая его.

Например, можно получить 20 строк текста, включенных в файл «Proyectos.htm», для которого вы можете написать:

Get-Content «C: \ Proyectos.htm» -TotalCount 20

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

Если используется отдельно, Get-Content не очень полезен. Но его можно смешивать с более конкретными командлетами, чтобы получить более точные результаты.

Set-Content

С помощью этого командлета можно хранить текст в файле, что-то похожее на то, что можно сделать с помощью «echo» в Bash. При использовании в сочетании с командлетом Get-Content вы можете сначала просмотреть содержимое определенного файла, а затем скопировать его в другой файл с помощью Set-Content.

Например, вы можете использовать командлет Set-Content, чтобы добавить или заменить содержимое файла другим содержимым. Наконец, его можно объединить с вышеупомянутой командой, чтобы сохранить его под новым именем (example.txt) следующим образом:

Get-Content «C: \ Proyectos.htm» -TotalCount 30 | Set-Content «Example.txt»

Get-Variable

Если вы в PowerShell пытаетесь использовать переменные, это можно сделать с помощью командлета Get-Variable, с помощью которого вы сможете просматривать эти значения. Эта команда отображает значения в таблице, из которых можно использовать, включать и исключать символы подстановки.

Чтобы использовать его, вам просто нужно написать «Get-Variable» вместе с его параметрами и другими параметрами. Например, если вы хотите узнать значение переменной «скидка», напишите следующее:

Получить-Переменная -Название «скидка»

Set-Variable

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

Set-Variable -Name «discount» -Value «Значение установлено здесь»

Get-Process

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

Командлет Get-Process имеет некоторое сходство с Get-Service, хотя в этом случае он предоставляет информацию о процессах.

Запуск процесса

С помощью этого командлета Windows PowerShell значительно упрощает запуск процессов на компьютере.

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

Start-Process -FilePath «calc» –Verb

Stop-Process

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

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

Stop-Process -Name «calc»

Start-Service

Если вам нужно запустить службу на ПК, используйте командлет Start-Service, указанный в этом случае, и он действует аналогично, даже если эта служба отключена на ПК.

Для запуска службы поиска Windows используется следующий синтаксис:

Старт-Сервис -Имя «WSearch»

Stop-Service

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

Стоп-Сервис -Название «Wsearch»

С этим заказом вы остановите службу «Поиск Windows».

выход

Вы можете выйти из PowerShell с помощью команды Exit.

Заключение о Windows PowerShell

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

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

Хотя это команды, которые вы используете спорадически, знание того, как они работают и для чего они нужны, имеет свои преимущества, учитывая, что Microsoft в настоящее время больше, чем когда-либо, сосредоточена на PowerShell.

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

Что такое PowerShell? — PowerShell

  • 2 минуты на чтение

В этой статье

PowerShell — это кроссплатформенное решение для автоматизации задач, состоящее из оболочки командной строки, сценария язык и структура управления конфигурацией. PowerShell работает в Windows, Linux и macOS.

Ракушка

PowerShell — это современная командная оболочка, которая включает в себя лучшие функции других популярных оболочек.В отличие от Большинство оболочек, которые принимают и возвращают только текст, PowerShell принимает и возвращает объекты .NET. Оболочка включает в себя следующие функции:

Язык сценариев

В качестве языка сценариев PowerShell обычно используется для автоматизации управления системами. это также используется для создания, тестирования и развертывания решений, часто в средах CI / CD. PowerShell построен на .NET Common Language Runtime (CLR). Все входы и выходы являются объектами .NET. Не нужно разбирать текстовый вывод для извлечения информации из вывода.Язык сценариев PowerShell включает следующие характеристики:

Управление конфигурацией

PowerShell Desired State Configuration (DSC) — это структура управления в PowerShell, которая позволяет управлять инфраструктурой предприятия с помощью конфигурации в виде кода. С DSC вы можете:

  • Создание декларативных конфигураций и пользовательских сценариев для повторяемых развертываний
  • Принудительно установить параметры конфигурации и сообщить о отклонении конфигурации
  • Развертывание конфигурации с использованием моделей push или pull

Следующие шаги

Начало работы

Вы новичок в PowerShell и не знаете, с чего начать? Взгляните на эти ресурсы.

PowerShell в действии

Посмотрите, как PowerShell используется в разных сценариях и на разных платформах.

Как использовать документацию PowerShell — PowerShell

  • 2 минуты на чтение

В этой статье

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

  • PowerShell 7.2 (предварительная версия)
  • PowerShell 7.1 (текущая)
  • PowerShell 7.0 (LTS)
  • PowerShell 5.1

Поиск статей и выбор версии

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

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

Используйте средство выбора версии вверху страницы, чтобы выбрать нужную версию PowerShell.

Вы можете проверить версию PowerShell, которую вы используете, проверив $ PSversionTable.PS Версия ценить. В следующем примере показаны выходные данные для Windows PowerShell 5.1.

  $ PSVersionTable.PSVersion
  
  Major Дополнительная редакция сборки
----- ----- ----- --------
5 1 19041 1237
  

Если вы новичок в PowerShell и вам нужна помощь в понимании синтаксиса команд, см. about_Command_Syntax.

Поиск статей по предыдущим версиям

Документация для более старых версий PowerShell находится в нашем архиве. Сайт предыдущих версий.

Этот сайт содержит документацию по следующим темам:

  • PowerShell 3.0
  • PowerShell 4.0
  • PowerShell 5.0
  • PowerShell 6
  • Рабочие процессы PowerShell
  • Веб-доступ PowerShell

Введение — PowerShell | Документы Microsoft

  • 2 минуты на чтение

В этой статье

Это содержимое первоначально появилось в книге PowerShell 101 Майка Ф. Роббинса.Мы благодарим Майку за предоставленное нам разрешение на повторное использование его материалов здесь. Контент был отредактирован с оригинальная публикация. Вы все еще можете получить оригинальную книгу в Leanpub по адресу PowerShell 101.

Для кого эта книга?

Это книга начального уровня для всех, кто хочет изучить PowerShell.

В этой книге рассматривается PowerShell версии 5.1, работающий в Windows 10 и Windows Server 2016 в Среда домена Microsoft Active Directory. Однако основные концепции применимы ко всем версиям PowerShell работает на любой поддерживаемой платформе.

Об этой книге

Эта книга представляет собой сборник того, что мне хотелось бы, чтобы кто-нибудь сказал мне, когда я начал учиться. PowerShell вместе с советами, приемами и передовыми практиками, которые я узнал при использовании PowerShell. за последние 10 лет.

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

Об авторе

Майк Ф. Роббинс — бывший Microsoft MVP, соавтор Windows PowerShell TFM 4th Edition и Соавтор книги PowerShell Deep Dives . Майк был решительным сторонником Сообщество PowerShell, и теперь он является ведущим писателем по Azure PowerShell в Microsoft. Он ведет блог на mikefrobbins.com и его можно найти в твиттере @mikefrobbins.

Лабораторная среда

Примеры в этой книге были разработаны и протестированы на Windows 10 Anniversary Edition (сборка 1607). и Windows Server 2016 с использованием PowerShell версии 5.1. Если вы используете другую версию PowerShell или операционной системы, ваши результаты могут отличаться от показанных здесь.

PowerShell: что это такое и что с ним можно делать

В наше время существует несколько способов взаимодействия с компьютерными системами и управления ими, от стандартных методов, таких как вездесущий графический интерфейс пользователя (GUI), до командных линейные интерфейсы (CLI), которые некоторые могут рассматривать как шаг назад к эпохе терминалов и зеленых экранов.Они дополнительно дополняются дополнительными методами, такими как вызовы интерфейса прикладного программирования (API) и веб-интерфейсы управления.

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

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

PowerShell… так что это?

PowerShell — это платформа Microsoft для создания сценариев и автоматизации. Это и язык сценариев, и интерактивная командная среда, построенная на .NET Framework. Чтобы лучше понять, что такое PowerShell, полезно понять, как он используется.Один из авторитетных источников по этой теме, Эд Уилсон, определяет PowerShell следующим образом:

Эд Уилсон

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

В этом определении много чего, поэтому давайте разберемся с ним немного подробнее.

Что такое объектно-ориентированное?

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

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

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

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

Что такое командлеты (или командлеты)?

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

Чтобы помочь в использовании командлетов, PowerShell следует шаблону именования глагол-существительное, чтобы помочь пользователям понять назначение команд.Примеры глаголов включают New, Set, Get, Add и Copy. У Microsoft есть задокументированный список утвержденных глаголов и их предполагаемого использования, чтобы помочь поддерживать единообразие на всей платформе. При размещении вместе с существительными вы получаете такие командлеты, как:

Get-Help
Get-Process
Get-Member

Как используется PowerShell?

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

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

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

Когда дело доходит до создания сценариев PowerShell, возможность многократно выполнять согласованные задачи и шаги является огромным преимуществом для ИТ-администраторов. PowerShell автоматизирует многие задачи, от полного развертывания нового сервера в виртуальной среде до настройки новых почтовых ящиков в Microsoft 365 и множества дополнительных функций между ними.

В своей простейшей форме сценарии PowerShell представляют собой набор команд PowerShell. Это упрощает переход от работы с отдельными командами в интерфейсе командной строки к полностью автоматизированному сценарию.

Что можно делать с PowerShell?

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

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

Графические интерфейсы пользователя

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

PowerShell тесно интегрирован почти во все продукты Microsoft. Фактически, в популярных продуктах, таких как Microsoft 365 и Server 2016, есть определенные действия, которые нельзя выполнить с помощью графического интерфейса, и можно выполнить только с помощью PowerShell. Возможность автоматизации с помощью PowerShell на 100% необходима для выполнения определенных задач, поэтому понимание этого полезного навыка для многих ИТ-специалистов.

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

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

Документация PowerShell:
https://docs.microsoft.com/en-us/powershell/

сценариев PowerShell:
https://github.com/powershell
https://www.powershellgallery.com/

Блоги

PowerShell:
https://blogs.technet.microsoft.com/heyscriptingguy/
https://kevinmarquette.github.io/
https://www.planetpowershell.com/

Что такое PowerShell и зачем его использовать?

Многие технические специалисты переносят повторяющиеся задачи и управляют вещами с помощью метода «укажи и щелкни», хотя они могли сэкономить , так что много времени за счет автоматизации.PowerShell, оболочка и язык сценариев от Microsoft, может помочь. Что такое PowerShell?

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

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

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

Что такое PowerShell?

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

Созданный на основе таких языков, как VBScript и пакетные файлы, PowerShell был разработан для обеспечения первоклассного интерфейса командной строки и языка сценариев, которые легко понять и использовать.

PowerShell является объектно-ориентированным и сильно зависит от объектов, подобных объектно-ориентированному программированию (ООП). Практически все в PowerShell — это объект, о котором вы скоро узнаете больше.

PowerShell — это две вещи; это оболочка командной строки, которая позволяет пользователям запускать команды из командной строки, аналогичной устаревшей командной строке (cmd.exe). Это также надежный язык сценариев, который может создавать инструменты и автоматизировать практически все, что вы можете придумать.

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

Эволюция PowerShell

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

С 2002 по 2005 год PowerShell назывался Monad и все еще находился в стадии ранней разработки. В 2006 году слово «PowerShell» дебютировало с выпуском PowerShell 1.0. С этого момента команда PowerShell в Microsoft использовала манифест в качестве руководства для постоянного добавления новых функций в PowerShell.

Первоначально доступный только как часть Windows Management Framework, до Windows XP и Windows Server 2012 PowerShell устанавливался отдельно. Но в Windows 7 и Windows Server 2012 R2 PowerShell стал установлен по умолчанию во всех операционных системах Windows.

Переход к кросс-платформе

С 2006 по 2016 год PowerShell был доступен только в Windows под названием Windows PowerShell до версии 5.1. PowerShell был построен на основе .NET Framework, который был доступен только в Windows. В 2016 году Microsoft решила сделать смелый шаг и открыть PowerShell с открытым исходным кодом на GitHub, где она отказалась от «Windows» и перешла на «PowerShell» в шестой версии.

С тех пор PowerShell доступен не только в Windows, но и в macOS, Linux и других операционных системах * nix, где он используется.NET Core.

PowerShell / PowerShell Core — это обратно совместимая оболочка Windows PowerShell. Обе версии могут быть установлены рядом.

Будущее PowerShell

По состоянию на 2021 год PowerShell уже претерпел наибольшие усилия по развитию. Команда PowerShell в Microsoft управляет продуктом, добиваясь того, чего намеревался достичь «Манифест монады». Хотя большинство, если не все, новаторские функции уже выпущены, Microsoft и сообщество разработчиков ПО с открытым исходным кодом все еще активно поддерживают их.

Команды

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

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

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

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

Используйте командлет Get-Command , чтобы обнаружить все доступные команды в вашей системе.

Синтаксис команды

Одной из уникальных частей PowerShell является синтаксис. PowerShell имеет синтаксис, который читается так, как он выполняется для ИТ-специалистов.

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

Названные в синтаксисе Глагол-Существительное , имена команд всегда начинаются с глагола, за которым следуют тире и существительное.

A Хотя PowerShell не требует от вас использования синтаксиса «глагол-существительное» для пользовательских функций, Microsoft настоятельно рекомендует это делать.

Глаголы

Самая важная часть имени командлета — это глагол.Эта часть должна точно описывать, какое действие выполняет командлет. Например, Get-Content получает текст из файла, а Copy-Item копирует файл. Вы даже можете найти все «одобренные» глаголы, выполнив команду Get-Verb в консоли PowerShell, как показано ниже.

Запуск Get-Verb для поиска утвержденных глаголов

Существительные

В отличие от глаголов, в PowerShell нет «одобренных» существительных. Объект, над которым выполняется действие, может сильно различаться.Но PowerShell действительно отделяет глагол от существительного внутри движка. Вы можете увидеть пример этого, выполнив команду Get-Command с параметром Noun .

Указав параметр Существительное и предоставив значение A * . PowerShell «разделит» все свои доступные команды на глагол и существительное и покажет вам только команды с существительным, начинающимся с A.

Запуск Get-Command, чтобы найти все существительные, начинающиеся с A

Модули

В предыдущем разделе вы видели результат выполнения команды Get-Command .В этих выходных данных вы можете увидеть столбец с именем Source . Чтобы разделить команды, PowerShell требует, чтобы все командлеты были частью «корзины» или модуля.

Модули — это группы команд, объединенных на основе общей функции. Например, многие основные командлеты PowerShell находятся в модуле Microsoft.PowerShell.Management , а такие командлеты, как Write-Host и Write-Debug , находятся в модуле Microsoft.PowerShell.Utility .

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

Вы можете найти все модули, установленные на вашем компьютере, запустив Get-Module -ListAvailable . Команда Get-Module находит все модули, которые были загружены (импортированы в текущий сеанс). Параметр ListAvailable сообщает Get-Module также искать модули, установленные в вашей файловой системе, но не импортированные.

Поиск всех модулей PowerShell, доступных в Get-Module

Используйте команду Find-Module для поиска в галерее PowerShell и обнаружите тысячи других модулей.

Объектов

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

Чтобы понять PowerShell, вы должны сначала понять, как работают объекты.

Связанный: Общие сведения об объектах PowerShell

Объекты реального мира

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

Каждая кошка — это объект с определенными атрибутами, которые ее описывают. Эти атрибуты являются свойствами.

Объекты

Итак, кошка — это не какой-то неподвижный объект. Он делает что-то вроде бега, прыжков, моргания или мурлыканья. Кошка (объект) совершает какое-то действие. В PowerShell объект cat имеет различные методы , которые выполняют действия, чтобы выполнял какие-либо действия.

Типы объектов

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

Кошка — это прообраз, собака — это прообраз, а машина — это прообраз. Каждый объект имеет определенный набор атрибутов и действий, которые он может выполнять.

Свойства и методы объекта

Если кошку можно представить себе как объект со свойствами и методами, как вы представите это в коде? Чтобы объяснить это, давайте сначала начнем с объекта обычного типа — строки.

Если вы введете приведенный ниже текст в консоль и нажмете Enter, он вернет вам значение, но в фоновом режиме происходит больше.

  «Это обычный текст и его объект»  

Когда вы нажимаете Enter на клавиатуре, PowerShell создает объект, а именно объект с типом System.String . Этот строковый объект имеет различные «члены», что в PowerShell обозначает все свойства и методы.

Вы можете увидеть все члены, назначенные этому строковому объекту, по конвейеру (подробнее об этом позже), вывод строки в командлет Get-Member .Командлет Get-Member — это удобная команда, которая проверяет объекты PowerShell.

Некоторые свойства и методы членов для объекта String

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

  «Это обычный текст и его объект». Длина  

Вы можете видеть, что PowerShell возвращает значение 39 , что указывает на то, что в этом скрипте проблемы с 39 символами.

39 проблема персонажей

Аналогичным образом можно было бы сослаться на метод объекта. Но вместо набора буквенно-цифровых символов методы требуют использования скобок.

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

Строковый объект имеет метод под названием Upper () , который использует все символы в строке с заглавной буквы, как показано ниже.

  «Это обычный текст и его объект».Сверху ()  
Способ сделать все буквы заглавными

Подробнее о Get-Member, свойствах и методах на веб-сайте Microsoft.com

PSDприводы

Уникальной особенностью этой оболочки является концепция PSDrive. Диски PowerShell или PSD-диски — это «диски», к которым вы обычно привыкли, например C: \, но с изюминкой. Типичный C: \ — это диск с файловой системой, состоящий из папок с файлами внутри. PSDrive может быть этим, но также может быть кустом реестра, Active Directory или контейнером сертификатов.

PSDrives обеспечивают абстракцию от фактического источника данных и позволяют иерархически перемещаться по нескольким типам данных. Используйте командлет Get-PSDrive , чтобы найти все доступные диски на вашем компьютере.

Get-PSDrive

PowerShell имеет набор командлетов с существительным Item , ChildItem и ItemProperty . Каждый из этих командлетов, работающих с любым диском PSDrive.

Набор командлетов

Например, чтобы прочитать куст реестра, вы можете запустить Get-ChildItem -Path HKLM: \ или, возможно, вы хотите найти атрибуты файла.Для этого вы должны использовать Get-ItemProperty -Path C: \ file.txt .

Обработка ошибок

Как и все другие языки программирования, PowerShell также поддерживает обработку ошибок или исключений. Используя обработку ошибок .NET, такую ​​как попробуйте , catch и унаследованные команды trap , вы можете перехватывать исключения по мере их появления в ваших скриптах.

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

Например, возможно, вам нужно прочитать содержимое текстового файла по адресу C: \ NonExistingFile.txt , а файл не существует. По умолчанию Get-Content возвращает ошибку мягкого завершения, если файл не существует. Ошибки мягкого завершения не вызывают исключения в блок catch .

Ошибки мягкого завершения просто возвращают ошибку в консоль и завершают работу, как показано ниже.

  Попробовать {
    Get-Content -Path "C: \ NonExistingFile.txt"
} Ловить{
    Write-Host «Я обнаружил ошибку и поймал ее ..» -ForegroundColor Yellow
}  
Get-Content

Все командлеты PowerShell поставляются с параметром ErrorAction для переопределения поведения командлета по умолчанию. Возможно, я хочу, чтобы PowerShell перешел в мой блок catch , когда файл не найден.Для этого Get-Content потребуется вернуть исключение или жестко прерывающуюся ошибку.

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

  Попробовать {
    Get-Content -Path "C: \ NonExistingFile.txt" -ErrorAction Stop
} Ловить{
    Write-Host «Я обнаружил ошибку и поймал ее ..» -ForegroundColor Yellow
}  
Стоп-значение с помощью ErrorAction

Трубопровод

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

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

Например, возможно, у вас запущен браузер Mozilla Firefox, который работает под процессом firefox . В PowerShell есть встроенный командлет Get-Process для обнаружения запущенных процессов.

  Get-Process firefox  

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

  $ process = Get-Process firefox
Остановить процесс $ процесс  

Но, поскольку командлет Stop-Process принимает ввод через конвейер, он имеет логику, позволяющую понять, что процесс предназначен для firefox, и может остановить этот процесс, как показано ниже.

  # Найдите процесс с именем Firefox и передайте его команде Stop-Process, которая его завершает
Get-Process firefox | Остановить процесс  
Трубопровод

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

Удаленная связь

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

Связанный: Удаленное взаимодействие PowerShell: полное руководство

Например, возможно, вы хотите остановить службу Центра обновления Windows на локальном компьютере. Вы можете сделать это с помощью Stop-Service -Name wuauserv .

Чтобы запустить ту же команду на удаленном компьютере, «оберните» эту команду в блок сценария и передайте этот блок сценария команде Invoke-Command .

  Invoke-Command -ComputerName SRV -Scriptblock {Stop-Service -Name wuauserv}  

Связано: Invoke-Command: лучший способ запуска удаленного кода

PowerShell также имеет другие связанные команды удаленной связи, такие как Test-Connection и Test-NetConnection , для проверки связи, определения состояния порта и запуска трассировки на удаленных компьютерах.

  Test-NetConnection -ComputerName www.google.com -Port 80  
Тестирование сетевого подключения с помощью PowerShell

Заключение

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

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

Учебное пособие по созданию сценариев Windows PowerShell для начинающих

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

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

Получите бесплатный видеокурс PowerShell и Active Directory Essentials

Я бы порекомендовал это как новым, так и опытным пользователям PowerShell.Создание инструмента AD — это отличный учебный опыт.

Что такое язык PowerShell? Язык

PowerShell — это проприетарный синтаксис программирования высокого уровня, разработанный Microsoft для ключевой цели, позволяющей системным администраторам автоматизировать действия и конфигурации. Язык основан на объектно-ориентированных стандартах, но может использоваться только в среде Windows. Он является частью платформы .NET и обычно имеет код C #, лежащий в основе его функций, хотя знание C # не является необходимым условием для изучения PowerShell.Ближайшим сравнением с языком PowerShell является Perl, который используется в аналогичных сценариях в средах Linux.

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

Что такое PowerShell ISE?

Новые функции командлетов PowerShell можно писать в любом текстовом редакторе или текстовом редакторе.Однако последние версии операционной системы Windows включают инструмент под названием PowerShell ISE (Integrated Scripting Environment), который делает создание сценариев еще проще и надежнее.

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

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

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

Использование и функции Windows PowerShell

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

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

Запуск PowerShell

В Windows 10 поле поиска — один из самых быстрых способов запустить PowerShell.На панели задач в текстовом поле поиска введите powershell. Затем щелкните или коснитесь результата «Windows PowerShell».

Чтобы запустить PowerShell от имени администратора, щелкните правой кнопкой мыши (для пользователей с сенсорным экраном: коснитесь и удерживайте) результат поиска Windows PowerShell, затем щелкните или коснитесь «Запуск от имени администратора».

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

Основные функции PowerShell

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

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

Перед запуском сценариев PowerShell

Сценарии

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

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

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

Get-ExecutionPolicy

Вы увидите один из следующих выходов:

  • Ограничено — сценарии выполняться не будут.Это настройка по умолчанию в Windows, поэтому ее нужно изменить.
  • AllSigned — Вы можете запускать только сценарии, подписанные доверенным разработчиком. Вам будет предложено перед запуском любого сценария.
  • RemoteSigned — Вы можете запускать свои собственные сценарии или сценарии, подписанные доверенным разработчиком.
  • Без ограничений — Вы можете запускать любой сценарий, какой захотите. Этот параметр не следует использовать по очевидным причинам.

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

Set-ExecutionPolicy RemoteSigned

Теперь вы готовы приступить к работе.

Как найти команды PowerShell

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

К счастью, прямо в редактор встроено несколько инструментов, которые помогут вам справиться с этим фактом.

Завершение вкладки

Нет необходимости запоминать все команды или точное написание команды. Введите get-c в редактор и нажмите клавишу TAB — вы циклически пройдете по всем командам, начиная с того, что вы уже ввели. Это работает с любым разделом команды, которую вы пытаетесь вызвать, с именем (как показано ниже), а также с флагами и путями, которыми вы манипулируете, чтобы получить желаемый результат.

Get-команда

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

Get-Command

При поиске команд важно помнить, что у них есть синтаксис: VERB-NOUN. Обычно глаголы — это такие вещи, как Get, Set, Add, Clear, Write и Read, а существительные — это файлы, серверы или другие элементы в вашей сети и приложениях.

Get-Command — это инструмент для поиска команд, доступных в вашей системе.

Синтаксис команд PowerShell

Кто-то однажды описал язык сценариев Perl как «исполняемый строчный шум» — невероятно полезный инструмент с чрезвычайно непрозрачным синтаксисом и, соответственно, высокой кривой обучения.

Хотя и не совсем до этого уровня, традиционная командная строка в Windows тоже не за горами. Рассмотрим обычную задачу, например, поиск всех элементов в каталоге, имена которых начинаются со строки «Foo».

CMD: FOR / D / r% G in («Foo *») DO @Echo% G

  • FOR и DO указывают, что это цикл.
  • Флаг / D указывает, что это для каталогов
  • Флаг / r указывает на то, что «Файлы с корневым каталогом».
  • Шаблон, который определяет набор файлов, которые должны быть зациклены, обозначен «in»
  • @Echo указывает скрипту записывать результат каждого цикла и, наконец,;
  • % G является «неявным параметром» и выбран потому, что ранее разработчики уже использовали буквы формата имени пути a, d, f, n, p, s, t и x.Итак, начало с G является традиционным, поскольку дает вам наибольший набор неиспользуемых букв для возвращаемых переменных (G, H, I, J, K, L, M) — другими словами, это уродливый прием.

Сравните это с эквивалентом PowerShell:

PowerShell: Get-ChildItem -Path C: \ Example -Filter ‘Foo *’

Функционально результат тот же, но даже в этом довольно тривиальном примере гораздо легче понять, что происходит. Сразу видно, что делают все элементы в команде и как их можно изменить.Единственная немного неочевидная вещь здесь — это подстановочный знак * (присутствует в обоих примерах), который указывает, что шаблон, используемый для сопоставления элементов, должен начинаться с «Foo» и заканчиваться чем-либо еще.

С этого момента ситуация становится все лучше, так как, скажем, вы хотите знать, как идентифицировать только файлы (а не каталоги) в пути? Вы можете откопать документы, погуглить и попытаться разобраться с этим с помощью версии командной строки, или, если вы используете PowerShell, введите «-» и нажмите клавишу табуляции, прокручивая параметры флага, пока не появится очевидное решение. .

Одна большая строка против свойств объекта

Серверы никому не нужны, если они не в сети. Вот почему люди тратят слишком много времени, притворяясь операторами гидролокатора на подводной лодке, и пингуют их (да, именно поэтому это так называется).

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

В

PowerShell есть команда, аналогичная ping, но возвращающая структурированные данные, упрощающие работу. Эта команда называется Test-Connection.

Ниже вы можете увидеть результат проверки связи с сервером (названный «DC» в его локальной сети) и эквивалентный результат Test-Connection.

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

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

Есть два основных способа создания сценария PowerShell:

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

Хост записи «Hello World!»

Затем сохраните этот файл как FirstScript.ps1

Вы можете вызвать скрипт из PowerShell с помощью команды:

& "X: \ FirstScript.ps1 "

И вы увидите результат в PowerShell.

  1. Второй, гораздо более эффективный способ создания сценариев PowerShell — это использование интегрированной среды сценариев Windows PowerShell (ISE). С ISE вы можете запускать сценарии и отлаживать их в среде графического интерфейса пользователя.

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

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

Примеры базовых сценариев PowerShell

Теперь вы можете приступить к написанию сценариев PowerShell. Итак, давайте рассмотрим процесс шаг за шагом.

Пример сценария 1: Получить дату

Начнем с простого сценария. В ISE или блокноте откройте новый файл. Тип:

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

А затем сохраните файл как GetDate.ps1

Вы можете вызвать скрипт из PowerShell с помощью команды:

& "C: \ GetDate.ps1"

И вы увидите результат в PowerShell. Все просто, правда?

Пример сценария 2: Принудительная остановка процесса

Если у вас запущена зависшая служба Windows, вы можете использовать сценарий PowerShell, чтобы остановить ее. Например, предположим, что моя компания использует Lync для бизнес-коммуникаций и продолжает зависать, а идентификатор процесса Lync — 9212.Я могу остановить Lync с помощью сценария.

Для этого создайте новый файл сценария так же, как и раньше. На этот раз введите:

стоп-процесс 9212

или

остановить процесс - имя процесса lync

Сохраните файл как StopLync.ps1, а затем вы можете вызвать сценарий, используя:

& "X: \ StopLync.ps1"

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

start-process -processname [здесь ваш процесс]

Это особенно полезно, если вы хотите запустить сразу несколько сетевых процессов, например, и не хотите вводить команды по отдельности.

Пример сценария 3:

Проверить, существует ли файл

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

test-path , как следует из названия, позволяет проверить, существуют ли элементы пути. Он вернет ИСТИНА, , если все элементы существуют, и ЛОЖЬ, , если какие-либо из них отсутствуют.

Вы просто набираете:

test-Path (а затем путь к файлу)

Пример сценария 4: Настройка VPN на новом компьютере

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

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

Самый простой способ сделать это — открыть новый файл, как раньше, а затем ввести команду:

Set-VpnConnection -Name "Test1" -ServerAddress "10.1.1.2" -PassThru

Вам нужно будет установить адрес вашего сервера на адрес вашего локального сервера VPN, и с помощью команды «PassThru» этот скрипт вернет параметры конфигурации VPN.

Сохраните файл как SetVPN.ps1, и тогда вы сможете вызывать его так же, как и раньше, используя

& "X: \ SetVPN.ps1 "

Сейчас. При первом вызове этой команды могут возникнуть ошибки. Но это все часть процесса изучения сценариев PowerShell. Не бойтесь: всякий раз, когда вы сталкиваетесь с такой ошибкой, просто взгляните на официальное руководство Microsoft по команде «Set-VpnConnection» и адаптируйте приведенные там примеры в соответствии с вашей системой.

Пунктуация PowerShell

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

Символ Имя Функция Пример
$ Знак доллара Объявляет переменную $
= равно Присваивает значение переменной $ a = дата получения
«» Двойные кавычки Используйте двойные кавычки для отображения текста Если $ a = понедельник

«День недели: $ a»
будет выводиться как:

День недели: понедельник

+ плюс Объединяет $ a = ноябрь

«День недели»:
+ $ a.День недели

День недели: понедельник

() Круглая скобка Группы для создания аргумента (дата получения) .day

Ресурсы Windows PowerShell

Ниже приведены последние учебные пособия, и я отобрал их до десятки лучших:

Начало работы с PowerShell
  1. PowerShell для начинающих — библиотека ссылок для начала работы, лучшие практики, синтаксис командной строки и многое другое!
  2. Бестселлер Дона Джонса по PowerShell, Изучите Windows PowerShell за месяц обедов , также есть в видео! После 3–4 месяцев обедов с серией обучающих видео вы сможете автоматизировать задачи администратора быстрее, чем вы когда-либо думали.Кстати, автор отвечает на вопросы на сайте powershell.org. Существует множество ресурсов PowerShell, событий и даже бесплатных электронных книг!
  3. Если вы сдаете экзамен Microsoft MCSA 70-410, вам помогут следующие карточки: Команды PowerShell.
  4. PowerShell позволяет объединить несколько команд в одну строку, используя метод, называемый конвейерной обработкой. Он делает сложные вещи намного проще, и вы можете узнать об этом здесь.

Настройка и управление Active Directory

Сэкономьте еще больше времени, изучив настройку Active Directory и управление ею с помощью PowerShell с помощью следующих ресурсов:

  1. Используйте PowerShell для поиска в AD учетных записей с высокими привилегиями.
  2. Используйте командлеты модуля AD для выполнения различных задач администрирования, настройки и диагностики в средах AD DS и AD LDS.
  3. Создайте утилиту AD с нуля в этом эпическом трехчасовом видеокурсе PowerShell (разблокируйте бесплатно с помощью кода: PSHL)

Автоматизация обмена

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

  1. Если вы администратор Exchange, убедитесь, что у вас есть эти 5 навыков ниже
  2. Щелкните здесь, чтобы получить дополнительные советы по PowerShell для администраторов Exchange.Затем прокрутите вниз, чтобы найти хорошие материалы.

Заключительное слово

Мы надеемся, что это руководство по созданию сценариев PowerShell для начинающих дало вам все необходимое для начала работы со сценариями PowerShell. После того как вы освоите основы синтаксиса PowerShell, работать со сценариями будет довольно просто: просто убедитесь, что все сценарии организованы, и вы называете их так, чтобы было очевидно, что они делают. Так вы не запутаетесь.

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

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

Использование и методы Windows PowerShell

Windows PowerShell — это платформа Microsoft для автоматизации задач с использованием оболочки командной строки и связанного языка сценариев. Когда он был выпущен в 2006 году, этот мощный инструмент фактически заменил командную строку в качестве стандартного способа автоматизации пакетных процессов и создания настраиваемых инструментов управления системой. Многие системные администраторы, в том числе поставщики управляемых услуг (MSP), полагаются на более 130 инструментов командной строки в PowerShell для оптимизации и масштабирования задач как в локальных, так и в удаленных системах.

Сопутствующий продукт
RMM

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

Более того, этот инструмент предназначен не только для Windows — с 2016 года PowerShell Core был открытым и кроссплатформенным, а его возможности были включены в ряд дополнительных интерфейсов. Для MSP никогда не было так важно понять, как работает PowerShell, для чего он используется и как автоматизировать задачи управления таким образом, чтобы сэкономить время и усилия.

Какая польза от Windows PowerShell?

Что такое Windows PowerShell и для чего он нужен? Короче говоря, PowerShell — это надежное решение, которое помогает пользователям автоматизировать ряд утомительных или трудоемких административных задач, а также находить, фильтровать и экспортировать информацию о компьютерах в сети. Это достигается путем комбинирования команд, называемых «командлетами», и создания сценариев.

Для ИТ-специалистов, таких как MSP, имеет смысл использовать текстовые интерфейсы командной строки (CLI) для достижения более детального контроля над управлением системой.С помощью PowerShell вы можете использовать улучшенный доступ и контроль над инструментарием управления Windows (WMI) и компонентной объектной моделью (COM) для точной настройки административного управления. Для MSP, которым поручено управлять Active Directory (AD) в сети Windows, автоматизация PowerShell может быть чрезвычайно полезной для выполнения типичных задач управления. Использование PowerShell включает добавление и удаление учетных записей, редактирование групп и создание списков для просмотра определенных типов пользователей или групп.

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

Что такое командлеты?

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

Вы можете просмотреть полный список этих команд, запустив «Get-Command-Type Cmdlet» в PowerShell. У вас есть доступ не только к более чем 130 из этих команд, но вы также можете написать свои собственные. Фактически, знание того, как писать команды сценариев PowerShell, является востребованным навыком. Хотя командлеты можно использовать по отдельности, они становятся более мощными в сочетании: вы можете использовать командлеты в сценариях, а затем упаковывать сценарии в более полные модули.

Командлеты

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

Почему мне следует использовать PowerShell?

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

  • Автоматизируйте трудоемкие задачи: С помощью командлетов вам не придется выполнять одну и ту же задачу снова и снова или даже тратить время на настройку вручную.Например, вы можете использовать такие командлеты, как Get-Command, для поиска других командлетов, Get-Help, чтобы узнать о синтаксисе и использовании этих командлетов, и Invoke-Command для запуска общего сценария локально или удаленно, даже с пакетным управлением.
  • Предоставьте обходные пути для всей сети: Использование PowerShell позволяет обойти ограничения программного обеспечения или программ, особенно в масштабах всего бизнеса. Например, PowerShell можно использовать для изменения настроек программы по умолчанию во всей сети.Это может быть полезно, если компания хочет развернуть определенный протокол для всех своих пользователей — скажем, заставляя пользователей либо использовать двухфакторную аутентификацию (2FA), либо менять свой пароль каждые два месяца.
  • Масштабируйте свои усилия между устройствами: PowerShell может быть спасением, если вам нужно запустить сценарий на нескольких компьютерах, особенно если некоторые из них являются удаленными устройствами. Если вы пытаетесь реализовать решение сразу на нескольких устройствах или серверах, вам не нужно входить в систему на каждом устройстве по отдельности.PowerShell может помочь вам собрать информацию о нескольких устройствах в течение нескольких минут, по сравнению с часами, которые потребовались бы для проверки каждого устройства вручную. После включения удаленного взаимодействия PowerShell вы сможете масштабировать свои сценарии для одновременного доступа к десяткам (или более) машин, что позволит вам устанавливать обновления, настраивать параметры, собирать информацию и многое другое, что потенциально позволяет сэкономить часы работы и время в пути. .
  • Повышение прозрачности информации: Преимущество интерфейсов командной строки, таких как PowerShell, заключается в том, что они предоставляют доступ к файловой системе компьютера.PowerShell делает видимыми данные в файлах, реестре Windows и даже сертификаты цифровой подписи, которые трудно найти, независимо от того, размещены они на одном компьютере или на нескольких. Затем эту информацию можно экспортировать для целей отчетности.

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

Windows PowerShell — это то же самое, что и командная строка?

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

Некоторые пользователи среднего уровня могут использовать командную строку, если они уже знакомы с языком — ее интерфейс выполняет простые команды DOS, и для некоторых пользователей этого достаточно. Но широкое использование PowerShell делает его более привлекательным инструментом для MSP, которым нужен настоящий контроль над сетью. Предоставляя командлеты, которые могут подключаться к управлению реестром и WMI, PowerShell дает вам доступ к большему количеству задач системного администрирования, чем командная строка, тем более что PowerShell не только для Windows, но и инструмент с открытым исходным кодом для Linux и Mac OS X. .

SolarWinds ® Remote Monitoring & Management (RMM) предлагает все преимущества PowerShell, не требуя от MSP фактического использования сценариев PowerShell. С помощью RMM вы можете использовать простые объекты перетаскивания, чтобы легко создавать широкий спектр автоматических функций. Такой вид автоматизации имеет решающее значение для занятых MSP, которым нужны эффективные и масштабируемые методы ведения бизнеса. Дружественный интерфейс RMM позволяет быстрее использовать все преимущества Windows PowerShell.

Прочтите наш блог , чтобы получить другие полезные советы по использованию инструментов и программ Windows.

.

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

Ваш адрес email не будет опубликован.