Przewodnik po programie Windows PowerShell'sWindows PowerShell Programmer's Guide

Przewodnik programisty jest przeznaczony dla deweloperów, którzy chcą zapewnić środowisko zarządzania wiersza polecenia dla administratorów systemu.This programmer's guide is targeted at developers who are interested in providing a command-line management environment for system administrators. Program Windows PowerShell zapewnia prostą metodę tworzenia poleceń zarządzania, które uwidaczniają obiekty .NET, jednocześnie umożliwiając programowi Windows PowerShell wykonywanie większości zadań.Windows PowerShell provides a simple way for you to build management commands that expose .NET objects, while allowing Windows PowerShell to do most of the work for you.

W tradycyjnym opracowywaniu poleceń musisz napisać parser parametrów, spinacz parametrów, filtry i wszystkie inne funkcje uwidocznione przez poszczególne polecenia.In traditional command development, you are required to write a parameter parser, a parameter binder, filters, and all other functionality exposed by each command. Program Windows PowerShell oferuje następujące informacje ułatwiające pisanie poleceń:Windows PowerShell provides the following to make it easy for you to write commands:

  • Zaawansowany środowisko uruchomieniowe programu Windows PowerShell (aparat wykonywania) z własnym parserem i mechanizmem automatycznego wiązania parametrów poleceń.A powerful Windows PowerShell runtime (execution engine) with its own parser and a mechanism for automatically binding command parameters.

  • Narzędzia do formatowania i wyświetlania wyników poleceń przy użyciu interpretera wiersza polecenia (CLI).Utilities for formatting and displaying command results using a command line interpreter (CLI).

  • Obsługa wysokiego poziomu funkcjonalności (za pomocą dostawców programu Windows PowerShell), które ułatwiają dostęp do przechowywanych danych.Support for high levels of functionality (through Windows PowerShell providers) that make it easy to access stored data.

    Za mało kosztów można reprezentować obiekt .NET za pomocą rozbudowanego polecenia lub zestawu poleceń, które będą oferować kompletne środowisko wiersza polecenia administratorowi.At little cost, you can represent a .NET object by a rich command or set of commands that will offer a complete command-line experience to the administrator.

    W następnej sekcji omówiono kluczowe pojęcia i terminy dotyczące programu Windows PowerShell.The next section covers the key Windows PowerShell concepts and terms. Zapoznaj się z tymi pojęciami i postanowieniami przed rozpoczęciem opracowywania.Familiarize yourself with these concepts and terms before starting development.

Informacje o programie Windows PowerShellAbout Windows PowerShell

Program Windows PowerShell definiuje kilka typów poleceń, których można użyć podczas tworzenia.Windows PowerShell defines several types of commands that you can use in development. Dostępne są następujące polecenia: Functions, Filters, scripts, aliass i Executables (aplikacje).These commands include: functions, filters, scripts, aliases, and executables (applications). Głównym typem polecenia omówionym w tym przewodniku jest proste, małe polecenie zwane "poleceniem cmdlet".The main command type discussed in this guide is a simple, small command called a "cmdlet". Program Windows PowerShell dostarcza zestaw poleceń cmdlet i w pełni obsługuje dostosowanie poleceń cmdlet do środowiska.Windows PowerShell furnishes a set of cmdlets and fully supports cmdlet customization to suit your environment. Środowisko uruchomieniowe programu Windows PowerShell przetwarza wszystkie typy poleceń tak samo jak w przypadku poleceń cmdlet, przy użyciu potoków.The Windows PowerShell runtime processes all command types just as it does cmdlets, using pipelines.

Oprócz poleceń środowisko Windows PowerShell obsługuje różne możliwe do dostosowania dostawcy środowiska Windows PowerShell, które udostępniają określone zestawy poleceń cmdlet.In addition to commands, Windows PowerShell supports various customizable Windows PowerShell providers that make available specific sets of cmdlets. Powłoka działa w aplikacji hosta dostarczonej przez program Windows PowerShell (Windows PowerShell.exe), ale jest równie dostępna z niestandardową aplikacją hosta, którą można opracować w celu spełnienia określonych wymagań.The shell operates within the Windows PowerShell-provided host application (Windows PowerShell.exe), but it is equally accessible from a custom host application that you can develop to meet specific requirements. Aby uzyskać więcej informacji, zobacz jak działa środowisko Windows PowerShell.For more information, see How Windows PowerShell Works.

