Разное

Powershell что это: основные возможности / Блог компании RUVDS.com / Хабр

01.09.2018

Содержание

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

  • Чтение занимает 5 мин

В этой статье

PowerShell — это кроссплатформенная система для автоматизации задач и управления конфигурацией, состоящая из оболочки командной строки и языка сценариев.PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language. В отличие от большинства оболочек, которые принимают и возвращают текст, PowerShell построена на основе общеязыковой среды выполнения (CLR) .NET и принимает и возвращает объекты .NET.Unlike most shells, which accept and return text, PowerShell is built on top of the .NET Common Language Runtime (CLR), and accepts and returns .

NET objects. Это фундаментальное отличие, которое подразумевает использование совершенно новых средств и методов автоматизации.This fundamental change brings entirely new tools and methods for automation.

Выходные данные являются объектно-ориентированнымиOutput is object-based

В отличие от средств распространенных интерфейсов командной строки командлеты PowerShell предназначены для работы с объектами.Unlike traditional command-line interfaces, PowerShell cmdlets are designed to deal with objects. Объект — это не просто набор отображаемых на экране символов, а структурированные данные.An object is structured information that is more than just the string of characters appearing on the screen. Выходные данные команды всегда содержат дополнительную информацию, которую при необходимости можно использовать.Command output always carries extra information that you can use if you need it.

Если раньше вы использовали средства обработки текста для работы с данными, вы поймете, что в PowerShell они применяются иначе. If you’ve used text-processing tools to process data in the past, you’ll find that they behave differently when used in PowerShell. В большинстве случаев для получения определенных сведений средства обработки текста не нужны.In most cases, you don’t need text-processing tools to extract specific information. Стандартный синтаксис объекта PowerShell позволяет получить прямой доступ к фрагментам данных.You directly access portions of the data using standard PowerShell object syntax.

Семейство команд является расширяемымThe command family is extensible

Такие интерфейсы, как cmd.exe, не позволяют расширять набор встроенных команд напрямую.Interfaces such as cmd.exe don’t provide a way for you to directly extend the built-in command set. Вы можете создавать внешние программы командной строки, выполняемые в cmd.exe.You can create external command-line tools that run in cmd.exe. Но у этих внешних программ нет служб, таких как интеграция справки.

But these external tools don’t have services, such as Help integration. Интерфейс cmd.exe не будет автоматически знать, что эти внешние программы являются действительными командами.cmd.exe doesn’t automatically know that these external tools are valid commands.

Команды в PowerShell называются командлетами .The commands in PowerShell are known as cmdlets . Каждый командлет можно применять отдельно, но наиболее эффективным является их совместное использование для выполнения сложных задач.You can use each cmdlet separately, but their power is realized when you combine them to perform complex tasks. Как и многие другие оболочки, PowerShell предоставляет доступ к файловой системе на компьютере.Like many shells, PowerShell gives you access to the file system on the computer.

Поставщики PowerShell позволяют обращаться к другим хранилищам данных, например к реестру и хранилищам сертификатов, так же легко, как и к файловой системе.PowerShell providers enable you to access other data stores, such as the registry and the certificate stores, as easily as you access the file system.

Вы можете создавать собственные командлеты и модули функций, используя сценарии или скомпилированный код.You can create your own cmdlet and function modules using compiled code or scripts. Модули могут добавлять командлеты и поставщики в оболочку.Modules can add cmdlets and providers to the shell. PowerShell также поддерживает сценарии, аналогичные сценариям оболочки UNIX и пакетным файлам

cmd.exe.PowerShell also supports scripts that are analogous to UNIX shell scripts and cmd.exe batch files.

Поддержка псевдонимов команд.Support for command aliases

PowerShell поддерживает псевдонимы для вызова команд с помощью альтернативных имен.PowerShell supports aliases to refer to commands by alternate names. Благодаря наличию псевдонимов пользователи с опытом работы с другими оболочками могут использовать уже известные им распространенные имена команд для выполнения схожих операций в PowerShell.Aliasing allows users with experience in other shells to use common command names that they already know for similar operations in PowerShell.

Механизм псевдонимов заключается в связывании нового имени с определенной командой.Aliasing associates a new name with another command. Например, в PowerShell есть внутренняя функция с именем Clear-Host, которая очищает командное окно.For example, PowerShell has an internal function named Clear-Host that clears the output window. Вы можете ввести в командной строке псевдоним

cls или clear.You can type either the cls or clear alias at a command prompt. PowerShell интерпретирует эти псевдонимы и запускает функцию Clear-Host.PowerShell interprets these aliases and runs the Clear-Host function.

Это помогает пользователям изучать PowerShell.This feature helps users to learn PowerShell. Большинство пользователей cmd.exe и Unix применяют большой репертуар команд, которые они уже помнят наизусть.First, most cmd.exe and Unix users have a large repertoire of commands that users already know by name.

