Команды PowerShell, которые вы должны знать
PowerShell действительно мощный и может значительно упростить вашу повседневную работу.
С учетом всех модулей, которые вы можете загрузить, существует множество команд PowerShell. Но какие команды PowerShell вы обязаны знать?
Некоторые команды вам, возможно, уже известны, но знали ли вы, что можно получить полный автозаполнение всех возможных параметров с помощью комбинации клавиш? Или искать среди команд, которые вы вводили ранее?
В этой статье я собрал 10 основных команд PowerShell и 25 полезных команд, которые действительно помогут вам в вашей повседневной работе. Если у вас есть другие рекомендации, пожалуйста, добавьте их в комментариях ниже!
Что такое команды PowerShell?
Команды PowerShell, более известные как cmdlets, являются строительными блоками скриптов и модулей PowerShell. Cmdlets предназначены для выполнения специфических задач, таких как получение информации, изменение настроек или создание новых экземпляров.
Команды PowerShell созданы, чтобы быть простыми в использовании и следовать согласованной системе именования. Названия команд состоят из глагола и существительного, разделённых дефисом. Например, команда Get-Process используется для получения информации о работающих процессах, а команда Set-ExecutionPolicy используется для изменения политики выполнения PowerShell.
PowerShell также поддерживает запуск традиционных командных инструментов и скриптов. Это позволяет пользователям использовать существующие инструменты и скрипты в скриптах и модулях PowerShell.
10 основных команд PowerShell
Мы начнем с 10 основных команд PowerShell, которые наиболее полезны в вашей повседневной работе. Знание этих команд позволяет вам извлечь больше из PowerShell и упростить вашу работу.
- Get-Help – Отображает информацию справки о командлетах PowerShell и концепциях.
- Get-Command – Перечисляет все доступные командлеты в PowerShell.
- Write-Host – Записывает вывод непосредственно в консоль или другой хост.
- Get-History – Отображает список ранее выполненных команд.
- Get-Content – Извлекает содержимое файла или другого объекта.
- Where-Object – Фильтрует входные объекты на основе заданных критериев.
- Format-List – Форматирует вывод как список.
- Format-Table – Форматирует вывод в виде таблицы.
- Get-ChildItem – Список элементов в указанном месте.
- Get-Credential – Запрашивает у пользователя учетные данные.
1. Получить-Помощь
Командлет Get-Help отображает подробную справочную информацию о командах PowerShell. Он покажет синтаксис командлета и параметры, которые вы можете использовать. Это отличный способ узнать больше о новых командлетах.
Например, чтобы отобразить справочную информацию о команде Get-Credential, выполните следующую команду:
Get-Help Get-Credential
Result
NAME
Get-Credential
SYNTAX
Get-Credential [-Credential] <pscredential> [<CommonParameters>]
Get-Credential [[-UserName] <string>] -Message <string> [<CommonParameters>]
ALIASES
NoneБольшинство командлетов также имеют примеры, которые вы можете просмотреть с помощью команды Get-Help. Чтобы просмотреть примеры, вам нужно добавить параметр -examples:
Get-Help Connect-ExchangeOnline -Examples
Result
NAME
Connect-ExchangeOnline
SYNOPSIS
This cmdlet is available only in the Exchange Online PowerShell module. For more information, see About the Exchange Online PowerShell module (https://aka.ms/exov3-module).
-------------------------- Example 1 --------------------------
Connect-ExchangeOnline -UserPrincipalName chris@contoso.com
This example connects to Exchange Online PowerShell using modern authentication, with or without multi-factor authentication (MFA). We aren't using the UseRPSSession parameter, so the connection uses REST and doesn't require Basic authentication to be enabled in WinRM on the local computer.
-------------------------- Example 2 --------------------------
Connect-ExchangeOnline -UserPrincipalName chris@contoso.com -UseRPSSession2. Получить-Команду
Get-Command командлет перечисляет все доступные командлеты в PowerShell. Эта команда может быть использована для изучения доступных командлетов и для того, чтобы узнать больше о их параметрах и использовании.
Чтобы перечислить все доступные командлеты, содержащие слово "process" в своем имени, выполните следующую команду:
Get-Command *process*3. Write-Host
Командлет Write-Host выводит данные непосредственно в консоль. Эта команда может быть использована для отображения информации пользователю или для демонстрации информации для целей устранения неполадок. Кроме Write-Host, вы также можете использовать Write-Warning для вывода предупреждающего сообщения или Write-Error для сообщений об ошибках.
Чтобы вывести текст «Привет, мир!» на консоль, выполните следующую команду:
Write-Host "Hello, World!"4. Получить-Историю
Когда вы работаете в PowerShell, вы, вероятно, часто используете клавишу со стрелкой вверх, чтобы найти ту команду, которую вы использовали ранее. Чем дольше вы работаете в своей сессии PowerShell, тем больше команд вам может понадобиться просмотреть.
Но вы знали, что можете использовать командлет Get-History, чтобы просмотреть все команды, которые вы использовали? PowerShell отслеживает команды, которые вы ввели во время сессии. По умолчанию он запоминает последние 4096 записей!
Просто введите Get-History, чтобы просмотреть все последние команды, которые вы использовали:
Get-HistoryВ этом примере у меня всего 8 записей, поэтому легко найти нужную команду. Но когда у вас больше записей, полезно знать, что мы также можем искать/фильтровать командлет Get-History, передавая ему Where-object:
Get-History | Where-Object {$_.Commandline -like "*EXOMailbox*"}
Result
Id CommandLine
-- -----------
4 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
6 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'"
7 Get-EXOMailbox -Filter "RecipientType -eq 'UserMailbox'" | Select Name,EmailAddresses5. Получить- Содержимое
Командлет Get-Content извлекает содержимое файла или другого объекта. Эта команда может использоваться для чтения содержимого файла или для извлечения других типов данных.
Чтобы получить содержимое файла с именем «example.txt», выполните следующую команду:
Get-Content example.txt6. Where-Object
Where-Object командлет фильтрует входные объекты на основе заданных критериев. Эта команда может быть использована для выбора конкретных элементов из большего набора данных. Часто, когда вы получаете информацию из системы или ресурса, возвращается более одной записи. Применяя командлет Where-Object, мы можем отфильтровать результаты.
Например, чтобы получить все файлы, размер которых больше 10 МБ из указанного каталога, мы можем выполнить команду ниже. Get-ChildItem получит все файлы, в то время как cmdlet Where-Object выберет только файлы, размер которых больше -gt указанного.
$path = "C:\temp\files\"
Set file size
$sizeInMb = 10
Calculate actual file size
$size = $sizeInMb*1024*1024
Delete all files that are larger then given size
Get-ChildItem -Path $Path -Recurse -File | Where-Object { $_.length -gt $size }7. Формат-список/Формат-таблица
Команды Format-List и Format-Table форматируют вывод команды в виде списка или таблицы. Форматирование вывода делает результаты более понятными.
Format-List, сокращенно fl, часто используется, когда вы хотите увидеть все результаты команды. Команды в PowerShell часто возвращают только выборку данных. Пропуская команду Format-List за ней, вы можете увидеть все данные. Например, команда Get-LocalUser возвращает только основную информацию об учетной записи пользователя:
Get-LocalUser Admin
Result
Name Enabled Description
---- ------- -----------
admin FalseНо когда мы добавляем Format-List после этого, мы можем увидеть всю информацию о учетной записи пользователя:
Get-LocalUser Admin | fl
Result
AccountExpires :
Description :
Enabled : False
FullName :
PasswordChangeableDate : 27-6-2019 12:20:44
PasswordExpires :
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 27-6-2019 12:20:44
LastLogon : 27-9-2022 13:43:46
Name : admin
SID : S-1-5-21-3190960386-960769250-3760335402-1001
PrincipalSource : LocalFormat-Table отформатирует результаты в таблицу. Большинство командлетов, которые возвращают несколько записей, по умолчанию форматируют результат в виде таблицы. В противном случае вы можете использовать командлет Format-Table. Если столбцы не помещаются в вашем консоли, то может помочь добавление параметра -Autosize к командлету.
Get-Hotfix | ft -AutoSize9. Получить-ЭлементыДетей
Команда Get-ChildItem используется для получения списка файлов и/или каталогов по указанному пути. Она аналогична команде dir в командной строке. Единственное преимущество cmdlet Get-ChildItem заключается в том, что мы можем использовать фильтры и другие параметры, чтобы выбрать только те результаты, которые нам нужны.
Например, чтобы получить все txt файлы из директории c:\test и её подпапок, мы можем использовать команду ниже в PowerShell:
Get-ChildItem -Path C:\Test\*.txt -Recurse10. Получить учетные данные
Команда Get-Credential используется для запроса имени пользователя и пароля у пользователя. Она возвращает объект PSCredential, который можно использовать для аутентификации пользователя в других командах.
$cred = Get-Credential
Connect-MsolService -Credential $credЭто запросит у пользователя имя пользователя и пароль, а затем использует полученные учетные данные для подключения к службам Microsoft Online.
25 полезных команд PowerShell
Существует более 200 команд PowerShell, которые мы можем использовать. Я не собираюсь перечислять все из них в этой статье, но вот 25 самых полезных команд для PowerShell:
- Get-Random: Генерирует случайное число или выбирает случайный элемент из коллекции.
- Get-Content: Извлекает содержимое файла и выводит его как объекты в PowerShell.
- Get-Clipboard: Извлекает содержимое буфера обмена.
- Get-Date: Извлекает текущую дату и время.
- Out-File: Отправляет вывод в файл вместо консоли.
- Out-GridView: Отображает данные в интерактивном представлении сетки для облегчения исследования.
- Import-CSV: Импортирует данные из CSV-файла и создает объекты на основе данных.
- Экспорт-CSV: Экспортирует данные в файл CSV.
- Copy-Item: Копирует файл или каталог из одного места в другое.
- Move-Item: Перемещает файл или каталог из одного места в другое.
- Remove-Item: Удаляет файл или каталог.
- Test-Path: Проверяет, существует ли файл или каталог по указанному пути.
- New-PSDrive: Создает новый диск PowerShell (псевдоним), сопоставленный с местоположением в хранилище данных.
- Enter-PSSession: Создает интерактивную сессию с удалённым компьютером.
- Start-Process: Запускает новый процесс (исполняемый файл) на локальном или удаленном компьютере.
- Выбрать-Строку: Ищет текстовые паттерны в файлах или входных объектах.
- Начать-транскрипцию: Начинает запись транскрипта текущей сессии PowerShell.
- Start-Sleep: Приостанавливает выполнение скрипта или командлета на заданное время.
- Measure-Command: Измеряет время выполнения блока скрипта или команды.
- Measure-Object: Вычисляет статистические свойства объектов, такие как сумма, среднее, минимум или максимум.
- Сравнить-объект: Сравнивает два набора объектов и показывает различия.
- ConvertTo-HTML: Преобразует объекты PowerShell в формат HTML для удобного отображения.
- ConvertTo-SecureString: Преобразует зашифрованные стандартные строки в защищенные строки.
- Set-Alias: Создает или изменяет псевдоним (ярлык) для команды cmdlet или команды.
- Sort-Object: Сортирует объекты по указанным свойствам.
11. Получить-случайный
При написании скриптов не редкость использовать случайную функцию для генерации случайного целого числа. Но команда Get-Random в PowerShell может делать больше, чем просто генерировать целое число. Она также способна, например, выбирать случайный элемент из массива.
Cmdlet Get-Random использует класс RandomNumberGenerator, который позволяет генерировать криптографически безопасное случайное число. По умолчанию он возвращает целое число от 0 до 2,147,483,647. Но, конечно, мы можем задать минимальное и максимальное значение.
Get-Random -Minimum -50 -Maximum 150
Result
111Get-Random также может использоваться для выбора случайного элемента из массива:
$array = 'apple','pear','raspberry','kiwi','banana','melon','blueberry'
$array | Get-Random
Result
raspberry12. Получить- Содержимое
Команда Get-Content читает содержимое файла и возвращает его в виде объекта. Вы можете использовать этот командлет для чтения текстовых файлов, файлов журналов и других типов файлов. По умолчанию Get-Content возвращает содержимое файла в виде одной строки. Однако вы можете использовать параметр -Delimiter, чтобы разделить файл на отдельные строки или другие сегменты.
Узнайте больше о команде Get-Content в этой статье.
Read the contents of a text file
Get-Content -Path "C:\Temp\example.txt"
Read the contents of a file and display only the first 5 lines
Get-Content -Path "C:\Temp\example.txt" -TotalCount 5
13. Получить-Буфер обмена
Get-Clipboard командлет извлекает содержимое буфера обмена Windows. Вы можете использовать этот командлет для получения текста, изображений и других типов данных, которые были скопированы в буфер обмена.
Get the contents of the clipboard as text
Get-Clipboard -Format Text
Get the contents of the clipboard as an image
Get-Clipboard -Format ImageНо мы можем не только извлекать данные из буфера обмена, мы также можем копировать данные в буфер обмена с помощью PowerShell. Просто добавьте clip после вашей команды, чтобы сохранить результаты в вашем буфере обмена:
Get-Content -path "c:\temp\fruits.txt" | clipТеперь вы можете просто вставить содержимое в любую программу, которую хотите. Чтобы просмотреть/вставить содержимое буфера обмена в PowerShell, используйте Get-Clipboard:
Get-Clipboard
Result
BlueBerry;StrawBerry;BlackBerry;RaspBerry;CranBerry;14. Получить дату
Get-Date командлет возвращает текущую дату и время на локальном компьютере. Вы можете использовать этот командлет для выполнения расчетов с датой и временем, а также для отображения даты и времени в определенном формате.
Убедитесь, что вы прочитали эту статью, чтобы узнать больше о командлете Get-Date.
Get the current date and time
Get-Date
Get the date and time 10 days from now
Get-Date -Date (Get-Date).AddDays(10)
Get the date and time in a specific format
Get-Date -Format "yyyy-MM-dd hh:mm:ss"15. Вывод в файл
Командлет Out-File отправляет вывод в файл. Вы можете использовать этот командлет для сохранения вывода команды или скрипта в текстовый файл, CSV файл или другие типы файлов. Однако для CSV файлов лучше использовать командлет Export-CSV.
Save the output of a command to a text file
Get-Service | Out-File -FilePath "C:\Temp\services.txt"
Save the output of a command to a CSV file
Get-Process | Select-Object Name, CPU | Out-File -FilePath "C:\Temp\processes.csv" -Encoding UTF8
16. Out-GridView
При тестировании скриптов или работе в PowerShell мы часто выводим результат прямо в консоль. Мы можем форматировать результирующий набор в виде таблицы с помощью format-table или кратко ft. Но с большими наборами данных это не всегда лучший вариант. Данные могут быть обрезаны или в вашем обзоре отсутствуют некоторые столбцы.
Вывод в виде сетки является отличным решением для этого. Он выведет все данные в удобном для поиска и сортировки виде в новом окне. Таблица содержит все столбцы, которые вы можете сортировать и по которым можете искать.
Get-EXOMailbox | Out-GridviewВ верхнем левом углу вы можете добавить фильтры к набору результатов, что позволит вам легко найти нужные данные:
Теперь лучшая часть gridview в PowerShell заключается в том, что мы можем выбрать нужные элементы и передать их обратно в PowerShell. Для этого вам нужно будет добавить параметр -PassThru к команде:
Get-EXOMailbox | Out-Gridview -PassThruВыберите необходимые записи и нажмите ОК. Вы можете просто добавить оператор выборки, или сохранить результаты в переменной.
17. Импорт-CSV
Командлет Import-CSV используется для импорта данных из файла CSV в PowerShell. Он преобразует данные из CSV файла в объект, который можно легко обрабатывать с помощью других командлетов. Это полезно, когда вам нужно работать с большими наборами данных, которые хранятся в файле CSV.
Узнайте больше о команде Import-CSV в этой статье.
Import-CSV C:\data\employees.csv | Format-Table18. Экспорт-CSV
Команда Export-CSV также является одной из тех команд, которые отлично подходят для использования, когда вы получаете данные с помощью PowerShell. Мы все знаем, что Excel отличен для дальнейшей обработки данных. Команда Export-CSV создает файл CSV из ваших данных.
Добавьте параметр NoTypeInformation и Encoding за ним. Первый удалит информацию заголовка в вашем CSV-файле, а второй гарантирует, что используется правильная кодировка.
Читать больше о Export-CSV в этой статье.
Get-EXOMailbox | Export-CSV -path c:\temp\mailbox.csv -NoTypeInformation -Encoding UTF819. Копировать элементы
Командлет Copy-Item используется для копирования файлов и каталогов из одного места в другое. Он позволяет указать исходное и конечное местоположение, а также предоставляет возможность перезаписывать существующие файлы или сохранять их атрибуты. Это полезно, когда вам необходимо сделать резервную копию или передать файлы и каталоги.
Узнайте больше о команде Copy-Item в этой статье.
Например, команда ниже создает копию папки документов в папку d:\backup.
Copy-Item -Path C:\data\documents -Destination d:\backup -Recurse20. Переместить-Элемент
Мы также можем перемещать элементы с помощью PowerShell, используя командлет Move-Item. Он похож на командлет Copy-Item, но вместо того, чтобы создавать копию, перемещает файлы и директории в новое местоположение. Это полезно, когда вам нужно переместить файлы и директории на вашем компьютере или между разными компьютерами.
Предположим, вы хотите переместить файл с именем 'report.docx' с рабочего стола в папку с именем 'documents'. Вы можете использовать следующую команду, чтобы переместить файл в папку 'documents'.
Move-Item -Path C:\users\username\desktop\report.docx -Destination C:\data\documents21. Удалить-Элемент
Remove-Item команда используется для удаления файла или каталога. Она также может удалять файлы внутри каталога и его подкаталогов. Вы можете использовать параметр -Recurse для рекурсивного удаления каталогов и их содержимого. Она также может удалять файлы только для чтения, скрытые файлы и системные файлы. Однако перед удалением любых файлов только для чтения или скрытых файлов она запросит у вас подтверждение.
Узнайте больше о команде Remove-Item в этой статье.
Чтобы удалить файл, вы можете использовать следующую команду:
Remove-Item C:\Temp\file.txt22. Тестировать путь
Команда Test-Path используется для проверки существования файла или каталога по указанному пути. Она возвращает True, если файл или каталог существует, и False, если он не существует. При работе с файлами или каталогами вы действительно должны часто использовать эту команду. Прочитайте все о команде Test-Path в этой статье.
Чтобы проверить, существует ли файл, вы можете использовать следующую команду:
Test-Path C:\Temp\file.txt23. Новый-PSDrive
Командлет New-PSDrive используется для создания нового диска Windows PowerShell, который “сопоставлен” с местоположением в хранилище данных, таким как сетевой диск, каталог на локальном компьютере или ключ реестра. Созданный диск ведет себя как обычный диск Windows и может быть доступен с помощью стандартных команд Windows.
Например, чтобы создать новый диск, который будет отображаться как сетевой ресурс, вы можете использовать приведенную ниже команду в PowerShell. Узнайте больше о команде New-PSDrive в этой статье.
New-PSDrive -Name "N" -PSProvider FileSystem -Root "\\Server\Share"24. Вход в сеанс PSSession
Нужно выполнить команду PowerShell на сервере? Большинство открывают удаленный рабочий стол, чтобы начать сеанс PowerShell на сервере, но на самом деле это не обязательно. С помощью PowerShell мы можем начать интерактивный сеанс с удаленным компьютером, используя командлет Enter-PSSession.
Чтобы начать интерактивную сессию, просто введите:
Enter-PSSession -Computername LazySrvLab02
Result
[LazySrvLab02]: PS C:\>Теперь вы можете выполнять команды PowerShell на сервере, так же как если бы вы работали непосредственно на сервере. Если вам нужно аутентифицироваться с другими учетными данными, используйте параметр -credential, чтобы указать имя пользователя, которое вы хотите использовать. Вам будет предложено ввести пароль.
Чтобы выйти из удаленной сессии, введите Exit-PSSession
25. Запустить-Процесс
Start-Process командлет используется для запуска нового процесса, например, исполняемого файла или скрипта, и при необходимости передать ему аргументы. Вы можете указать путь к файлу, аргументы, рабочий каталог и другие параметры при запуске процесса. Этот командлет полезен, когда вам нужно запустить процесс из скрипта или командной строки.
Start-Process -FilePath "C:\Program Files\MyApp\MyApp.exe" -ArgumentList "-Option1", "-Option2"26. Выбрать-строку
Select-String cmdlet ищет в заданном вводе (текстовые файлы, строки и т.д.) определённый шаблон строки и выводит любые строки, которые соответствуют этому шаблону. Это похоже на команду grep в системах Unix/Linux.
Допустим, у вас есть файл журнала, в котором вы хотите найти строки, содержащие слово «ошибка». Вы можете использовать Select-String для этого. Команда ниже будет искать в файле журнала и выводить все строки, содержащие слово «ошибка». Подробнее о команде PowerShell Select-String читайте в этой статье.
Select-String -Path C:\logs\logfile.txt -Pattern "error"27. Начать транскрипцию
Команда Start-Transcript создает стенограмму сессии PowerShell, которая включает все введенные команды и их вывод. Стенограмма сохраняется в текстовый файл.
Чтобы создать транскрипцию, вам нужно выполнить команду ниже, чтобы начать запись. Когда закончите, вы можете использовать командлет Stop-Transcript. Узнайте больше о Start-Transcript в этой статье.
Start-Transcript -Path C:\transcript.txt28. Начать-Спать
Start-Sleep команда приостанавливает сессию PowerShell на указанное количество времени. Это полезно для создания скриптов, которые должны ждать определенное время перед выполнением следующей команды.
Команда ниже приостанавливает скрипт на 10 секунд. Узнайте больше о команде PowerShell Start-Sleep в этой статье:
Start-Sleep -Seconds 1029. Измерить-команду
Команда Measure-Command измеряет время, необходимое для выполнения команды. Это полезно для оптимизации скриптов и выявления узких мест в производительности.
Предположим, у вас есть скрипт, который вы хотите оптимизировать. Вы можете использовать Measure-Command, чтобы измерить время, необходимое для выполнения конкретной команды. Например, следующая команда измерит время, необходимое для копирования файла из одного места в другое:
Measure-Command {Copy-Item -Path C:\files\file.txt -Destination D:\backup\file.txt}Вывод команды покажет затраченное время, а также другие статистические данные, такие как используемое процессорное время и количество выполненных сборок мусора.
30. Измерить объект
Measure-Object командлет вычисляет свойства числовых объектов, такие как сумма, среднее значение, минимум, максимум и стандартное отклонение. Он полезен для анализа вывода других команд PowerShell.
Предположим, мы хотим рассчитать средний размер всех файлов в директории. Мы можем использовать командлет Get-ChildItem, чтобы получить файлы в директории, и передать вывод в командлет Measure-Object, чтобы рассчитать средний размер:
Get-ChildItem C:\temp | Measure-Object -Property Length -Average31. Сравнить-Объект
Compare-Object командлет сравнивает два набора объектов и возвращает различия. Это полезно для поиска различий между двумя наборами данных.
Например, давайте сравним массив с фруктами:
$fruits = "apple","kiwi","pear"
$basket = "kiwi","raspbery"
Compare-Object -IncludeEqual $fruit $basket
Result
InputObject SideIndicator
----------- -------------
kiwi ==
raspbery =>
grape <=
pear <=32. ПреобразоватьВ-Html
ConvertTo-Html командлет преобразует объекты PowerShell в формат HTML. Это полезно для генерации отчетов и отображения данных в более удобочитаемом формате.
Предположим, что мы хотим сгенерировать HTML-отчет о работающих процессах на компьютере. Мы можем использовать командлет Get-Process, чтобы получить работающие процессы, и направить вывод в командлет ConvertTo-Html, чтобы сгенерировать HTML-отчет:
Get-Process | ConvertTo-Html | Out-File C:\temp\processes.html33. Преобразовать в безопасную строку
Команда ConvertTo-SecureString преобразует строку в открытом формате в защищенную строку, которая может быть использована для хранения конфиденциальных данных, таких как пароли или ключи API, более безопасным способом. Это полезно для предотвращения несанкционированного доступа к конфиденциальным данным.
Например, мы хотим сохранить пароль в переменной для использования в скрипте. Мы можем использовать командлет Read-Host, чтобы запросить у пользователя пароль, а затем передать его вывод в командлет ConvertTo-SecureString, чтобы преобразовать его в безопасную строку:
$password = Read-Host "Enter password" -AsSecureString
$cred = New-Object System.Management.Automation.PSCredential ("username", $password)34. Установить псевдоним
Set-Alias командлет создает или изменяет псевдоним (альтернативное имя) для командлета или другого элемента команды в текущей сессии PowerShell. Это может помочь сэкономить время на ввод длинных имен команд или создать пользовательские аббревиатуры для часто используемых команд.
В этом примере мы создаем псевдоним l для команды ls. Теперь вместо того, чтобы вводить ls для отображения файлов, мы можем просто ввести l.
Set-Alias -Name l -Value ls35. Сортировать-Объект
Sort-Object командлет сортирует объекты в порядке возрастания или убывания на основе одного или нескольких свойств. Его можно использовать для сортировки любого типа объекта, например, файлов, каталогов, ключей реестра или объектов PowerShell.
В этом примере мы используем Get-ChildItem, чтобы получить список файлов и директорий в текущем каталоге. Затем мы передаем этот вывод в Sort-Object, чтобы отсортировать список по имени в порядке убывания, и, наконец, используем Select-Object, чтобы показать только первые 10 элементов в отсортированном списке.
Get-ChildItem | Sort-Object -Property Name -Descending | Select-Object -First 10Бонусные советы
Ctrl + Пробел
Это на самом деле не команда PowerShell, но вам бы хотелось узнать об этом сочетании клавиш раньше. При использовании командлета мы все часто нажимаем дефис - и затем пролистываем все возможные параметры, которые имеет данный командлет.
Но вы знали, что можете увидеть все параметры сразу? Чтобы попробовать это, введите командлет и нажмите Ctrl + Space:
Это отобразит все существительные и параметры, которые вы можете использовать с командлетом. Теперь нажатие Ctrl + Space — это метод, к которому вам нужно будет привыкнуть, но вы также можете настроить следующее в вашем профиле PowerShell:
Set-PSReadlineKeyHandler -Key Tab -Function CompleteТаким образом, вам нужно будет только ввести дефис и нажать Tab дважды, чтобы перечислить все параметры.
Set-StrictMode
Команда Set-StrictMode в PowerShell устанавливает и применяет правила кодирования. По умолчанию строгий режим выключен, и это может вызвать настоящую неразбериху. Когда строгий режим выключен, PowerShell рассматривает неинициализированные переменные как $null или 0, например.
Обратите внимание на следующий код:
$username = 'adelev'
Get-EXOMailbox $usename | Set-mailbox -Hiddenfromaddresslist:$trueВ приведенном выше примере я неправильно написал переменную $username в команде Get-ExoMailbox. Если строгий режим не включен, PowerShell будет обрабатывать неправильно написанную переменную $usename как $null, в результате чего команда получит все почтовые ящики и скроет их все из списка адресов.
Когда вы установите StrictMode на версию 2, PowerShell вместо этого выдаст ошибку, что переменная не установлена.
Set-StrictMode -Version 2Я рекомендую добавить команду Set-StrictMode -Version 2 в ваш профиль PowerShell.
Завершение
С помощью PowerShell мы всегда можем изучать новое и улучшать наши скрипты или методы работы, чтобы облегчить нашу работу. Эти команды PowerShell действительно могут помочь вам в этом. Команды, такие как Set-StrictMode и полная функция автозавершения, являются одними из лучших команд, которые стоит знать и использовать.
Надеюсь, вы нашли этот список команд PowerShell полезным, и если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте комментарий ниже!