Polecenia cmdlet środowiska Windows PowerShellWindows PowerShell Cmdlets

Polecenie cmdlet jest lekkim poleceniem, które jest używane w środowisku programu Windows PowerShell.A cmdlet is a lightweight command that is used in the Windows PowerShell environment. Środowisko uruchomieniowe programu Windows PowerShell wywołuje te polecenia cmdlet w kontekście skryptów automatyzacji, które są dostępne w wierszu polecenia, a środowisko uruchomieniowe programu Windows PowerShell również wywołuje je programowo przy użyciu interfejsów API programu Windows PowerShell.The Windows PowerShell runtime invokes these cmdlets within the context of automation scripts that are provided at the command line, and the Windows PowerShell runtime also invokes them programmatically through Windows PowerShell APIs.

Aby uzyskać więcej informacji o poleceniach cmdlet, zobacz pisanie polecenia cmdlet programu Windows PowerShell.For more information about cmdlets, see Writing a Windows PowerShell Cmdlet.

Dostawcy programu Windows PowerShellWindows PowerShell Providers

W trakcie wykonywania zadań administracyjnych użytkownik może chcieć przejrzeć dane przechowywane w magazynie danych (na przykład system plików, rejestr systemu Windows lub magazyn certyfikatów).In performing administrative tasks, the user may need to examine data stored in a data store (for example, the file system, the Windows Registry, or a certificate store). Aby ułatwić wykonywanie tych operacji, program Windows PowerShell definiuje moduł o nazwie dostawca programu Windows PowerShell, którego można użyć w celu uzyskania dostępu do określonego magazynu danych, takiego jak rejestr systemu Windows.To make these operations easier, Windows PowerShell defines a module called a Windows PowerShell provider that can be used to access a specific data store, such as the Windows Registry. Każdy dostawca obsługuje zestaw powiązanych poleceń cmdlet, które umożliwiają użytkownikowi przekazanie symetrycznego widoku danych w sklepie.Each provider supports a set of related cmdlets to give the user a symmetrical view of the data in the store.

Środowisko Windows PowerShell udostępnia kilku domyślnych dostawców programu Windows PowerShell.Windows PowerShell provides several default Windows PowerShell providers. Na przykład dostawca rejestru obsługuje nawigację i manipulowanie rejestrem systemu Windows.For example, the Registry provider supports navigation and manipulation of the Windows Registry. Klucze rejestru są reprezentowane jako elementy, a wartości rejestru są traktowane jako właściwości.Registry keys are represented as items, and registry values are treated as properties.

Jeśli zostanie ujawniony magazyn danych, do którego użytkownik będzie musiał uzyskać dostęp, może być konieczne napisanie własnego dostawcy środowiska Windows PowerShell zgodnie z opisem w temacie Tworzenie dostawców programu Windows PowerShell.If you expose a data store that the user will need to access, you might need to write your own Windows PowerShell provider, as described in Creating Windows PowerShell Providers. Aby uzyskać więcej informacji aboutWindows dostawców programu PowerShell, zobacz jak działa środowisko Windows PowerShell.For more information aboutWindows PowerShell providers, see How Windows PowerShell Works.

Aplikacja hostaHost Application

Program Windows PowerShell zawiera domyślną powershell.exe aplikacji hosta, czyli aplikację konsolową, która współdziała z użytkownikiem i hostuje środowisko uruchomieniowe programu Windows PowerShell przy użyciu okna konsoli.Windows PowerShell includes the default host application powershell.exe, which is a console application that interacts with the user and hosts the Windows PowerShell runtime using a console window.

