Дополнительные однострочные команды 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 могут быстро получить необходимую информацию из ваших систем.