Их эквиваленты в PowerShell могут возвращать отличающиеся результаты.The PowerShell equivalents may not produce identical results. Но эти результаты достаточно схожи, чтобы пользователи могли работать, не зная имя соответствующей команды PowerShell.However, the results are close enough that users can do work without knowing the PowerShell command name. Другой трудностью при освоении новой командной оболочки является «мышечная память».»Muscle memory» is another major source of frustration when learning a new command shell. Если вы много лет использовали cmd.exe, вы можете по привычке ввести команду
cls
для очистки экрана.If you have used cmd.exe for years, you might reflexively type the cls command to clear the screen. Если псевдоним для Clear-Host не настроен, вы получите сообщение об ошибке и не будете знать, как очистить экран.Without the alias for Clear-Host, you receive an error message and won’t know what to do to clear the output.

PowerShell обрабатывает ввод и отображение данных в консолиPowerShell handles console input and display

Когда вы вводите команду, PowerShell всегда обрабатывает входные данные командной строки напрямую.When you type a command, PowerShell always processes the command-line input directly. PowerShell также форматирует выходные данные, отображаемые на экране.PowerShell also formats the output that you see on the screen. Это важно, так как нагрузка, требуемая для обработки каждого командлета, сокращается,This difference is significant because it reduces the work required of each cmdlet. и действия выполняются аналогичным образом независимо от используемого командлета.It ensures that you can always do things the same way with any cmdlet. Разработчикам командлетов не нужно писать код для синтаксического анализа аргументов командной строки или форматирования выходных данных.Cmdlet developers don’t need to write code to parse the command-line arguments or format the output.

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

Traditional command-line tools have their own schemes for requesting and displaying Help. Некоторые программы командной строки используют /? для показа справки, а другие используют -?, /H или даже //.Some command-line tools use /? to trigger the Help display; others use -?, /H, or even //. Некоторые отображают справку в окне графического пользовательского интерфейса, а не в окне консоли.Some will display Help in a GUI window, rather than in the console display. Если введен неправильный параметр, средство может проигнорировать ошибку и автоматически начать выполнение задачи.If you use the wrong parameter, the tool might ignore what you typed and begin executing a task automatically. Поскольку PowerShell автоматически анализирует и обрабатывает командную строку, параметр
-?
всегда означает «показать справку по этой команде».Since PowerShell automatically parses and processes the command line, the -? parameter always means «show me Help for this command».

Примечание

Когда вы запускаете в PowerShell графическое приложение, для него открывается окно.If you run a graphic application in PowerShell, the window for the application opens. PowerShell вмешивается в процесс только при обработке заданных вами в командной строке входных данных или при возврате выходных данных приложения в окно консоли.PowerShell intervenes only when processing the command-line input you supply or the application output returned to the console window. На внутреннюю работу приложения система не влияет.It does not affect how the application works internally.

PowerShell включает конвейерPowerShell has a pipeline

Пожалуй, конвейеры являются наиболее полезной концепцией в интерфейсах командной строки.Pipelines are arguably the most valuable concept used in command-line interfaces. При правильном использовании конвейеры упрощают работу со сложными командами и отслеживание потока выполнения.When used properly, pipelines reduce the effort of using complex commands and make it easier to see the flow of work. Каждая команда в конвейере передает свои выходные данные, элемент за элементом, следующей команде.Each command in a pipeline passes its output, item by item, to the next command. Команды обрабатывают только один объект за раз.Commands don’t have to handle more than one item at a time. Это снижает потребление ресурсов и позволяет получать выходные данные немедленно.The result is reduced resource consumption and the ability to get output immediately.

Эта нотация конвейера похожа на нотацию, которая используется в других оболочках.The notation used for pipelines is similar to the notation used in other shells. На первый взгляд не совсем понятно, чем отличаются конвейеры в PowerShell.At first glance, it may not be apparent how pipelines are different in PowerShell. Хотя вы видите на экране текст, PowerShell передает по конвейеру между командами не текст, а объекты.Although you see text on the screen, PowerShell pipes objects, not text, between commands.

Например, вы можете использовать командлет Out-Host для принудительного постраничного отображения выходных данных из другой команды. На экране эти данные будут показаны как обычный текст, разбитый на страницы:For example, if you use the Out-Host cmdlet to force a page-by-page display of output from another command, the output looks just like the normal text displayed on the screen, broken up into pages:

