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"