Powershell met à disposition le cmdlet New-WebServiceProxy pour créer un proxy pour appeler vos services WCF. Pour créer le proxy, il suffit de lui donner le WSDL du service a appeler.
Une fois le proxy généré, il suffit d'appeler la méthode correspondant à l'opération. Par exemple :
$proxy = New-WebServiceProxy -uri $WSDLUrl; $res = $proxy.HelloWorld();
Dans le but de faire du monitoring, j'ai écrit un petit script, disponible ci dessous, qui permet, sur base d'un wsdl et du nom de l'opération à appeler, de vérifier que l'opération sur un service s'exécute correctement:
[CmdletBinding(SupportsShouldProcess=$true)] Param( [Parameter(Mandatory=$True)][string]$WSDLUrl, [Parameter(Mandatory=$True)][string]$MethodName ) Write-Verbose "WSDLUrl=$WSDLUrl" Write-Verbose "MethodName=$MethodName" try { $proxy = New-WebServiceProxy -uri $WSDLUrl -ErrorAction Stop if(-not $proxy.$MethodName) { Write-Error "Method $MethodName is not declared on service defined at $WSDLUrl" exit 1; } $res = $proxy.$MethodName.Invoke(); } catch { Write-Error $_ exit; } if($res) { Write-Verbose $res; } else { Write-Verbose "void"; } Write-Host "service called"