0

Citrix が提供する PowerShell モジュールを使用して、Nitro REST API を呼び出しています。関数を呼び出すと、負荷分散されたサービスを負荷から正常に追加および削除できます。ただし、サービスのステータスを取得するために GET メソッドを実行しようとすると、次のエラーが発生します。

Invoke-RestMethod : 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。

モジュールを使用せずに Invoke-RestMethod を実行しようとしましたが、同じエラーが発生します

Invoke-RestMethod -WebSession $myNSSession.WebSession -Method GET -Uri https://<NetScaler IP/nitro/v1/config/service/<Service Name>

このエラーをグーグルで検索すると、すべてが証明書の問題を示しているようです。以下をスクリプトに追加するまで、最初は POST メソッドでもこれを使用していました

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

したがって、これは POST を実行するために機能するので、なぜ GET を実行しないのかわかりません!!

もう 1 つの奇妙な点は、URL をブラウザに直接入力して資格情報を入力すると、生のテキストで応答が返されることです。これは、NetScaler や NITRO API ではなく、PowerShell で呼び出す方法に問題があるようです!

これは私を夢中にさせているので、誰か助けてください!!

4

2 に答える 2

0

確かに、私は Invoke-RestMethod コマンドは初めてですが、これを試してください:

$creds = Get-Credential

$service = Invoke-RestMethod -Uri https://<NetScaler IP/nitro/v1/config/service/<Service Name> -Credential $creds

あなたが得るものはこれに似たものです:

*errorcode* *message*       *serverity*           *service*
*        0   Done            NONE                  {@{name=<service name; n..

$service.service と入力すると、詳細情報が表示されます。利用可能なすべての属性がリストされます。次に、パターンに従ってください: $service.service.

于 2015-06-08T17:41:55.123 に答える