Ошибка: Failed to parse the Currency Converter XML document.
$13 696.80


Ошибка: Failed to parse the Currency Converter XML document.
$17 769.62


Ошибка: Failed to parse the Currency Converter XML document.
$1 099.70


10 полезных приёмов при работе с оболочкой PowerShell

Если вы недостаточно хорошо освоили PowerShell, то наверняка не стремитесь применять этот инструмент в повседневной работе. Однако дананя оболочка является ядром таких систем, как Exchange 2007, Windows Server 2008 и SQL Server 2008. Поэтому любому администратору нужно научиться использовать её огромные возможности.

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

Замечание: Будьте осторожны, предельно осторожны


Название этого инструментария точно передает его суть. PowerShell (мощная оболочка) способна изменять конфигурацию системы кардинальным образом, причем как в хорошую, так и в плохую сторону. Поэтому эксперименты лучше проводить в тестовом режиме. Также не стоит забывать о применении параметра “-confirm” для проверки конфигурации перед запуском тех или иных команд.

Отчет обо всех установленных USB-устройствах

PowerShell осуществляет доступ к технологии централизованного управления системой Windows Management Instrumentation (WMI). При помощи PowerShell администратор может дать команду WMI произвести поиск всех установленных на локальную или удаленную машину USB-устройств:


gwmi Win32_USBControllerDevice –computername SERVER1 |fl Antecedent,Dependent

Фильтр вернёт список главных и зависимых USB-устройств компьютера SERVER1. Если не задействовать фильтр, то можно получить полный список подключенного к машине USB-оборудования. Это полезно для ведения регулярных отчетов об установленных лицензионных USB-устройствах, где будут отображаться данные о подключении каждого объекта.

Использование PowerShell вместо коммандера CMD

Тот факт, что для решения одних и тех же задач оболочку PowerShell можно использовать вместо командной строки DOS, поможет несколько облегчить процесс обучения и привыкнуть к новому интерфейсу. К сожаленью, строка выполнения (run) не позволяет запускать трехбуквенные команды, например cmd. Но с этой задачей легко справляется PowerShell. Можно назначить специальную команду для быстрого вызова коммандера, например Ctrl + Shift + P.

Использование PowerShell для закрытия процессов вместо Диспетчера задач

Если какая-либо служба Windows не отвечает на запрос о прекращении работы, то ее можно закрыть при помощи PowerShell. Оболочка наделена эквивалентной Диспетчеру задач функцией остановки процессов. Например, для того, чтобы остановить процесс BadThread.exe, нужно проделать следующее:

get-process BadTh*

Результат будет таким:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
28 4 — 210844 — 201128 — 163 25.67 2792 BadThread

После того, как идентификационный номер процесса будет определён, его можно закрыть, введя команду:

stop-process –id 2792

После чего функция BadThread будет остановлена и теперь опять же с помощью PowerShell можно попробовать заново запустить соответствующую службу.

Использование команды PSDrive для отображения списка дисков и не только

Команда PSDrive позволяет не только просматривать локальные, удаленные и съемные диски, но и получить доступ к улею реестра HKEY_LOCAL_MACHINE. Для этого нужно задействовать параметр HKLM:

PS C:> cd HKLM:
PS HKLM:/>

В результате откроется улей реестра, где администратор может просматривать и даже удалять любые объекты.

Назначение NTFS полномочий — возможна ли рекурсия?

Управление правами доступа в файловой системе NTFS — отдельная тема для разговора, однако PowerShell дает возможность назначения полномочий NTFS для аудита доступа пользователей и отображения списков управления доступом (Access Control Lists) в рамках настройки конфигурации безопасности. Это отличное программно реализуемое средство ведения регулярной отчетности, которое также можно использовать для анализа частных случаев возникновения неисправностей. К примеру, зададим следующий цикл:

PS E:>Get-Acl N:Data

Система выдаст отчёт о правах доступа пользователя к той или иной директории (одного, но не всех пользователей). Само по себе это не так уж и впечатляет, поскольку отчёт касается лишь одного каталога, но если вы хотите включить рекурсию для целой папки, можно применить иную стратегию. Для той же директории (N:Data) введём в строке оболочки PowerShell команду Get-ChildItem (cmdlet) в сочетании с другой командой Get-Acl:

PS E:>Get-ChildItem N:Data -recurse | Get-Acl

В результате будет выдан список контроля доступа пользователей к содержимому данного каталога. Дело в том, что команда Get-ChildItem проводит инвентаризацию объектов файловой системы, а Get-Acl выводит результаты этой инвентаризации по каждому объекту.

При желании можно сохранить этот отчёт в файле разделяемых запятыми значений, для чего нужно будет ввести: “| export-csv c:filename.csv” в конце команды cmdlet. Для сохранения отчёта в текстовом файле — “> C:filename.txt” в конце той же команды. Имейте в виду, что при использовании параметра –recurse, функция осуществит проверку всей указанной директории. Поэтому будьте осторожны, применяя его для инвентаризации больших каталогов или целой сети.

Приемущества PowerShell 2.0

Оболочка PowerShell 2.0 встроена в платформу Community Technology Preview (CTP) и снабжена отменным графическим интерфейсом Graphical PowerShell. Сценарии оболочки можно сохранять в файлы с расширением .ps1, благодаря чему становится возможно осуществлять удобное управление, импорт и обмен ими между системами. На изображении A показаны приведённые выше примеры назначения NTFS-полномочий в режиме графического интерфейса.

Вам необходиом будет скофигурировать политики исполенения (execution policy). Пример конфигурирования политики:

