Основные команды PowerShell для всех операционных систем Windows

Опубликовано: 16 Марта, 2023
Основные команды PowerShell для всех операционных систем Windows

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

Служба запросов на компьютерах с Windows

Раньше, когда вам нужно было запросить статус служб в операционных системах Windows, вы использовали инструмент командной строки SC.exe. Инструмент командной строки SC.exe по-прежнему используется многими администраторами, учитывая тот факт, что он не требует установки PowerShell на локальном компьютере. Но новые версии операционных систем Windows уже поставляются с PowerShell. Итак, если вам нужно вернуть список запущенных служб на локальном компьютере, вы можете выполнить эту команду PowerShell:
Get-Service | Where-Object {$_.Status –eq “Running”}
Приведенная выше команда возвращает только службы, запущенные на локальном компьютере. Если вам нужно увидеть список служб, начинающихся с определенной строки, например «WMI», вы выполните эту команду:
Get-Service –DisplayName “*WMI*”

Хотя приведенные выше команды PowerShell выполняются на локальном компьютере, приведенную ниже команду PowerShell можно использовать для получения списка служб с удаленного компьютера:
Get-WMIObject Win32_Service –Computer WinServer1

Как видно из приведенной выше команды, мы используем командлет PowerShell Get-WMIObject и вызываем класс Win32_Service WMI для получения служб с компьютера Windows WinServer1. Обратите внимание, что Get-Service PowerShell не поддерживает указание параметра «-Computer» и может выполняться только на локальном компьютере.

Проверка журналов событий с помощью PowerShell

Стоит отметить, что оснастке Microsoft Event Viewer требуется много времени для поиска нужных событий в журналах событий. Например, если вам нужно выполнить поиск по определенному идентификатору события, вам потребуется прокручивать полные файлы журнала событий, пока не будет найден этот конкретный идентификатор события. PowerShell помогает решить эту проблему. Вы можете указать конкретный идентификатор события в команде PowerShell и быстро увидеть результат. Например, приведенная ниже команда PowerShell проверяет, зарегистрировано ли событие с идентификатором 7036 в журнале системных событий.
Get-EventLog “System” | Where-Object {$_.EventID –eq 7036}
Если вам нужно просмотреть последние события, зарегистрированные в журнале событий приложения, выполните следующую команду PowerShell:
Get-EventLog Application –Newest 10
Приведенная выше команда (также показанная на снимке экрана ниже) показывает последние 10 записей, записанных в журнале событий приложения.

Поиск в текстовых файлах

Если вам нужно определить, существует ли конкретное строковое значение в данном текстовом файле, вы можете использовать командлет PowerShell «Select-String». Я использовал «Select-String» несколько раз при поиске строковых значений «Error» и «Warnings» в файлах журнала во время устранения неполадок. Чтобы найти «Ошибки» в файле журнала, выполните эту команду PowerShell:
Get-Content C:TempMVMC.Log | Select-String “Errors” -Quiet
Если вы хотите выполнить поиск с учетом регистра, выполните следующую команду:
Get-Content C:TempMVMC.Log | Select-String “ERRORS” –Quiet –Casesensitive

Проверка состояния сетевых адаптеров

С помощью PowerShell вы можете быстро проверить состояние сетевых адаптеров на локальном компьютере. PowerShell предоставляет командлет Get-NetAdapter PowerShell, который может перечислить все виртуальные, а также физические сетевые адаптеры, а затем показать состояние каждого сетевого адаптера, как показано в приведенной ниже команде:
Get-NetAdapter | Where Status –eq “Up”
Приведенная выше команда показывает все сетевые адаптеры, включая виртуальные адаптеры, такие как беспроводные. Если вы хотите ограничить вывод только физическими сетевыми адаптерами, выполните следующую команду:
Get-NetAdapter –Physical | Where Status –eq “Up”

Общие команды PowerShell среды

Не каждый администратор PowerShell знает, что когда вы запускаете окно PowerShell, PowerShell заполняет ценную системную информацию в переменных среды. Эти переменные готовы к использованию и не требуют использования каких-либо командлетов PowerShell. PowerShell хранит информацию об операционной системе на «диске среды». Вы можете получить доступ к информации, хранящейся на диске среды, выполнив «[System.Environment]::» в окне PowerShell. Например, если вам нужно увидеть текущую версию операционной системы, вы выполните эту команду:
[System.Environment]::Version
Когда вы выполните указанную выше команду, результат будет отображаться в текущем окне PowerShell. Вы можете проверить текущий каталог, является ли текущая версия операционной системы 64-разрядной или нет, текущий рабочий каталог, текущее имя пользователя и многие другие биты информации, как показано на снимке экрана ниже:

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