PowerShell 30 Огляд нових можливостей (частина 1).
PowerShell 3.0 включає в себе безліч поліпшень і нових функцій. Насправді змін вистачить на цілу книгу, але про деякі з них я спробую коротко розповісти. Сьогодні я опишу зміни, які спрощують роботу з PowerShell і роблять її більш зручною.
У третій версії PowerShell пристойно виріс.Якщо в PowerShell 2.0 входить близько десятка модулів і приблизно 350 команд, то в складі PS 3.0 вже близько 2300 командлетів з більш ніж 70 модулів. Як бачите, різниця величезна. Тепер більшу частину завдань з адміністрування можна вирішувати за допомогою стандартних команд, не вдаючись до складних сценаріїв.
Покращено інструментарій для роботи з PowerShell. Вбудований редактор скриптів PowerShell ISE тепер є практично повноцінним середовищем програмування. Він обзавівся функцією IntelliSense, що дозволяє переглядати перелік командлетів і їх параметрів, перменная, утиліт і т.п. Також він підтримує сніппети (фрагменти часто повторюваного коду для автоматичної вставки) і має можливість розширення функціоналу за рахунок аддонів.
Окремо варто відзначити вікно Commands. В цьому вікні можна складати команди в візуальному режимі: вибрати модуль, знайти потрібний командлет і задати йому необхідні параметри.Отриману команду можна скопіювати в консоль або відразу запустити на виконання. Виходить такий собі конструктор для початківців.
До речі, вікно Commands є не тільки в ISE. КомандлетShow-Commandпозволяет викликати його і працювати з ним прямо з консолі.
Не забуті і ті, хто вважає за краще працювати по-старому, в командному рядку.Значно спростилася процедура пошуку потрібного командлет. Якщо раніше пошук проводився тільки по тим модулів, які завантажені поточному сеансі, то теперьGet-Commandіщет по всіх модулях, доступним на локальному комп'ютері. Крім того, автодоповнення команд після натискання Tab стало набагато більш функціональним і тепер завершує імена команд, параметрів, значення параметрів, перерахування, класи.NET, COM-об'єкти, приховані каталоги і багато іншого.
Значно покращена робота з модулями. Більше немає необхідності вручну імпортувати потрібний модуль або прописувати його в профілі користувача для автоматичного завантаження. Тепер будь-який модуль імпортується в поточний сеанс автоматично, при першому до нього зверненні.
Для прикладу виведемо командойGet-Moduleспісок модулів в поточному сеансі. Як бачите, завантажено всього два модуля. Спробуємо запустити командуGet-ADUser, яка входить в модуль ActiveDirectory. У PS 2.0 ми отримали б повідомлення про помилку, однак зараз команда спокійно виконується. А якщо ще раз подивитися список активних модулів, то серед них ми побачимо модуль ActiveDirectory.Дуже зручно.
Крім того, при необхідності ми можемо імпортувати модулі PowerShell з віддалених комп'ютерів за допомогою PS remoting. Для прикладу створимо віддалену сесію з комп'ютером SRV1:
$ s = NewPsSession -ComputerName SRV1
Виведемо список модулів на віддаленому комп'ютері:
Get-Module -PsSession $ s -ListAvailable
Виберемо зі списку потрібний модуль і імпортуємо його:
ImportModule -PsSession $ s -Name ADRMS
Тепер, якщо подивитися, імпортований модуль доступний для використання в поточному сеансі.
Зазнала деяких змін і довідкова система. Вбудована довідка зроблена оновлюваної. Спочатку PowerShell 3.0 поставляється взагалі без неї, а довідкові файли завантажуються на локальний комп'ютер при першому зверненні. Потім за допомогою командлета Update-Help можна завантажувати оновлені файли довідки, як все повністю так і для окремих модулів.
Якщо ж запустити Get-Help з ключем -Online, то буде відкрита web-сторінка з розширеної довідкою за вказаною командлети.
Ну і по дрібниці