PS C:>Set-ExecutionPolicy Restricted (check only)
PS C:>Set-ExecutionPolicy AllSigned (most secure)
PS C:>Set-ExecutionPolicy RemoteSigned (medium secure)
PS C:>Set-ExecutionPolicy Unrestricted (least secure)

Решив опробовать PowerShell 2.0 в деле, имейте в виду, что вам понадобится пакет WS-MAN v1.1, а для работы с графическим интерфейсом необходим набор инструментов Microsoft .NET Framework 3.0.

Комбинации клавиш для работы в графическом интерфейсе Graphical PowerShell

Если вы работали с SQL Query Analyzer, то вам уже знакомы некоторые из следующих сочетаний клавиш. В графическом интерфейсе Graphical PowerShell можно выделить одну или несколько строк и запустить их, нажав F5. А при редактировании сценария ускорить процесс помогут знакомые комбинации: Ctrl + S для сохранения, Ctrl + Z для отмены предыдущей операции, Ctrl + C для копирования и Ctrl + V для вставки.

Выполнение длительных процессов в фоновом режиме

Если вызванная командой cmdlet процедура работает слишком долго, PowerShell способна переключить её в фоновый режим. Можно одновременно запустить несколько процессов, которые будут выполняться столько, сколько им потребуется. Переключение в фоновый режим осуществляетcя, если в начале команды перед названием процесса ввести start-psjob. Можно послать запрос для выявления статуса всех выполняемых операций:

PS C:>get-psjob

PowerShell выдаст таблицу, где отображён ход всех процессов, при этом каждой сессии будет присвоен свой идентификатор. На изображении B показана ошибка в одном из процессов.

Одно небольшое замечание по PowerShell 2.0: перед её использованием необходимо настроить политику выполнения команд через обычную неграфическую оболочку PowerShell. Конфигурация одной из политик запуска:

Для выключения прерванного процесса введите команду:

PS C:>remove-psjob 9

Создание временных маркеров в отчётах PowerShell

При помощи временных меток в выдаваемых PowerShell отчётах можно определить, как долго длилась та или иная операция, а также регистрировать сценарии. Очень полезная функция для проверки сценариев в Graphical PowerShell. Чтобы создать временной маркер, введите в нужном файле .ps1 одной строкой любую из следующих команд:
Command
«$(Get-Date -format g) Start logging»
«$(Get-Date -format F) Start logging»
«$(Get-Date -format o) Start logging»              Output example
2/5/2008 9:15 PM
Tuesday, February 05, 2008 9:15:13 PM
2008-02-05T21:15:13.0368750-05:00

Существует множество форматов команды Get-Date, но этих трёх параметров обычно бывает достаточно для выполнения всех операций, связанных с временными метками

Пошаговый просмотр результатов

Многие команды в PowerShell выдают мгновенные отчёты, которые невозможно просмотреть на экране, если не экспортировать их в отдельный файл. Для возвращения результатов выполнения команд вновь используем Get-ChildItem. Просматривать отчёт станет значительно удобнее, если каждая новая его строка будет появляться через полсекунды после предыдущей. Для этого создадим функцию EasyView:

function EasyView { process { $_; Start-Sleep -seconds .5}}

Теперь для вызова функции EasyView достаточно ввести её имя после вертикального разделителя в конце команды Get-ChildItem:

Get-ChildItem N:Data | EasyView

Для этой функции мы настроили отображение каждой последующей строки отчёта через 0,5 секунды. При желании можно указать в значение в миллисекундах.

Автор: Rick Vanover

 

Интересное

Flash-технология. Недостатки
Прежде, чем применять Flash на сайте, нужно семь раз отмерить. Оказывается, не все знают, что это такое. Одни применяют Flash от необходимости, другие — от незнания.Дело в том, что Flash — это не...
Подробнее...
Реальный домен виртуальной...
Краткая хронологияПроцедура регистрации домена .SU была инициирована в середине августа 1990 года, до окончательной регистрации дело дошло 19 сентября. Забавно, что почти ровно через год произошли...
Подробнее...
DBI для mSQL/mySQL
УстановкаДля использования интерфейсов rnSQL и MySQL к модулям DataBase Dependent/DataBaseIndependent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты :
Подробнее...
Звук в Linux
Под звуковой подсистемой понимается инфраструктура операционной системы, отвечающая за работу установленных в компьютере устройств для обработки звуки, а именно звуковых карт, а также различных...
Подробнее...
Руководство по настройке...
Да, эта система, имеет заметные отличия от Windows XP Professional, нацеленные, в первую очередь, на максимальное повышение надежности этой ОС. Особенно бросается в глаза то, что теперь по...
Подробнее...
Простой пример навигации...
Простая система навигации для сайтаПриветствую тебя уважаемый читатель!!! Я очень рад что вы читаете эту статью.... почему спросите вы? да потому что это моя первая статья о модном нынче...
Подробнее...
Я работаю с Windows Vista....
Шаг за шагом знакомимся с Windows Vista. Сегодня — подробно о том, сколько и какого «железа» требуется для работы с разными версиями новой операционной системы.
Подробнее...
Что нового в SQL Server...
Наконец-то процесс создания SQL Server 2005 завершен. Если вы на протяжении долгого времени следили за подготовкой новой версии SQL, устанавливали и использовали бета-версии, с пристрастием...
Подробнее...
Выделенный сервер
Вас интересует вопрос, что такое выделенный сервер(Dedicated Server) и для чего он нужен.Этот хостинг, который предоставляет клиенту в полное пользование отдельным выделенным сервером. Есть...
Подробнее...
Проблеммы с буквой 'я' на ftp
При загрузке на сервер из винды пропадает буква я и следующий за ней символПопытаться побороть можно такЗаходим в папку с исходниками proftpd... далее vi src/netio.c далее находим удаляем или...
Подробнее...