Дополнительные однострочные команды PowerShell

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

В предыдущей статье мы показали, как можно использовать простые команды PowerShell для быстрого выполнения действия вместо написания нескольких строк кода. Мы объяснили, как можно использовать командлет PowerShell Export-CSV для сохранения вывода команд PowerShell в файл. Мы также объяснили, как можно использовать Get-EventLog с несколькими параметрами, чтобы проверить, кто перезагрузил рабочие серверы. В этой статье мы предоставим еще несколько полезных однострочных команд PowerShell.

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

С помощью PowerShell вы можете быстро читать текстовые файлы. PowerShell предлагает прочитать файл несколькими способами. Вы можете прочитать всю строку в файле или прочитать ее часть в зависимости от ваших требований. Чтобы прочитать всю строку в файле, вы можете использовать Get-Content или сокращенно GC. Get-Content — очень мощный командлет. Вот несколько примеров использования командлета Get-Content:

Предположим, у вас есть текстовый файл, содержащий элементы A, B, C, D, E, F, и вы хотите прочитать всю строку. Что вы можете сделать, это выполнить эти команды PowerShell:

$AVariable = Get-Content C:TempTest.TXT
$AПеременная

Вывод будет таким, как показано на скриншоте ниже:

Если вы хотите прочитать элементы, хранящиеся в текстовом файле, и сохранить каждый элемент в переменной для выполнения некоторых действий, вы можете использовать цикл ForEach. Вам потребуется импортировать файл в формате CSV в переменную PowerShell, как показано в приведенных ниже командах:

$ThisCSV = Import-CSV C:TempTest.TXT
ForEach {$ThisItem в $ThisCSV}
{
Запись хоста $ThisItem
}

Если вы хотите посчитать строки в файле, просто выполните эту однострочную команду PowerShell:

(Реж.
.CSV | Get-Content).Count

Вы также можете подсчитывать слова в файлах, выполнив эту однострочную команду PowerShell:

(Реж.
.CSV | Получить контент | Мера-Слова).Слова

Если вам нужно выполнить несколько команд в одной строке, вы можете сделать это, добавив «;» до конца команды. Например, приведенная ниже команда останавливает процесс Windows, а второй элемент перемещает все файлы TXT из папки C:Temp в папку E:Temp.

Stop-Process – Имя Блокнота; Переместить элемент C:Temp
.TXT E:Temp
.ТЕКСТ

Проверка наличия резервных копий разделов Active Directory

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

exe/показать резервную копию

Обратите внимание, что Repadmin.exe доступен по умолчанию на всех контроллерах домена и может быть запущен из окна PowerShell или из окна PowerShell.

Проверка времени последней загрузки контроллера домена

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

[Management.ManagementDateTimeConverter]::ToDateTime($operatingSystem.LastBootUpTime)

Сбор отключенных учетных записей компьютеров из Active Directory

Вы можете использовать приведенную ниже однострочную команду PowerShell, чтобы экспортировать все отключенные учетные записи компьютеров Active Directory, а затем сохранить результат в файл CSV.

Get-ADComputer -Filter {(enabled -eq $false)} -ResultPageSize 2000 -resultSetSize $null -Properties Name,OperatingSystem,SamAccountName,DistinguishedName | Экспорт-CSV C:TempAllDisabledComputers.CSV

Точно так же, если вам нужно экспортировать все отключенные учетные записи пользователей из Active Directory, выполните эту команду PowerShell:

Search-ADAccount -AccountDisabled -UsersOnly -ResultPageSize 2000 -resultSetSize $null | Select-Object Name, SamAccountName, DistinguishedName | Экспорт-CSV C:TempAllDisabledUsers.CSV

Сбор заблокированных учетных записей пользователей из Active Directory

Командлет PowerShell Search-ADAccount предлагает предопределенные параметры и переключатели, которые можно использовать для сбора заблокированных учетных записей пользователей в домене Active Directory. Как вы можете видеть, добавив переключатель «-LockedOut» в однострочную команду PowerShell ниже, вы собираете заблокированные учетные записи пользователей, а затем сохраняете вывод в файл CSV. Приведенная ниже команда извлекает SamAccountName и отличительное имя учетной записи, чтобы вам было проще определить местоположение объекта пользователя.

Search-ADAccount -LockedOut -UsersOnly -ResultPageSize 2000 -resultSetSize $null | Select-Object Name, SamAccountName, DistinguishedName | Экспорт-CSV C:TempAllLockedOutUserAccounts.CSV

Однострочные команды PowerShell: короткие, но мощные

Как видите, вам не нужно писать тонны кода и сценариев, когда эти однострочные команды PowerShell могут быстро получить необходимую информацию из ваших систем.