次の方法で共有


New-WebServiceProxy

PowerShell で Web サービスを使用および管理できる Web サービス プロキシ オブジェクトを作成します。

構文

New-WebServiceProxy
   [-Uri] <Uri>
   [[-Class] <String>]
   [[-Namespace] <String>]
   [<CommonParameters>]
New-WebServiceProxy
   [-Uri] <Uri>
   [[-Class] <String>]
   [[-Namespace] <String>]
   [-Credential <PSCredential>]
   [<CommonParameters>]
New-WebServiceProxy
   [-Uri] <Uri>
   [[-Class] <String>]
   [[-Namespace] <String>]
   [-UseDefaultCredential]
   [<CommonParameters>]

説明

New-WebServiceProxy コマンドレットを使用すると、PowerShell で Web サービスを使用できます。 コマンドレットは Web サービスに接続し、PowerShell で Web サービス プロキシ オブジェクトを作成します。 プロキシ オブジェクトを使用して Web サービスを管理できます。

Web サービスは、特にインターネット経由で、ネットワーク経由でデータを交換する XML ベースのプログラムです。 Microsoft .NET Framework には Web サービス プロキシ オブジェクトが用意されており、Web サービスを .NET Framework オブジェクトとして表します。

例 1: Web サービスのプロキシを作成する

この例では、Windows PowerShell で電卓 Web サービスの .NET Framework プロキシを作成します。

$calc = New-WebServiceProxy -Uri "http://www.dneonline.com/calculator.asmx?wsdl"

例 2: Web サービスのプロキシを作成し、名前空間とクラスを指定する

この例では、 New-WebServiceProxy コマンドレットを使用して、電卓 Web サービスの .NET Framework プロキシを作成します。

$URI = "http://www.dneonline.com/calculator.asmx?wsdl"
$calc = New-WebServiceProxy -Uri $URI -Namespace "WSProxy" -Class "Calculator"

このコマンドでは、 Uri パラメーターを使用して URI と NamespaceClass パラメーターを指定し、オブジェクトの名前空間とクラスを指定します。

例 3: Web サービス プロキシの表示メソッド

$calc | Get-Member -MemberType method

TypeName: WSProxy.Calculator

Name                      MemberType Definition
----                      ---------- ----------
Abort                     Method     void Abort()
Add                       Method     int Add(int intA, int intB)
AddAsync                  Method     void AddAsync(int intA, int intB), void AddAsync(int intA,
BeginAdd                  Method     System.IAsyncResult BeginAdd(int intA, int intB, System.Asy
BeginDivide               Method     System.IAsyncResult BeginDivide(int intA, int intB, System.
BeginMultiply             Method     System.IAsyncResult BeginMultiply(int intA, int intB, Syste
BeginSubtract             Method     System.IAsyncResult BeginSubtract(int intA, int intB, Syste
CancelAsync               Method     void CancelAsync(System.Object userState)
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObjRef(type requestedT
Discover                  Method     void Discover()
Dispose                   Method     void Dispose(), void IDisposable.Dispose()
Divide                    Method     int Divide(int intA, int intB)
DivideAsync               Method     void DivideAsync(int intA, int intB), void DivideAsync(int
EndAdd                    Method     int EndAdd(System.IAsyncResult asyncResult)
EndDivide                 Method     int EndDivide(System.IAsyncResult asyncResult)
EndMultiply               Method     int EndMultiply(System.IAsyncResult asyncResult)
EndSubtract               Method     int EndSubtract(System.IAsyncResult asyncResult)
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Multiply                  Method     int Multiply(int intA, int intB)
MultiplyAsync             Method     void MultiplyAsync(int intA, int intB), void MultiplyAsync(
Subtract                  Method     int Subtract(int intA, int intB)
SubtractAsync             Method     void SubtractAsync(int intA, int intB), void SubtractAsync(
ToString                  Method     string ToString()

この例では、 Get-Member コマンドレットを使用して、Web サービス プロキシ オブジェクトのメソッドを $calc 変数に表示します。 次の例では、これらのメソッドを使用します。

プロキシ オブジェクト WebServiceProxy の TypeName には、前の例で指定した名前空間とクラス名が反映されていることに注意してください。

例 4: Web サービス プロキシを使用する

PS> $calc.Multiply(6,7)
42

この例では、 $calc 変数に格納されている Web サービス プロキシを使用します。 このコマンドは、プロキシの Multiply メソッドを使用します。

パラメーター

-Class

コマンドレットが Web サービス用に作成したプロキシ クラスの名前を指定します。 このパラメーターの値は、クラスの完全修飾名を指定するために、 Namespace パラメーターと共に使用されます。 既定値は、Uniform Resource Identifier (URI) から生成されます。

型:String
Aliases:FileName, FN
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。 これは、 UseDefaultCredential パラメーターを使用する代わりに使用します。

User01 や Domain01\User01 などのユーザー名を入力するか、 PSCredential オブジェクト ( Get-Credential コマンドレットによって生成されたものなど) を入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

型:PSCredential
Aliases:Cred
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Namespace

新しいクラスの名前空間を指定します。

このパラメーターの値は、クラスの完全修飾名を生成するために、 Class パラメーターの値と共に使用されます。 既定値は Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes と URI から生成される型です。

同じ名前の複数の Web サービスにアクセスできるように、 Namespace パラメーターの値を設定できます。

型:String
Aliases:NS
配置:2
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Uri

Web サービスの URI を指定します。 サービスの説明を含むファイルの URI またはパスとファイル名を入力します。

URI は、 .asmx ページまたはサービスの説明を返すページに返す必要があります。 ASP.NET を使用して作成された Web サービスのサービスの説明を返すには、"?WSDL" を Web サービスの URL に変換します (例: http://www.contoso.com/MyWebService.asmx?WSDL)。

型:Uri
Aliases:WL, WSDL, Path
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UseDefaultCredential

このコマンドレットが既定の資格情報を使用することを示します。 このコマンドレットは、結果のプロキシ オブジェクトの UseDefaultCredential プロパティを True に設定します。 これは、 Credential パラメーターを使用する代わりに使用します。

型:SwitchParameter
Aliases:UDC
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

A Web service proxy object

このコマンドレットは、Web サービス プロキシ オブジェクトを返します。 オブジェクトの名前空間とクラスは、コマンドのパラメーターによって決定されます。 既定値は入力 URI から生成されます。

メモ

New-WebServiceProxy は、 System.Net.WebClient クラスを使用して、指定した Web サービスを読み込みます。