С помощью соответствующих команд PowerShell вы можете использовать модули гораздо более целенаправленно. Различные командлеты логически структурированы и при необходимости могут быть расширены за счет включения параметров. Мы покажем вам 40 наиболее важных команд PowerShell, чтобы вы могли оптимально работать в своей системе или сети.
- Что такое команды PowerShell?
- Наиболее важные команды PowerShell
- 1. Получить-Модуль -All
- 2. Получите команду
- 3. Получить помощь
- 4. Получите процесс
- 5. Получить услугу
- 6. Остановить процесс
- 7. Конвертировать в HTML
- 8. ConvertTo-Xml
- 9. Где объект
- 10. Получить историю
- 11. Очистить историю
- 12. Добавить историю
- 13. Выходной файл
- 14. Копировать элемент
- 15. Get-ChildItem
- 16. Set-AuthenticodeSignature
- 17. Вызов элемента
- 18. Начать работу
- Выполняйте действия с помощью этих команд PowerShell
- 19. Очистить контент
- 20. Для каждого объекта
- 21. Сравнить объект
- 22. Новый объект
- 23. Выберите объект
- 24. Установить псевдоним
- 25. Установить местоположение
- 26. Установить сервис
- 27. Установите часовой пояс
- 28. Перезагрузите компьютер
- 29. Перезапустить службу
- 30. Очистить корзину
- 31. Get-ComputerInfo
- 32. Переместить предмет
- Мониторинг и отладка с помощью соответствующих команд PowerShell
- 33. Процесс отладки
- 34. Включить-PSBreakpoint
- 35. Отключить PSBreakpoint
- 36. Получить счетчик
- 37. Start Sleep
- 38. Тестовый путь
- 39. Тестовое соединение
- 40. Get-WinEvent
Что такое команды PowerShell?
PowerShell, предустановленный начиная с Windows 7, позволяет вводить команды PowerShell, которые затем выполняются Windows . Помимо команд cmd в командной строке существует множество других команд или командлетов, которые понятны только самому PowerShell. Эти командлеты состоят из глагола и существительного, разделенных дефисом. Кроме того, необязательные параметры могут указывать команды PowerShell. Эти параметры разделяются пробелом. PowerShell больше не просто используется администраторами, но и предоставляет ценные услуги, особенно в сфере разработки. Существуют сотни предустановленных команд PowerShell. Мы познакомим вас с самыми важными из них.
Наиболее важные команды PowerShell
Команды PowerShell позволяют выполнять иногда очень обширные задачи администрирования с помощью всего лишь нескольких записей. Команды, которые вам, скорее всего, понадобятся чаще всего, включают следующие основные команды. Они предоставляют первоначальный обзор всей структуры сети, перечисляют другие команды PowerShell, помогают с необходимыми настройками безопасности или проводят полезный анализ. К наиболее важным командам PowerShell относятся следующие:
1. Получить-Модуль -All
Если вы хотите получить первоначальный обзор всех импортированных модулей PowerShell, используйте команду Get-Module -All.
Get-Module -All
2. Получите команду
Существует множество предопределенных команд PowerShell. Если вам нужен обзор команд PowerShell, которые вам доступны на данный момент, используйте команду Get-Command. Здесь четко перечислены все возможные действия и дано краткое объяснение соответствующего командлета. Это также применимо, если у вас установлены дополнительные модули.
Get-Command
3. Получить помощь
Описанный выше листинг Get-Command дает вам начальный обзор, но если вам нужна дополнительная информация о команде и ее возможностях, используйте командлет Get-Help. Эта команда получает доступ к файлам справки на вашем компьютере, а затем предоставляет вам всю доступную информацию. Чтобы включить эту справку, объедините Get-Help с командой, синтаксис которой вы хотите просмотреть.
4. Получите процесс
Во многих случаях полезно как можно быстрее получить обзор всех активных приложений, программ и процессов, которые в данный момент выполняются в вашей системе. Получить обзор можно с помощью команды Get-Process. Если вы укажете его для конкретного приложения, вы получите дополнительную информацию о нем.
Get-Process
5. Получить услугу
Команда Get-Service работает аналогично командлету Get-Process. Разница в том, что Get-Service показывает информацию обо всех активных службах. Если вы хотите получать информацию только о конкретной услуге или конкретном виде различных услуг, просто укажите свой запрос.
Get-Service
6. Остановить процесс
Вы также можете использовать различные команды PowerShell для остановки процессов через командную консоль. Одним из вариантов для этого является команда Stop-Process. Вы сохраняете соответствующий процесс по имени, идентификатору или другим атрибутам. Для примера это выглядит так:
Stop-Process -Name "prozessname"
Stop-Process -Id 3582 -Confirm -PassThru
При -Confirm запрашивается подтверждение команды. Команда -PassThru запрашивает подтверждение остановленного процесса. Это не происходит автоматически.
7. Конвертировать в HTML
Чтобы как можно быстрее выявить проблемы или возможные осложнения, очень полезен четкий дисплей. Команда ConvertTo-HTML переносит выходные данные соответствующих команд PowerShell в файл HTML. При этом вся информация отображается в удобном для чтения формате столбцов. Например, команда выглядит так:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.html
8. ConvertTo-Xml
Вы можете сделать то же самое, если вам нужно XML-представление определенного объекта. Это можно сделать с помощью команды ConvertTo-Xml. В следующем примере вы преобразуете текущую дату в формат XML:
Get-Date | ConvertTo-Xml
9. Где объект
Вы можете использовать команду Where-Object для фильтрации результатов командлета. При запуске команды вы часто получаете много объектов, но все они вам не нужны. Where-Object перенаправляет выходные данные через канал и показывает только ту информацию, которую вы ищете. Например, если вы хотите видеть только сервисы, созданные или обновленные в этом году, вот как это работает:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }
10. Получить историю
Если вы хотите вывести список всех команд PowerShell, введенных вами во время сеанса, используйте командлет Get-History. Чтобы вывести список всех команд PowerShell:
Get-History
В этой спецификации вы вызываете только последние десять команд PowerShell:
Get-History -Count 10
11. Очистить историю
Конечно, у вас также есть возможность удалить список используемых команд PowerShell. Если вы хотите удалить все записи, используйте командлет Clear-History :
Clear-History
Если вы хотите удалить только определенные команды PowerShell, просто добавьте соответствующие параметры. Следующая запись удаляет все команды PowerShell, которые содержат «Справка» или заканчиваются «Синтаксисом».
Clear-History -Command *Help*, *Syntax
12. Добавить историю
Также в сеанс можно добавлять команды PowerShell. Таким образом, в следующий раз вы сможете получить к ним прямой доступ. Соответствующий командлет — Add-History.
Add-History
13. Выходной файл
Если вы хотите сохранить вывод команд PowerShell на свой компьютер, используйте командлет Out-File. При этом команды PowerShell сохраняются в необработанном текстовом файле по указанному пути.
Get-Process | Out-File -FilePath .\Process.txt
14. Копировать элемент
В PowerShell у вас также есть возможность копировать элементы и сохранять копию в другом месте хранения. Для этого используйте команду Copy-Item, а также укажите каталог, в котором должна быть сохранена копия. Это работает следующим образом:
Copy-Item "C:\Ordner1\Datei.txt" -Destination "C:\Ordner2"
15. Get-ChildItem
Используйте команду Get-ChildItem для получения элементов в одном или нескольких местах. Если есть подчиненные элементы, они также будут отображены. По умолчанию эта команда перечисляет атрибуты, время последнего изменения, размер файла и имя элемента. Если место хранения пусто, вывод опускается.
Get-ChildItem -Path C:\Beispiel
Атрибуты отображаются под строкой «Режим». Следующие свойства являются общими:
- a (archive)
- d (directory)
- h (hidden)
- l (link)
- r (read-only)
- s (system)
16. Set-AuthenticodeSignature
Чтобы защитить свои файлы, вы можете предоставить им подпись Authenticode с помощью команды Set-AuthenticodeSignature. Однако это работает только для файлов, поддерживающих пакет интерфейса субъекта (SIP).
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
17. Вызов элемента
Если вы хотите выполнить действие по умолчанию для определенного файла, Invoke-Item — самый простой способ. Например, команда обеспечивает непосредственное выполнение исполняемого файла или открытие файла документа в назначенном приложении. В этом примере доступ к файлу по умолчанию осуществляется в Microsoft Word:
18. Начать работу
Даже если вы хотите запустить фоновое задание на своем локальном компьютере, для этого есть подходящая команда. С помощью Start-Job вы запускаете определенную команду в фоновом режиме, которая не взаимодействует с текущим сеансом.
Start-Job -ScriptBlock { Get-Process -Name pwsh }
Выполняйте действия с помощью этих команд PowerShell
Хотя предыдущие команды PowerShell в основном использовались для обзора, вы также можете использовать соответствующие командлеты для выполнения многих действий и, таким образом, продуктивно использовать свою систему. Следующие команды PowerShell облегчат вашу работу.
19. Очистить контент
Если вы хотите очистить содержимое элемента, но оставить сам элемент нетронутым, команда Clear-Content — правильный выбор. Примером его использования может служить документ, текст которого вы удаляете, оставляя сам файл нетронутым. Этот процесс выглядит следующим образом:
Clear-Content C:\Temp\Beispiel.txt
20. Для каждого объекта
Команда ForEach-Object позволяет выполнять операцию над всеми элементами коллекции входных объектов. В этом примере мы делим три целых числа в массиве на 10:
10000, 1000, 100 | ForEach-Object -Process {$_/10} 1000 100 10
21. Сравнить объект
Чтобы избежать необходимости вручную сравнивать разные наборы объектов, вы можете использовать командлет Compare-Object. Затем команда выдает отчет о различиях между предложениями. Первое предложение используется как эталонный объект, а второе предложение как разностный объект. Вы можете определить, какие факторы следует сравнивать. Если вы опустите эту информацию, друг с другом будут сравниваться только результаты строк. Вывод разделен на свойства, которые появляются только в ссылочном объекте (<) и свойства, которые появляются только в объекте различия (>). В этом примере Document1.txt содержит значения Берлин, Лондон и Париж. Document2.txt содержит Берлин, Вену и Амстердам.
Compare-Object -ReferenceObject (Get-Content -Path C:\Test\Dokument1.txt) -DifferenceObject (Get-Content -Path C:\Test\Dokument2.txt) InputObject SideIndicator --------------- ----------------- Wien ==> Amsterdam ==> London <== Paris <==
Содержимое, которое появляется в обоих документах (в данном случае «Берлин»), по умолчанию не отображается.
22. Новый объект
Одна из особенно полезных команд PowerShell — New-Object. Используйте этот командлет для создания экземпляра.NET Framework или объектной модели компонентов (COM). Например, если вы хотите создать System.Version.Object со строкой конструктора 1.2.3.4, команда работает следующим образом:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"
23. Выберите объект
Используйте команду «Выбрать-Объект», чтобы выбрать объект или группу объектов, которые имеют определенные вами свойства. Параметры, которые вы можете установить для этого:
- First
- load
- Unique
- Skip
- index
В следующем примере мы используем команды PowerShell Get-Process и Sort-Object для отображения трех процессов, которые потребляют наибольшее количество памяти на момент входа.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3
24. Установить псевдоним
Ярлыки Windows — отличный способ выполнять действия еще быстрее. В принципе, PowerShell также предлагает такую возможность. В системе вы можете использовать командлет Set-Alias для определения ярлыка для разных команд PowerShell. В следующем примере мы создаем псевдоним «ci» для команды Get-ChildItem для текущего сеанса.
PS> Set-Alias -Name ci -Value Get-ChildItem PS> Get-Alias -Name ci
25. Установить местоположение
Если вы хотите изменить рабочее место хранения, используйте команду Set-Location. Возможные новые местоположения включают каталоги, подкаталоги, местоположения реестра или пути поставщика. В следующем примере мы обозначаем диск C: в качестве текущего местоположения:
PS C:\Windows\> Set-Location HKLM:\ PS HKLM:\> Set-Location C: PS C:\Windows\>
26. Установить сервис
Вы можете использовать командлет Set-Service для взаимодействия со службой и ее запуска, остановки или остановки. Также возможно изменить свойства этой услуги. В следующем примере мы меняем отображаемое имя службы с «Новая рабочая станция» на «Старая рабочая станция».
Set-Service -Name Neue Workstation -DisplayName "Alte Workstation"
27. Установите часовой пояс
Если вы хотите изменить часовой пояс вашей системы, команда Set-TimeZone — правильный выбор. Если вы хотите установить всемирное координированное время в качестве нового системного времени, используйте соответствующую команду:
Set-TimeZone -Id "UTC"
28. Перезагрузите компьютер
У вас есть возможность перезагрузить операционную систему на локальном или удаленном компьютере. Соответствующие команды PowerShell под названием «Перезагрузить компьютер» выглядят следующим образом:
Для вашего локального компьютера:
Restart-Computer
Для некоторых других компьютеров в вашей сети:
Restart-Computer -ComputerName Server01, Server03
29. Перезапустить службу
Если вы хотите остановить и перезапустить службу с помощью команд PowerShell, подходящим командлетом будет Restart-Service. Например, чтобы перезапустить все службы, имена которых начинаются с «Net»:
PS C:\> Restart-Service -DisplayName "net*"
30. Очистить корзину
Мусор необходимо регулярно выносить. Опорожнение также возможно через PowerShell. Команда Clear-RecycleBin.
Clear-RecycleBin
31. Get-ComputerInfo
Команда Get-ComputerInfo используется для получения свойств системы и операционной системы.
Get-ComputerInfo
32. Переместить предмет
Существуют различные команды PowerShell, если вы хотите переместить элемент из одного места в другое. Однако наиболее распространенным вариантом является Move-Item. В этом примере мы перемещаем файл alt.txt с диска C: в каталог D:\Temp и также переименовываем его в new.txt.
Move-Item -Path C:\alt.txt -Destination D:\Temp\neu.txt
Мониторинг и отладка с помощью соответствующих команд PowerShell
Команды PowerShell, которые вы можете использовать для мониторинга и проверки вашей системы, также особенно полезны. Это особенно выгодно, если вы хотите протестировать новую сеть и ее производительность в реалистичных условиях. Здесь могут оказаться полезными следующие команды PowerShell.
33. Процесс отладки
Отладка — это важный процесс, позволяющий убедиться, что все настройки и процессы работают правильно. Для этого необходимо сначала скачать и настроить соответствующие отладчики. Как только это будет сделано, примените его с помощью команды Debug-Process. В следующем примере мы используем отладчик для Explorer:
PS C:\> Debug-Process -Name "Explorer"
Если вы хотите отладить несколько процессов одновременно, просто разделите их запятыми.
34. Включить-PSBreakpoint
Если вы хотите включить определенные точки останова (так называемые точки останова), используйте команду Enable-PSBreakpoint. С технической точки зрения это устанавливает значение командлета «true». Используйте эти команды PowerShell, чтобы включить все точки останова в текущем сеансе:
Get-PSBreakpoint | Enable-PSBreakpoin
Используйте эту команду для активации точек останова, используя их идентификатор:
Enable-PSBreakpoint -ID 0, 3, 4
35. Отключить PSBreakpoint
Если вы хотите снова отключить точки останова PowerShell, для этой цели также есть подходящий командлет Disable-PSBreakpoint. Технически говоря, для этого необходимо установить для команды Enable-PSBreakpoint значение «false». Чтобы отключить точку останова с идентификатором 0, введите:
Disable-PSBreakpoint -Id 0
36. Получить счетчик
Если вы используете устройства Windows, вы можете получить доступ к их данным о производительности через PowerShell. Подходящей для этого командой является Get-Counter. Вы можете использовать команду как для своего локального компьютера, так и для удаленных компьютеров. В следующем примере мы получаем данные с локального компьютера:
Get-Counter -ListSet *
37. Start Sleep
Особенно когда система перегружена, может быть очень важно иметь возможность приостановить выполнение сценария или сеанса. PowerShell предлагает для этого команду Start-Sleep. Вы указываете период, в течение которого следует запретить действия. В следующем примере выполнение останавливается на две секунды.
Start-Sleep -Seconds 2
38. Тестовый путь
Используйте команду Test-Path, чтобы проверить, присутствуют ли все элементы определенного пути. Возможные результаты: «Правда» или «Ложь».
Test-Path -Path "C:\Documents and Settings\Nutzer" False
39. Тестовое соединение
Вы также можете проверить соединения внутри своей сети с помощью PowerShell. При этом пакет эхо-запроса ICMP отправляется указанным получателям с помощью команды Test-Connection и запрашивается ответ через этот протокол управляющих сообщений Интернета. В нашем примере мы отправляем Server02 запрос по протоколу IPv6.
Test-Connection -TargetName Server02 -IPv6
40. Get-WinEvent
Если вам нужно просмотреть один или несколько журналов событий, доступны различные команды PowerShell. Самый практичный командлет — Get-WinEvent. Для всех журналов с вашего локального компьютера введите следующую команду:
Get-WinEvent -ListLog *