Get-ChildItem | Out-Host -Paging
    Directory: /mnt/c/Git/PS-Docs/PowerShell-Docs/reference/7.0/Microsoft.PowerShell.Core

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          05/22/2020    08:30                About
-----          05/20/2020    14:36           9044 Add-History.md
-----          05/20/2020    14:36          12227 Clear-History.md
-----          05/20/2020    14:36           3566 Clear-Host.md
-----          05/20/2020    14:36          29087 Connect-PSSession.md
-----          05/20/2020    14:36           5705 Debug-Job.md
-----          05/20/2020    14:36           3515 Disable-ExperimentalFeature. md
-----          05/20/2020    14:36          25531 Disable-PSRemoting.md
-----          05/20/2020    14:36           7852 Disable-PSSessionConfiguration.md
-----          05/20/2020    14:36          25355 Disconnect-PSSession.md
-----          05/20/2020    14:36           3491 Enable-ExperimentalFeature.md
-----          05/20/2020    14:36          13310 Enable-PSRemoting.md
-----          05/20/2020    14:36           8401 Enable-PSSessionConfiguration.md
-----          05/20/2020    14:36           9531 Enter-PSHostProcess.md
...
<SPACE> next page; <CR> next line; Q quit

Разбиение на страницы также снижает потребление ресурсов ЦП, так обработку продолжает командлет Out-Host, когда он получает всю страницу для отображения.Paging also reduces CPU utilization because processing transfers to the Out-Host cmdlet when it has a complete page ready to display. Командлет, стоящий в конвейере выше, приостанавливает выполнение, пока не будет готова следующая страница выходных данных. The cmdlets that precede it in the pipeline pause execution until the next page of output is available.

Объекты в конвейереObjects in the pipeline

При запуске командлета в PowerShell вы видите выходные данные в виде текста — именно так в окне консоли и должны отображаться объекты.When you run a cmdlet in PowerShell, you see text output because it is necessary to represent objects as text in a console window. В текстовом представлении могут отображаться не все свойства выводимого объекта.The text output may not display all of the properties of the object being output.

Например, рассмотрим командлет Get-Location.For example, consider the Get-Location cmdlet. Эти выходные данные в виде текста содержат сводную информацию, а не полное представление объекта, возвращаемого командлетом Get-Location.The text output is a summary of information, not a complete representation of the object returned by Get-Location. Процесс, который форматирует данные для отображения на экране, добавляет к выходным данным заголовок. The heading in the output is added by the process that formats the data for onscreen display.

Get-Location
Path
----
C:\

При передаче выходных данных по конвейеру в командлет Get-Member отображаются сведения об объекте, возвращаемом Get-Location.Piping the output to the Get-Member cmdlet displays information about the object returned by Get-Location.

Get-Location | Get-Member
   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   string Path {get;}
Provider     Property   System.Management.Automation. ProviderInfo Provider {get;}
ProviderPath Property   string ProviderPath {get;}

Командлет Get-Location возвращает объект PathInfo , который содержит текущий путь и другие сведения.Get-Location returns a PathInfo object that contains the current path and other information.

Встроенная система справкиBuilt-in help system

PowerShell включает подробные справочные статьи, подобные man-страницам Unix, которые поясняют понятия PowerShell и синтаксис команд.Similar to Unix man pages, PowerShell includes detailed help articles that explain PowerShell concepts and command syntax. Эти статьи можно отобразить в командной строке с помощью командлета Get-Help или открыть в актуальной версии документации PowerShell в Интернете.Use the Get-Help cmdlet to display these articles at the command prompt or view the most recently updated versions of these articles in the PowerShell documentation online.

Дальнейшие действияNext steps

Дополнительные сведения о PowerShell см. в разделе Изучение PowerShell этого сайта.To learn more about PowerShell, see the Learning PowerShell section of this site.

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

Пользователи, находящиеся в процессе изучения начального экрана 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.

Список всех доступных команд выводит командлет Get-Command. Связка get-help-командлет применяется с целью получения справки по конкретному алиасу. Пример: справка по использованию get-process (отвечает за вывод списка текущих процессов) будет выведена командой get-help-process. Передав ей параметры -example, -detailed, -online или –full, пользователь сможет получить сведенья обо всех его нюансах подробно.

Windows PowerShell – что это такое и как запустить?

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

История появления PowerShell в семействе операционных систем Windows такова. Надо сказать, что консольная утилита, позволяющая взаимодействовать с компьютером посредством ввода команд, присутствовала там изначально (собственно, именно посредством такой утилиты когда-то, ещё до широкого распространения средств графического интерфейса пользователя, предполагалось главным образом осуществлять взаимодействие с системой, начиная с MS-DOS самых первых версий).

Сначала существовал довольно ограниченный набор соответствующих команд. Будучи реализованными в составе соответствующей подсистемы ОС (средствами вышеназванной утилиты), они и представляли собой так называемый интерпретатор командной строки. Любые другие задачи могли вызываться из данной оболочки в качестве отдельных программ, оформленных тоже как консольные приложения. Уже в то время имелись и некоторые средства автоматизации задач, реализованные с помощью языка сценариев (с примерами его вы можете познакомиться, открыв в текстовом редакторе любой . BAT-файл).

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

