Глава 3. Входные данные вашего сценария

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

Import-CSV

Import-CSV является наиболее применяемым методом для предоставления сценария со считыванием файла CSV и он в дальнейшем будет применяться для выполнения пакетных операций при помощи цикла.

Для демонстрации давайте создадим небольшой файл CSV (сохраните его как samplecsv.csv) в показанном на Рисунке 3-1 формате и затем выведите на печать его содержимого. Для этого кода отсылаем вас к Листингу 3-1.

 

Рисунок 3-1


Пример файла CSV

 

Листинг 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-2


Демонстрация операции Import-CSV через источник с точкой (.\)

Импорт из текстового файла

Существуют ситуации при которых вы получаете данные в текстовом файле, таком как список серверов или перечень пользователей, по одному за раз, а вы хотите осуществить с этими данными определённую операцию.

Рисунок 3-3 показывает вывод на печать вашего экрана каждого сервера из файла с названием servers.txt. (Для считывания текстовых файлов применяется командлет Get-content; подробности в Листинге 3-2).

 

Рисунок 3-3


Пример содержимого текстового файла

 

Листинг 3-2. Код для считывания из текстового файла


$servers = Get-content .\servers.txt
$servers | foreach-object {
Write-host $_
}
 	   

Сохраните этот код в файле .ps1 и запустите его ил просто вставьте его в свою консоль PowerShell. Обратите внимание на Рисунок 3-4.

 

Рисунок 3-4


Операция считывания текстового файла в PowerShell

Ввод из массива

Вы можете выполнять те же самые вещи с массивом, которые вы совершили с текстовым файлом. Скажем, у вас есть массив серверов и вы хотите вывести их на печать в своём экране. Отсылаем вас к Листингу 3-3.

 

Листинг 3-3. Код для считывания из массива и вывод его на печать


$servers = @("server01","server02","server03","server04")
#array of servers
$servers | foreach-object {
Write-host $_ -foregroundcolor yellow
}
 	   

Выполнение этого сценария показывает результаты на Рисунке 3-5.

 

Рисунок 3-5


Отображение печати массива

Выводы

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