Tylko rzadko należy napisać własną aplikację hosta dla środowiska Windows PowerShell, chociaż dostosowanie jest obsługiwane.Only rarely will you need to write your own host application for Windows PowerShell, although customization is supported. Jeden przypadek, w którym może być potrzebna Twoja aplikacja, jest wymagana w przypadku, gdy masz wymaganie interfejsu GUI, który jest bogatszy niż interfejs dostarczany przez domyślną aplikację hosta.One case in which you might need your own application is when you have a requirement for a GUI interface that is richer than the interface provided by the default host application. Możesz również utworzyć niestandardową aplikację, gdy tworzysz graficzny interfejs użytkownika w wierszu polecenia.You might also want a custom application when you are basing your GUI on the command line. Aby uzyskać więcej informacji, zobacz jak utworzyć aplikację hosta programu Windows PowerShell.For more information, see How to Create a Windows PowerShell Host Application.

Środowisko uruchomieniowe programu Windows PowerShellWindows PowerShell Runtime

Środowisko uruchomieniowe programu Windows PowerShell to aparat wykonywania implementujący przetwarzanie poleceń.The Windows PowerShell runtime is the execution engine that implements command processing. Zawiera klasy, które udostępniają interfejs między aplikacjami hosta i dostawcami poleceń programu Windows PowerShell.It includes the classes that provide the interface between the host application and Windows PowerShell commands and providers. Środowisko uruchomieniowe programu Windows PowerShell jest zaimplementowane jako obiekt obszaru działania dla bieżącej sesji środowiska Windows PowerShell, czyli środowiska operacyjnego, w którym jest wykonywana powłoka i polecenia.The Windows PowerShell runtime is implemented as a runspace object for the current Windows PowerShell session, which is the operational environment in which the shell and the commands execute. Aby uzyskać szczegółowe informacje operacyjne, zobacz jak działa środowisko Windows PowerShell.For operational details, see How Windows PowerShell Works.

Język programu Windows PowerShellWindows PowerShell Language

Język Windows PowerShell udostępnia funkcje i mechanizmy skryptów umożliwiające Wywoływanie poleceń.The Windows PowerShell language provides scripting functions and mechanisms to invoke commands. Aby uzyskać pełne informacje o skryptach, zobacz Dokumentacja języka programu Windows PowerShell dostarczona z programem Windows PowerShell.For complete scripting information, see the Windows PowerShell Language Reference shipped with Windows PowerShell.

System typów rozszerzonych (ETS)Extended Type System (ETS)

Program Windows PowerShell zapewnia dostęp do różnych obiektów, takich jak obiekty .NET i XML.Windows PowerShell provides access to a variety of different objects, such as .NET and XML objects. W związku z tym, aby przedstawić wspólne streszczenie dla wszystkich typów obiektów, powłoka używa systemu rozszerzonego (ETS).As a consequence, to present a common abstraction for all object types the shell uses its extended type system (ETS). Większość funkcji ETS jest niewidoczna dla użytkownika, ale skrypt lub deweloper platformy .NET używa go do następujących celów:Most ETS functionality is transparent to the user, but the script or .NET developer uses it for the following purposes:

  • Wyświetlanie podzestawu elementów członkowskich określonych obiektów.Viewing a subset of the members of specific objects. Program Windows PowerShell zapewnia "dostosowany" widok kilku konkretnych typów obiektów.Windows PowerShell provides an "adapted" view of several specific object types.

  • Dodawanie członków do istniejących obiektów.Adding members to existing objects.

  • Dostęp do serializowanych obiektów.Access to serialized objects.

  • Pisanie niestandardowych obiektów.Writing customized objects.

    Za pomocą funkcji ETS można utworzyć elastyczne nowe "typy", które są zgodne z językiem programu Windows PowerShell.Using ETS, you can create flexible new "types" that are compatible with the Windows PowerShell language. Jeśli jesteś deweloperem platformy .NET, możesz pracować z obiektami za pomocą tej samej semantyki, co język programu Windows PowerShell stosuje się do obsługi skryptów, na przykład w celu ustalenia, czy obiekt jest obliczany true .If you are a .NET developer, you are able to work with objects using the same semantics as the Windows PowerShell language applies to scripting, for example, to determine if an object evaluates to true.

    Aby uzyskać więcej informacji na temat metody ETS i sposobu używania obiektów przez program Windows PowerShell, zobacz pojęcia dotyczące obiektów programu Windows PowerShell.For more information about ETS and how Windows PowerShell uses objects, see Windows PowerShell Object Concepts.

