Коротко, но приятно: полезные однострочные команды PowerShell

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

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

Сохранение вывода в файл

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

Получить-Сервис | Экспорт-CSV C:TempAllServices.CSV –NoTypeInfo
Get-User –Filter 'Name –Like «*John»' | Экспорт-CSV C:TempAllUsers.CSV –NoTypeInfo
Get-ChildItem – путь C:WindowsSystem32 | Экспорт-CSV C:TempAllFiles.CSV -NoTypeInfo

Проверка того, кто перезагрузил рабочий сервер

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

Get-EventLog –Log System –Newest 100 | Where-Object {$_.EventID –eq ‘1074’} | FT MachineName, UserName, TimeGenerated -AutoSize

Приведенная выше команда проверяет журнал системных событий и ищет событие с идентификатором 1074, а затем печатает имя компьютера, имя пользователя и время создания события. Если вы хотите сохранить вывод в файл CSV, просто используйте командлет Export-CSV, как показано в приведенной ниже команде:

Get-EventLog –Log System –Newest 100 | Where-Object {$_.EventID –eq ‘1074’} | FT MachineName, UserName, TimeGenerated –AutoSize | Export-CSV C:TempAllEvents.CSV -NoTypeInfo

Проверка того, установлена ли база знаний на компьютере с Windows

Если вы хотите найти исправление на локальном или удаленном компьютере, вы можете использовать командлет Get-HotFix PowerShell, как показано в этой команде:

Get-HotFix –ID KB2877616

А чтобы запросить информацию об исправлении на удаленном компьютере, просто добавьте параметр –Computername, как показано в команде ниже:

Get-HotFix –ID KB2877616 –Computername WindowsServer1.TechGenix.com

Резервное копирование всех производственных объектов групповой политики

Как мы уже говорили ранее, PowerShell предлагает быстрые однострочные команды. Если вы хотите сделать резервную копию всех производственных объектов групповой политики (GPO) в среде Active Directory, используйте командлет PowerShell Backup-GPO, поскольку он выделен в приведенной ниже команде:

Backup-GPO –All –Path C:TempAllGPO

Проверьте, все ли контроллеры домена являются серверами глобального каталога.

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

Get-ADDomainController –Filter * | Select Hostname, IsGlobalCatalog

И чтобы экспортировать вывод в файл CSV, выполните эту команду:
Get-ADDomainController –Filter * | Select Hostname, IsGlobalCatalog | Export-CSV C:TempAllDomainControllerStatus.CSV -NoTypeInfo

Однострочные команды PowerShell сэкономят ваше время

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