Глава 3. Входные данные вашего сценария
Содержание
В практическом мире системного администрирования существует множество ситуаций, при которых вам приходится запитывать свои сценарии входными данными. Примерами являются считывание файла, который обладает списком пользователей и добавление их в определённую группу Active Directory, либо считывание файла CSV, который содержит атрибуты пользователей, такие как телефонные номера, должность и подразделение, а также обновление таких атрибутов в Active Directory. В данной главе вы рассмотрите различные способы запитывания своих сценариев различными типами входных данных.
Import-CSV
является наиболее применяемым методом для предоставления сценария со
считыванием файла CSV и он в дальнейшем будет применяться для выполнения пакетных операций при помощи цикла.
Для демонстрации давайте создадим небольшой файл CSV (сохраните его как samplecsv.csv
)
в показанном на Рисунке 3-1
формате и затем выведите на печать его содержимого. Для этого кода отсылаем вас к
Листингу 3-1.
Листинг 3-1. Код для Import-CSV
$data = import-csv c:\temp\samplecsv.csv #Импорт CSV в переменную data
foreach ($i in $data) {
Write-host $i.user -foregroundcolor green #вывод на печать столбца user
Write-host $i.email -foregroundcolor yellow #вывод на печать столбца email
Write-host $i.title -foregroundcolor magenta #вывод на печать столбца title
}
Рисунок 3-2
отображает операцию Import-CSV
в PowerShell. Если вы находитесь в той же самой папке,
вы можете воспользоваться источником с точкой вместо полного пути, показанного в этом снимке экрана:
$data = import-csv .\samplecsv.csv # .\ обозначает текущий каталог
Существуют ситуации при которых вы получаете данные в текстовом файле, таком как список серверов или перечень пользователей, по одному за раз, а вы хотите осуществить с этими данными определённую операцию.
Рисунок 3-3 показывает вывод на печать вашего экрана каждого
сервера из файла с названием servers.txt
. (Для считывания текстовых файлов применяется
командлет Get-content
; подробности в
Листинге 3-2).
Листинг 3-2. Код для считывания из текстового файла
$servers = Get-content .\servers.txt
$servers | foreach-object {
Write-host $_
}
Сохраните этот код в файле .ps1
и запустите его ил просто вставьте его в свою
консоль PowerShell.
Обратите внимание на Рисунок 3-4.
Вы можете выполнять те же самые вещи с массивом, которые вы совершили с текстовым файлом. Скажем, у вас есть массив серверов и вы хотите вывести их на печать в своём экране. Отсылаем вас к Листингу 3-3.
Листинг 3-3. Код для считывания из массива и вывод его на печать
$servers = @("server01","server02","server03","server04")
#array of servers
$servers | foreach-object {
Write-host $_ -foregroundcolor yellow
}
Выполнение этого сценария показывает результаты на Рисунке 3-5.
В этой главе вы изучили как запитывать сценарии входными данными либо из текстового файла, либо из файла CSV, или из массива. Имеются современные способы для ввода в ваши сценарии, однако те способы, которые упомянуты в этой главе распространены и применяются повседневно в мире системного администрирования.