Lorsque vous tentez d'obtenir l'état du serveur Citrix XenApp 6.5 en utilisant le code suivant, un jeu de résultats est renvoyé lorsqu'il est exécuté localement dans PowerShell sur un collecteur de données de zone:Invoke-Command avec ScriptBlock Fonctionne sur le serveur local - À distance Resultset est vide
Le même scriptbloc est ensuite exécuté dans PowerShell avec un nom d'ordinateur défini sur un ZDC et des informations d'identification fournies. Aucune exception ne sont jetés et le vide est ResultSet:
$zoneDataCollector = "SOMEZDCHOST"
$serverName = "SOMECITRIXSERVER"
$key = (somekeyvaluehere)
$passwordZDC = cat CredentialFile.txt | convertto-securestring -key $key
$credZDC = new-object -typename System.Management.Automation.PSCredential -argumentlist $usernameZDC, $passwordZDC
$ZDCSession = New-PSSession -ComputerName $zoneDataCollector -Credential $credZDC
$Invoke-Command -Session $ZDCSession -ScriptBlock {Add-PSSnapin Citrix.XenApp.Commands}
$serverStatus = Invoke-Command -Session $ZDCSession -ScriptBlock {Get-XAServer | select ServerName,@{n="InMaintenanceMode";e={ if($_.LogOnMode -like "Prohibit*"){$true}elseif($_.LogOnMode -eq "AllowLogons"){$false} }} | where {$_.ServerName -eq $serverName} | Select InMaintenanceMode}
Write-Output "Status: $serverStatus.InMaintenanceMode"
Status:
Exécution d'une capture de paquets Wireshark est pas très utile, car la charge utile du trafic WinRM est crypté.
Des idées sur la raison pour laquelle la commande dans le scriptblock fonctionnerait localement, mais retourner un resultset vide sans lancer des exceptions?
Merci! ds