Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gettingStarted.rtf
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Командлеты Windows PowerShell

Командлет — это команда Windows PowerShell, предназначенная для работы с объектами и выполняющая единственную функцию. Командлеты можно идентифицировать по их именам, которые составлены из глагола и существительного, разделенных дефисом (-), например Get-Help, Get-Process и Start-Service.

В традиционных оболочках команды представляют собой исполняемые программы, которые могут быть как совсем простыми (например, attrib.exe), так и очень сложными (netsh.exe).

Большинство командлетов Windows PowerShell очень просты, и предполагается, что они будут использоваться вместе с другими командлетами. Например, командлеты категории «get» только возвращают данные, командлеты «set» только задают или изменяют значения элементов данных, командлеты «format» только форматируют данные, а командлеты «out» только направляют вывод в указанное место назначения.

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

get-help <имя-командлета> -detailed

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

Новый язык сценариев

При разработке оболочки Windows PowerShell было принято решение создать для нее новый язык, а не использовать какой-либо из уже существующих. Это было сделано в силу следующих причин.

  •  Язык Windows PowerShell должен был поддерживать управление объектами .NET.

  •  Язык Windows PowerShell должен был обеспечивать согласованную среду использования командлетов.

  •  Язык Windows PowerShell должен был поддерживать решение сложных задач, не делая простые задачи более сложными.

  •  Язык Windows PowerShell должен был обладать совместимостью с высокоуровневыми языками, используемыми при программировании для .NET, такими как C#.

Команды и служебные программы Windows

Оболочка Windows PowerShell позволяет выполнять имеющиеся в Windows программы командной строки и запускать программы Windows с графическим пользовательским интерфейсом, такие как «Блокнот» и «Калькулятор». Создаваемый этими программами текст можно перехватывать и использовать в оболочке почти так же, как и при работе с Cmd.exe.

Обработка объектов

Хотя на первый взгляд это не очевидно, при работе с оболочкой Windows PowerShell на самом деле вы имеете дело с объектами .NET. По мере накопления опыта достоинства обработки объектов станут для вас более очевидными, и вы начнете даже думать «объектами».

С технической точки зрения объект .NET — это экземпляр класса .NET, состоящий из данных и операций, определенных для этих данных. Объект можно рассматривать как сущность, имеющую свойства (характеристики сущности) и методы (действия, которые можно выполнять над сущностью).

Например, при возврате службы средствами оболочки Windows PowerShell на самом деле возвращается объект, представляющий соответствующую службу. При просмотре сведений о службе отображаются свойства объекта-службы. При запуске службы, то есть при изменении ее свойства Status на «started», выполняется метод объекта-службы.

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

Получить сведения об объектах несложно. Чтобы узнать, объект какого типа получен командлетом, передайте результат выполнения команды «get» команде Get-Member с помощью оператора конвейерной обработки (|). Например, следующая команда передает объекты, возвращенные командой Get-Service, команде Get-Member:

get-service | get-member

Команда Get-Member отобразит сведения об объекте-службе, в том числе имя типа объекта и список его свойств и методов.

TypeName: System.ServiceProcess.ServiceController

Name MemberType Definition

---- ---------- ----------

Name AliasProperty Name = ServiceName

add_Disposed Method System.Void add_Disposed(EventHandler value)

Close Method System.Void Close()

Continue Method System.Void Continue()

...

Чтобы получить сведения о классе объекта, скопируйте и вставьте имя типа (например, System.ServiceProcess.ServiceController) в MSDN. Обнаружив нужный класс, можно просмотреть подразделы MSDN со сведениями о свойствах и методах объектов, основанных на этом классе и аналогичных объектам оболочки Windows PowerShell.

Чтобы узнать значения всех свойств конкретного объекта, передайте результат выполнения команды «get» команде Format-List или Format-Table с помощью оператора конвейерной обработки (|). Вводя при этом командлеты форматирования, укажите параметр Property со значением «все» (*). Например, чтобы просмотреть значения всех свойств службы Schedule, введите следующую команду:

get-service schedule | format-list -property *

В результате будут возвращены подобные данные:

Name : Schedule

CanPauseAndContinue : True

CanShutdown : True

CanStop : True

DisplayName : Task Scheduler

DependentServices : {}

MachineName : .

ServiceName : Schedule

ServicesDependedOn : {RpcSs}

ServiceHandle : SafeServiceHandle

Status : Running

ServiceType : Win32ShareProcess

Site :

Container :

При знакомстве с оболочкой Windows PowerShell не требуется понимать все нюансы работы с объектами — достаточно не терять из виду общую концепцию. Скоро вы сможете использовать объекты по-настоящему эффективно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]