Что такое PowerShell? What is PowerShell?
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:
Разбиение на страницы также снижает потребление ресурсов ЦП, так обработку продолжает командлет 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-Member отображаются сведения об объекте, возвращаемом Get-Location . Piping the output to the Get-Member cmdlet displays information about the object returned by Get-Location .
Командлет 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.
PowerShell — продвинутая командная строка в Windows 10
Друзья, сегодня хочу рассказать про «Windows PowerShell» — средство автоматизации в Windows 10, своего рода язык сценариев с интерфейсом командной строки. Проще говоря, PowerShell — это продвинутая командная строка (cmd) с расширенными возможностями, которые позволяют более профессионально работать с Windows.
Ниже подробно покажу как включить » PowerShell» в Windows 10, расскажу о наиболее полезных на мой взгляд «командлетах» ( командах ) в продвинутой командной строке►►
Как включить PowerShell
Запустить продвинутую командную строку можно через обычную командную строку — для этого нажмите комбинацию клавиш [ WIN + R ] и введите команду «PowerShell». После запуска откроется окно, куда и будем вводить команды.
PowerShell в Windows 10 насчитывает более 620 команд , в данной статье мы рассмотрим наиболее интересные из них. Полный список команд можно посмотреть, введя в консоли PowerShell команду [ Get-Command -CommandType cmdlet ].
Оценка производительности компьютера
Чтобы узнать производительность компьютера на Windows 10 по шкале от 1 (min) до 9,9 (max), сделайте следующее:
- Запустите PowerShell: [ WIN + R ] ► PowerShell ► Ввод
- Введите команду [ winsat formal ] и дождитесь окончания процесса
- Затем введите команду [ Get-CimInstance Win32_WinSAT ] и посмотрите результат.
Общая производительность будет представлена в виде таблички с оценкой производительности отдельно для каждого показателя:
- CPUScore — оценка работы процессора
- D3DScore — оценка работы видеокарты в играх
- DiskScore — оценка работы жесткого диска: для HDD максимум 5,9, для SSD — 9,9
- GraphicsScore — оценка работы видеокарты в видео и на рабочем столе
- MemoryScore — оценка работы ОЗУ (RAM)
Информация о драйверах
Узнать информацию обо всех установленных драйверах на компьютере можно с помощью специальной команды [ Driverquery ]. После ее ввода отобразится список всех драйверов с подробной информацией о каждом из них: название, модуль, версия.
Полная информация о компьютере
Есть специальная команда [ Systeminfo ], которая выведет полную информацию о конфигурации компьютера: все данные об установленной ОС, комплектующих, сетевых настройках и т.п.
С помощью команды [ Get-Process ] можно посмотреть перечень всех запущенных процессов и служб Windows. Если наименование служб вам не знакомо, узнать их название и функции можно с помощью команды [ Get-Service ]
Другие полезные команды PowerShell
Ниже представлен список некоторых команд и функций, которые могут пригодиться:
- [ Set-Date ] — позволяет изменить системную дату и время в WIndows 10
- [ Ipconfig ] — позволяет просмотреть сетевые настройки
- [ Restore-Computer ] — запускает восстановление ОС после критической ошибки, например, «синего экрана смерти»
- [ Restart/Stop-Computer ] — перезагружает или выключает компьютер
- [ New-NetIPAddress ] — позволяет создать и настроить IP-адрес
- [ Get-PSDrive ] — показывает подробную информацию о всех подключенных дисках ( HDD, SSD, USB )
⚡ Как я уже отмечал выше, Windows PowerShell — мощное средство для глубокой настройки Windows 10. Эта продвинутая командная строка позволяет настраивать и выполнять пользовательские скрипты и сценарии. В первую очередь , PowerShell ориентирован на продвинутых пользователей, однако, некоторые команды и функции могут быть полезны и обычным пользователям.