Подготовка административных отчетов с помощью PowerShell

Наконец-то специалисты по ИТ поняли, насколько важной составляющей ИТ-арсенала стала Windows PowerShell. У этой новой технологии много разновидностей, и для изучения их всех требуется немало времени. Но задачу можно существенно облегчить благодаря многочисленным интернет-сообществам интересующихся PowerShell. Информацию можно найти в книгах, фильмах, конференциях и блогах по всему Интернету. Причем она доступна не только ИТ-администраторам: любой желающий может изучать и использовать PowerShell.

 

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

- Необходимо установить PowerShell 2.0 с интегрированной средой сценариев (ISE) на сервере.

- Можно использовать редактор интегрированной среды сценариев PowerShell.

- Необходимо установить Microsoft Office, чтобы открывать файлы в формате значений с разделением запятыми (CSV) в Microsoft Excel.

PowerShell Version 2.0 уже входит в состав Windows 7 и Windows Server 2008 R2. Для предшествующих операционных систем, таких как Windows Vista с пакетом обновления 1 (SP1), Windows XP SP3, Windows Server 2008 SP1 и Windows Server 2003 SP2, необходимо загрузить Windows Management Framework 2.0 RTM, чтобы получить PowerShell 2.0.

Начало работы

Приступая к написанию сценария, воспользуйтесь бесплатным редактором PowerShell ISE. Выберите Start, All Programs, Accessories, Windows PowerShell ISE, как показано на экране 1.

Но прежде чем начать создавать и выполнять сценарии, необходимо приобрести некоторые знания о политике выполнения PowerShell. По умолчанию эта политика имеет значение Restricted, то есть PowerShell не выполняет сценариев. Важно понять, что единственное назначение политики выполнения PowerShell —предотвратить нанесение вреда компьютеру. Политика не предназначена для борьбы со взломщиками или вирусами. В большинстве случаев достаточно присвоить политике выполнения сценариев значение RemoteSigned, чтобы получить возможность работать со сценариями PowerShell: Set-ExecutionPolicy RemoteSigned В Windows Server 2008 или Windows Vista и более новых версиях эту команду необходимо выполнять в сеансе с расширенными правами. Чтобы узнать больше о назначении политики выполнения, воспользуйтесь командой:

Help About_Execution_Policy-Full

B PowerShell содержится множество справочной информации. Вот еще одна команда, отображающая список содержимого справки, как показано на экране 2:

(get-help About_*) | Select name | More Все эти команды известны как однострочные команды PowerShell. Выполнив начальную подготовку, можно приступать к практическому сценарию. Предположим, что ИТ-менеджер выполняет аудит и запрашивает административный отчет о серийном номере операционной системы и IP-адресе трех конкретных компьютеров: Serverl, Desktopl и Server2. Необходимо выполнить следующие шаги:

1. Ввод: сохранение имен компьютеров.

2. Обработка: сбор информации с использованием Get-WMIobject.

3. Вывод: создание CSV-файла для Excel с помощью Export-CSV.

4. Автоматизация: объединение всех действий.

Ввод: сохранение имен компьютеров

Во-первых, нужно сохранить имена трех выбранных компьютеров в переменной PowerShell: $ComputerList = @ ("Server1 ","Desktop1",   Server2");

$ComputerList.gettype ()

Как мы видим, имя переменной PowerShell начинается со знака доллара ($). Эта переменная представляет собой коллекцию объектов Microsoft.NET Framework. Сохранение нескольких значений имен компьютеров, заключенных в кавычки (") и разделенных запятыми, самый простой способ создать массив строк, содержащий список. Чтобы проверить тип переменной, созданной в PowerShell, можно добавить метод .NET.gettype () к концу переменной.

Если список компьютеров представлен текстовым файлом, можно воспользоваться следующей командой для создания переменной $ComputerList:

$ComputerList = Get-content c:\temp\ComputerList.txt

Эта команда автоматически создает тип массива строк PSObject, и не составляет труда хранить текстовый файл на локальном или сетевом диске.

Популярные шаблоны