Programowanie dla środowiska Windows PowerShellProgramming for Windows PowerShell

Program Windows PowerShell definiuje swój kod dla poleceń, dostawców i innych modułów programu przy użyciu .NET Framework.Windows PowerShell defines its code for commands, providers, and other program modules using the .NET Framework. Nie ograniczamy się do korzystania z Microsoft Visual Studio w tworzeniu niestandardowych modułów dla programu Windows PowerShell, ale przykłady podane w tym przewodniku są znane do uruchomienia w tym narzędziu.You are not confined to the use of Microsoft Visual Studio in creating customized modules for Windows PowerShell, although the samples provided in this guide are known to run in this tool. Można użyć dowolnego języka platformy .NET, który obsługuje dziedziczenie klas i użycie atrybutów.You can use any .NET language that supports class inheritance and the use of attributes. W niektórych przypadkach interfejsy API programu Windows PowerShell wymagają, aby język programowania był w stanie uzyskać dostęp do typów ogólnych.In some cases, Windows PowerShell APIs require the programming language to be able to access generic types.

Odwołanie programistyProgrammer's Reference

Aby uzyskać informacje na temat tworzenia aplikacji dla środowiska Windows PowerShell, zobacz zestaw SDK programu Windows PowerShell.For reference when developing for Windows PowerShell, see the Windows PowerShell SDK.

Wprowadzenie przy użyciu programu Windows PowerShellGetting Started Using Windows PowerShell

Aby uzyskać więcej informacji na temat rozpoczynania korzystania z powłoki środowiska Windows PowerShell, zobacz wprowadzenie programu Windows PowerShell dostarczonego z programem Windows PowerShell.For more information about starting to use the Windows PowerShell shell, see the Getting Started with Windows PowerShell shipped with Windows PowerShell. Skrócony dokument z potrójnym zgięciem jest również dostarczany jako podstawowy do użycia przez polecenie cmdlet.A Quick Reference tri-fold document is also supplied as a primer for cmdlet use.

Zawartość tego przewodnikaContents of This Guide

TematTopic DefinicjaDefinition
Jak utworzyć dostawcę programu Windows PowerShellHow to Create a Windows PowerShell Provider W tej sekcji opisano sposób tworzenia dostawcy środowiska Windows PowerShell dla programu Windows PowerShell.This section describes how to build a Windows PowerShell provider for Windows PowerShell.
Jak utworzyć aplikację hosta programu Windows PowerShellHow to Create a Windows PowerShell Host Application W tej sekcji opisano, jak napisać aplikację hosta, która manipuluje obszarem działania oraz jak napisać aplikację hosta, która implementuje własnego hosta niestandardowego.This section describes how to write a host application that manipulates a runspace and how to write a host application that implements its own custom host.
Jak utworzyć przystawkę programu Windows PowerShellHow to Create a Windows PowerShell Snap-in W tej sekcji opisano, jak utworzyć przystawkę, która jest używana do rejestrowania wszystkich poleceń cmdlet i dostawców w zestawie oraz jak utworzyć przystawkę niestandardową.This section describes how to create a snap-in that is used to register all cmdlets and providers in an assembly and how to create a custom snap-in.
Jak utworzyć powłokę konsoliHow to Create a Console Shell W tej sekcji opisano sposób tworzenia powłoki konsoli, która nie jest rozszerzalna.This section describes how to create a console shell that is not extensible.
Zagadnienia dotyczące programu Windows PowerShellWindows PowerShell Concepts Ta sekcja zawiera informacje koncepcyjne, które pomogą zrozumieć środowisko Windows PowerShell z punktu widzenia dewelopera.This section contains conceptual information that will help you understand Windows PowerShell from the viewpoint of a developer.

Zobacz teżSee Also

Windows PowerShell SDKWindows PowerShell SDK