Положение несколько изменилось с появлением Windows 98, в составе которой впервые появляется такое средство, как WSH (Windows Script Host, или сервер сценариев Windows). Оно уже позволяло запускать сценарии с использованием таких скриптовых языков, как JScript и VBScript (и других дополнительно устанавливаемых языковых модулей). К сожалению, у Windows Script Host отсутствует интеграция с существующей командной оболочкой, а также встроенная документация (даже сейчас далеко не все пользователи Windows вообще знают о существовании такого средства). Поэтому в 2003 году Microsoft приступила к разработке новой продвинутой командной оболочки, призванной автоматизировать весь спектр административных задач, впоследствии ставшей известной как PowerShell.

Команды, выполняемые внутри PowerShell, теперь могут представлять собой не только стандартные операции по работе с системой, как раньше, или названия исполняемых файлов, а ещё и целые специализированные классы среды исполнения приложений .NET – так называемые командлеты. Появился и новый улучшенный язык сценариев, включающий в себя реализацию динамических типов, на основе всё того же .NET. Освоив его, продвинутые пользователи теперь могли создавать свои сценарии автоматизации, не прибегая к помощи полноценных сред программирования и таких языков, как C# или VB.NET.

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

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

В операционных системах, предшествующих Windows 8, вы можете открыть PowerShell из меню «Пуск», выбрав последовательно пункты «Все программы» и «Стандартные». Также вы можете найти данное средство, введя в строке поиска меню «Пуск» запрос «Интегрированная среда сценариев» или «PowerShell» (для запуска от администратора щёлкните по появившемуся пункту Интегрированная среда сценариев Windows PowerShell и выберите пункт Запуск от имени администратора.

В Windows 8 не имеется штатной поддержки меню «Пуск» (кроме того, которое вызывает оболочку Modern), однако вы легко можете найти PowerShell в контекстном меню, всплывающем по нажатию комбинации клавиш Win-X. Либо нажав правой кнопкой мыши на меню Пуск. Это же относится и к Windows 10.

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

Наконец, для запуска PowerShell непосредственно из командной строки можно использовать команду PowerShell_ISE или ISE.

На этом все. Всего хорошего!

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

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

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

ISE более предпочтительно, так как предоставляет более широкие возможности разработчику благодаря подсветке синтаксиса, функции автозаполнения кода и другим особенностям, присущим многим «большим» IDE.

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

Скрипты сохраняются в виде файлов с расширением .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 ISE автоматически предлагает все доступные параметры с отображением их типа. Например, Get-Service-NameW* выводит список служб, у которых имя начинается с W. Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member. Например, Get-Process | Get-Member:

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

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

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

Конвейер

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

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

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

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

Заключение

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

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

Что такое 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 такой же мощной, как терминал Unix / Linux? [закрыто]

Итак, ваша первая проблема заключается в том, что вы сравниваете оболочку (PowerShell) с терминалом. В Linux терминал — это то, что отправляет и получает символьный ввод / вывод, и предполагается, что за ним стоит интерактивный пользователь (иными словами, это приложение с графическим интерфейсом, используемое для хранения оболочки). Одним из наиболее распространенных оболочек, запускаемых в Терминале Ubuntu, является Bash , но есть и другие.

Люди в автономном режиме говорят мне, не объясняя особо, что Windows PowerShell — это попытка заставить администраторов Unix чувствовать себя более комфортно при использовании Windows.

Действительно, правильно сказать, что PowerShell — это Windows, представляющая большую часть объектной модели WMI , COM и .NET в интерактивной среде сценариев с поддержкой сценариев, и что эта среда командной строки по-прежнему заимствует многие концепции, такие как конвейеры. и перенаправление ввода / вывода — из оболочек Unix, так же, как старый DOS (2.0 и выше) command.comи cmd.exeсделал. Конвейеры работают с объектами в PowerShell. Вы можете делать такие вещи, как создание HTML и, возможно, таблиц Excel на лету, если вы знали достаточно. Это, безусловно, обновление / замена старой cmd.exeоболочки, которая мало изменилась по сравнению с Windows NT 4. 0 .

Что касается синтаксиса, он меньше похож на оболочки Unix (хотя, наконец, ни один из командлетов не используется /в качестве переключателя или индикатора параметров), но существует много псевдонимов для классических команд Unix — например, ввод lsв окне PowerShell будет работать аналогично dir. Но это просто псевдонимы («Get-Alias» перечисляет их?).

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

Единственное, что Unix люди не должны делать при использовании Bash большую часть времени, — это быть близко знакомыми с, возможно, очень сложной объектной моделью программиста или объекта, которая требуется для многих сложных и простых задач PowerShell. Но это возможно только потому, что существует четкое соглашение о прямом выводе текста для многих стандартных команд POSIX . В Windows не было этой традиции — казалось, что вы предпочитаете использовать mmcконсоль для задач администрирования, с командами, добавляемыми здесь и там на протяжении многих лет. Кроме того, многие хорошо известные утилиты Unix сложны и требуют некоторых исследований перед использованием — rsync, wgetи многих других. Эффективность, вероятно, зависит от того, насколько хорошо известно, какой инструмент они используют, больше всего на свете.

Windows powershell: что это?

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

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

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

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

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

PowerShell на смену «батникам»

Со временем командные оболочки сильно эволюционировали. Процессору «батников» (.bat-файлов) DOS пришел на смену командный процессор 4DOS, в Windows происходили аналогичные изменения – перечень исполнимых инструкций значительно расширился, приобретая сходство с современными скриптовыми языками программирования.

Однако ориентация таких систем не изменилась – все они как были, так и оставались инструментами системного администратора или (в редких случаях) продвинутого пользователя.

Также у них появились конкуренты, наподобие скриптов JScript и VBScript, функционирующих на базе языковой машины WHS(Windows Script Host). Казалось бы, эволюция «батников» зашла в тупик, и они должны были вымереть, как динозавры. Но не тут то было.

Осенью 2003-го года разработчиками Microsoft был анонсирован новый командный процессор под именем Windows PowerShell с радикально переработанной концепцией и синтаксисом. Причем движком для него выступала платформа .Net Framework, а это означало, ни много ни мало, доступ из скрипта к огромной копилке возможностей этого фреймворка. В PowerShell команды перестали быть простыми текстовыми инструкциями, а превратились в классы.

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

Функциональность PowerShell

Функциональность оболочки такова:

  • Командлеты предоставляют интерфейс для работы с сущностями из следующего списка: реестром, процессами, журналом, службами, WMI. То есть идеально подходят для нужд системного администратора.
  • PowerShell – это развитый скриптовый язык программирования на основе объектной парадигмы.
  • Унифицированный дизайн языка PowerShell на концепции хранилищ системных данных с единообразной структурой. Для программиста это означает возможность использовать одни и те же командлеты при работе с различными хранилищами.
  • В язык включена мощная система навигации по файловой системе и системным хранилищам. Причем навигация по тем и другим осуществляется одинаково.
  • Ориентация на объекты означает не только инкапсуляцию различных методов в одном объекте, но и возможность сохранять экземпляры объектов на диске или в СУБД.
  • Интерфейс PowerShell может быть легко расширен разработчиком, что означает возможность создавать целые программные пакеты PoweShell для решения специальных прикладных задач системного программирования.


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

  • 5 минут на чтение

В этой статье

PowerShell — это кроссплатформенная среда автоматизации задач и управления конфигурацией, состоящая из оболочка командной строки и язык сценариев. В отличие от большинства оболочек, которые принимают и возвращают текст, PowerShell построен на основе.NET Common Language Runtime (CLR) и принимает и возвращает .NET. объекты. Это фундаментальное изменение приносит совершенно новые инструменты и методы автоматизации.

Вывод основан на объектах

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

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

Семейство команд расширяемое

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

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

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

Поддержка псевдонимов команд

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

Псевдонимы связывает новое имя с другой командой. Например, в PowerShell есть внутренний функция с именем Clear-Host , которая очищает окно вывода. Вы можете ввести cls или очистить псевдоним в командной строке. PowerShell интерпретирует эти псевдонимы и запускает Функция Clear-Host .

Эта функция помогает пользователям изучать PowerShell. Во-первых, большинство пользователей cmd.exe, и Unix имеют большой репертуар команд, которые пользователи уже знают по имени.Эквиваленты PowerShell могут не производить идентичные результаты. Однако результаты достаточно близки, чтобы пользователи могли работать, не зная Имя команды PowerShell. «Мышечная память» — еще один серьезный источник разочарования при изучении нового командная оболочка. Если вы использовали cmd.exe в течение многих лет, вы можете рефлекторно ввести команду cls , чтобы очистить экран. Без псевдонима Clear-Host вы получите сообщение об ошибке и не узнаете что делать, чтобы очистить вывод.

PowerShell обрабатывает ввод и отображение консоли

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

Традиционные инструменты командной строки имеют свои собственные схемы для запроса и отображения справки.Немного инструменты командной строки используют /? , чтобы вызвать отображение справки; другие используют -? , / H или даже // . Некоторые будут отображать справку в окне графического интерфейса пользователя, а не на дисплее консоли. Если вы используете неверный параметр, инструмент может проигнорировать введенный вами текст и автоматически начать выполнение задачи. Поскольку PowerShell автоматически анализирует и обрабатывает командную строку, -? параметр всегда означает «показать мне справку по этой команде».

Примечание

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

PowerShell имеет конвейер

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

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

Например, если вы используете командлет Out-Host для принудительного постраничного отображения вывода из другая команда, вывод выглядит так же, как обычный текст, отображаемый на экране, разбитый на страниц:

  Get-ChildItem | Out-Host -Пейджинг
  
  Каталог: / mnt / c / Git / PS-Docs / PowerShell-Docs / reference / 7. 0 / Microsoft.PowerShell.Core

Режим LastWriteTime Длина Имя
---- ------------- ------ ----
д ---- 22.05.2020 08:30 О нас
----- 20.05.2020 14:36 ​​9044 Add-History.md
----- 20.05.2020 14:36 ​​12227 Clear-History.md
----- 20.05.2020 14:36 ​​3566 Clear-Host.md
----- 20.05.2020 14:36 ​​29087 Connect-PSSession.md
----- 20.05.2020 14:36 ​​5705 Debug-Job.мкр
----- 20.05.2020 14:36 ​​3515 Disable-ExperimentalFeature.md
----- 20.05.2020 14:36 ​​25531 Disable-PSRemoting.md
----- 20.05.2020 14:36 ​​7852 Disable-PSSessionConfiguration.md
----- 20.05.2020 14:36 ​​25355 Disconnect-PSSession.md
----- 20.05.2020 14:36 ​​3491 Enable-ExperimentalFeature.md
----- 20.05.2020 14:36 ​​13310 Enable-PSRemoting.md
----- 20.05.2020 14:36 ​​8401 Enable-PSSessionConfiguration.мкр
----- 20.05.2020 14:36 ​​9531 Enter-PSHostProcess.md
...
<ПРОБЕЛ> следующая страница;  следующая строка; Q выйти
  

Paging также снижает загрузку ЦП, поскольку обработка передается командлету Out-Host , когда он имеет готовую к отображению страницу целиком. Командлеты, предшествующие ему в конвейере, приостанавливают выполнение пока не будет доступна следующая страница вывода.

Объекты в трубопроводе

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

Например, рассмотрим командлет Get-Location . Текстовый вывод представляет собой сводку информации, а не полное представление объекта, возвращенного Get-Location . Заголовок в выводе добавлен процессом форматирования данных для отображения на экране.

  Get-Location
  
  Путь
----
C: \
  

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

  Get-Location | Get-Member
  
  Имя типа: System. Management.Automation.PathInfo

Имя MemberType Определение
---- ---------- ----------
Метод Equals bool Equals (System.Object obj)
Метод GetHashCode int GetHashCode ()
GetType Тип метода GetType ()
ToString Строка метода ToString ()
Свойство диска System.Management.Automation.PSDriveInfo Drive {get;}
Путь Строка свойства Путь {get;}
Система собственности провайдера.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Строка свойства ProviderPath {get;}
  

Get-Location возвращает объект PathInfo , который содержит текущий путь и другую информацию.

Встроенная справочная система

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

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

Чтобы узнать больше о PowerShell, см. Раздел Learning PowerShell этого сайта.

Простые вопросы: что такое PowerShell в Windows и что с ним можно делать?

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

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

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

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

Windows PowerShell

Первая версия PowerShell была выпущена в ноябре 2006 года для Windows XP, Windows Server 2003 и Windows Vista.Последней версией PowerShell является Windows PowerShell 5.1, и она поставляется 2016 как часть Windows 10 Anniversary Update и Windows Server 2016. Она также работает с Windows Server 2008 R2, Windows Server 2012 и Windows Server 2012 R2, Windows 7 с пакетом обновления 1 и Windows 8.1 (версии Pro и Enterprise).

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

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

Возможности

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

Если вы являетесь сетевым администратором, вы обнаружите, что PowerShell полезен при работе с Active Directory. Учитывая, что он содержит сотни настраиваемых команд, которые называются командлетами, PowerShell может помочь вам повысить производительность. Мы рекомендуем книгу Эда Уилсона — Windows PowerShell Step by Step — чтобы узнать о ней больше. Если вы хотите узнать, что нового в последней версии Windows PowerShell для Windows 10, вам также следует посетить эту официальную веб-страницу Microsoft: Документация по PowerShell.

PowerShell против PowerShell ISE

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

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

Где найти PowerShell в Windows?

Самый быстрый способ открыть PowerShell в Windows — использовать поле поиска Кортаны на панели задач. Введите ключевое слово «powershell» , а затем щелкните или коснитесь результата поиска Windows PowerShell .

Поиск PowerShell в Windows 10

Чтобы узнать о других способах запуска PowerShell с инструкциями для Windows 10, Windows 8.1 и Windows 7, прочтите эту статью: 9 способов запуска PowerShell в Windows (в том числе от имени администратора).

Команды PowerShell

Команды PowerShell называются командлетами. Самый простой способ найти эти команды в PowerShell — запустить «Get-Command -Type Cmdlet».

Get-Command -Type Cmdlet в PowerShell

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

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

Для пользователей, имеющих опыт работы с командной строкой и Linux, в PowerShell есть список псевдонимов, которые связывают имена, знакомые этим пользователям, с командами PowerShell. Вот несколько примеров: cat, dir, mount, rm, chdir, erase, sort, cls, del. Чтобы получить полный список этих псевдонимов, выполните в PowerShell команду «Get-Command -Type Alias».

Кто имеет тенденцию регулярно использовать PowerShell?

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

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

Чем вам может помочь PowerShell?

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

3 причины, почему вы должны научиться использовать PowerShell

Если ваша работа удаленно связана с корпоративными информационными технологиями (ИТ), вы, вероятно, слышали термин «PowerShell.PowerShell, доступный в Microsoft Windows, представляет собой оболочку командной строки Windows, разработанную специально для системных администраторов. Хотя PowerShell может выглядеть похоже на приложение командной строки в Windows, это не просто способ ввода устаревших команд Microsoft DOS внутри графического интерфейса пользователя (GUI) Windows. PowerShell — это масштабируемый способ для корпоративных ИТ-менеджеров автоматизировать критически важные бизнес-задачи на каждом ПК с Windows в глобальной сети. Вот почему изучение команд PowerShell может дать вам навыки, необходимые для управления ИТ в любом бизнесе.

Легко получить доступ к PowerShell

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

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

PowerShell — это встроенный интерфейс командной строки для Microsoft Windows, используемый ИТ-администраторами и сотрудниками службы поддержки для:

  • Автоматизировать резервные задачи
  • Масштабное управление ИТ-средами
  • Доступ к труднодоступной информации о пользователях

Простая автоматизация

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

Windows PowerShell включает более сотни основных командлетов ядра, и вы можете написать свои собственные командлеты и поделиться ими с другими пользователями. Знание того, как разрабатывать командлеты и выполнять сценарии PowerShell, является востребованным навыком для больших и малых компаний в Северной Америке и Европе. Недавний поиск по запросу «вакансии PowerShell» на Dice.com (веб-сайт по подбору персонала, ориентированный на вакансии с шестизначной зарплатой) дал почти 2000 открытых вакансий всего в 15 местах по всей территории США.

Масштабируемое управление

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

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

Доступ к информации

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

Это важно, потому что, в отличие от большинства интерфейсов командной строки, PowerShell построен на основе Microsoft.NET Framework. Это уникальная функция, которая позволяет ИТ-специалистам автоматизировать и удаленно выполнять специальные задачи на любом ПК с ОС Windows в корпоративной сети. Лучше всего то, что PowerShell позволяет ИТ-администраторам легко контролировать все эти сетевые ресурсы и контролировать их, просто набрав строку кода в командной строке.

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

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

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

У вас есть навыки работы с PowerShell и вы хотите использовать их в качестве консультанта с Amaxra? Свяжитесь с нами, и мы поможем вам найти ваш следующий проект!

Свяжитесь со мной по адресу [email protected] или позвоните по телефону 425 708 8841, если у вас есть какие-либо вопросы или комментарии к этому блогу.

Майк Арнцен

Майк — опытный эксперт в области технологий, обладающий знаниями в области корпоративного программного обеспечения, безопасности и внедрения облачных технологий. Он имеет сильное инженерное образование, окончил Школу радио Королевских ВВС Австралии и аспирантуру по волоконной оптике в Королевском Мельбурнском технологическом институте. В Амаксре он известен как «мистер FixIt», поэтому Майк не может решить многого. Недавно он реализовал переход Amaxra на Skype для бизнеса в офисе Amaxra.

Ограниченное по времени предложение: Позвольте Amaxra управлять вашим лицензированием Office 365, и мы настроим безопасность, такую ​​как многофакторная аутентификация, без дополнительных затрат.Отправьте электронное письмо на адрес [email protected] или свяжитесь с нами в чате на этом веб-сайте, чтобы узнать больше.

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

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

Что такое Windows PowerShell?

Microsoft Windows Powershell была разработана для облегчения управления конфигурацией и автоматизации задач.

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

Разработанная с использованием платформы .NET, Windows Powershell включает язык сценариев и оболочку командной строки. Начиная с Windows NT 4.0, он использовался в экосистеме Microsoft различными способами. Windows Powershell дает вам возможность использовать стандартную оболочку командной строки или интегрированную среду сценариев (ISE), графический интерфейс, который упрощает создание различных сценариев, устраняя необходимость ввода команд в командную строку.

Разница между PowerShell и командной строкой

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

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

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

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

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

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

Обучение

Вы заинтересованы в обучении? Ознакомьтесь с нашими учебными классами Windows Powershell здесь.

Есть вопросы? Нужен гид? Свяжитесь с нами по электронной почте , телефону 913.322.7062 / 314.644.6400 или заполнив следующую форму.

Учебное пособие по созданию сценариев 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 ISE содержит полный список всех распространенных модулей и командлетов, которые могут понадобиться системным администраторам.Когда вы будете готовы приступить к написанию собственных функций командлетов, инструмент отладки в 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 указывает на то, что «Файлы с корневым каталогом».
  • Шаблон, определяющий набор файлов, которые должны быть зациклены, обозначен как «вход»
  • @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 и аналогичных структур делают управление данными слишком сложным для такого грубого инструмента. Вместо этого вам следует подумать о том, чтобы проконсультироваться с экспертом о том, как управлять доступом к данным, хранящимся в ваших системах.

Что такое команды PowerShell? Понимание командлетов PowerShell с примерами кода, учебными пособиями и др. — Stackify

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

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

Аспект написания сценариев подобен программированию на Perl.Оболочка сравнима с bash в UNIX, причем для удобства Microsoft даже включает такие команды, как man, ls и ps.

PowerShell 1.0 был выпущен в ноябре 2006 года для Windows XP SP2, Windows Server 2003 SP1 и Windows Vista. Хотя изначально PowerShell нужно было установить вручную, последняя версия 5. 0 доступна по умолчанию с Windows 10. Итак, вы можете просто перейти в Cortana и ввести «PowerShell» или перейти из меню «Пуск». Прочтите это, чтобы узнать больше о том, какая версия Windows использует какую версию PowerShell.

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

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

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

Что ж, PowerShell, безусловно, обладает большей мощностью! Командная строка — это интерфейс, доступный для выполнения простых команд DOS; большинство пользователей не исследовали его, кроме ping, ipconfig или ftp в мире программирования. Однако PowerShell — это гораздо больше. Хотя между ними есть много различий, вот несколько важных:

  1. PowerShell использует командлеты, а не команды. Теперь командлеты — это не просто другой способ вызова одного и того же объекта, они открывают пользователю сложные функции системного администрирования, такие как управление реестром и инструментарий управления Windows (WMI). Это делает их гораздо более полезными, чем командная строка.
  1. PowerShell является объектно-ориентированным. Данные, выводимые командлетами, являются объектами (пример того, как объектная ориентация делает PowerShell привлекательной), а не просто текстом. Это обеспечивает большую гибкость при работе со сложными данными.
  1. PowerShell разработан с использованием .NET framework. Это позволяет сценариям PowerShell использовать интерфейсы .NET и расширять функции, которые не предоставляются по умолчанию с помощью командлетов. Возможен и обратный путь — встраивание скриптов PowerShell в .NET-код.

Подробнее о командлетах

Командлеты — это облегченные команды, используемые в среде PowerShell.Большинство командлетов в PowerShell используют формат Verb-Noun.

Например, Get-Command, Update-Help, Start-Service и т. Д.

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

Примеры командлетов PowerShell

Давайте рассмотрим пример, чтобы понять, как это работает.

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

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

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

Здесь PowerShell обрабатывает каждую выходную запись, которую выдает GetService , оценивает, имеет ли атрибут «Status» значение «Running», и фильтрует соответствующим образом.

Примечание: $ _ относится к текущей записи / объекту в конвейере.

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

Вы можете дополнительно отфильтровать предыдущий вывод, чтобы просто отобразить «Имя» запущенных служб.

Get-Service | Where-Object {$ _. Status -eq «Выполняется»} | Select-Object Name

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

Get-Help –Name

или Get-Help –Name -Online

Последняя открывается подробная справка с примерами на сайте msdn.

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

Краткое знакомство с псевдонимами

Псевдонимы — это альтернативные имена для ваших командлетов. Обычно они удобны для часто используемых команд и когда вы не хотите набирать весь формат Verb-Noun. Например, Get-Command имеет псевдоним «gcm», Get-Service — «gsv», а Where-Object — простой «?».

Многие команды UNIX по умолчанию настроены как псевдонимы.Например, cat-> Get-Content, man-> help, ps-> Get-Process и т. Д.

Запустите Get-Alias ​​, чтобы увидеть полный список псевдонимов, доступных в PowerShell.

Конечно, вы также можете создавать свои собственные псевдонимы.

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

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

Учебники и ресурсы по командам PowerShell (Cmdlets)

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

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

  • Что такое нагрузочное тестирование? Как это работает, инструменты, руководства и многое другое — 5 февраля 2021 г.
  • Americaneagle.com и ROC Commerce остаются впереди с Retrace — 25 сентября 2020 г.
  • Новые цены Stackify: все, что вам нужно знать — 9 сентября 2020 г.
  • ИННОВАТОРЫ ПРОТИВ COVID 19 Мэтт Уотсон, генеральный директор Stackify, советует предпринимателям сосредоточиться на вещах, которые делают их счастливыми, независимо от того, является ли работа огромным пожаром в мусорном контейнере — 2 сентября 2020 г.
  • Stackify присоединяется к 2020 Inc.5000 Список самых быстрорастущих компаний — 25 августа 2020 г.

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

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

Более того, этот инструмент предназначен не только для 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.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *