WebAdministrationモジュールでPSRemotingを使用して、さまざまなサイトに関する情報を取得しています。しかし、私はコマンドの呼び出し中に致命的な致命的でないCOM例外を受け取り、他の誰かがそれを解決したのか疑問に思っています。PowerShell IIS: WebAdminリモート呼び出しによりWSAStartupエラーWSANOTINITIALISEDが発生する
Invoking
protocol : http
bindingInformation : 10.x.x.x:80:alias
...
Schema : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema
An unhandled COM interop exception occurred: Either the application has not called WSAStartup, or WSAStartup failed. (Exception from HRESULT: 0x800
7276D)
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : COMException
Invoked
Removing
Removed
私は結果が前にエラーがスローされることに返される観察:
cls
$command = {
param($alias)
Import-Module 'WebAdministration'
$binding = Get-WebBinding -HostHeader $alias
$binding
}
$server = 'server'
$args = @('alias')
$session = New-PSSession -ComputerName $server
Write-Host ("Invoking")
try {
Invoke-Command -Session $session -ScriptBlock $command -ArgumentList $args
Write-Host ("Invoked")
} catch {
Write-Host ("Caught $_")
} finally {
Write-Host ("Removing")
Remove-PSSession -Session $session
Write-Host ("Removed")
}
そして、ここでは結果である:ここでは最小限の実装です。
面白いの詳細:
- ゲット・ウェブサイトは、Get-項目を "IIS:\ ..." は、Get-WebBinding同じエラーですべての結果を
- で書かれた結果として、ターゲットマシン上で直接$コマンドを実行しますエラーません
なし - ゲット-項目を「D:\ ...」エラー
にはなりません - COMエラーがない
私はPowerguiブロックとPowerShellの3台の別々のW2K8サーバプロンプトと2台の異なるターゲットサーバに対してからこのコードを実行しました。すべての場合において、私は同じエラーを受けました。 – codepoke
興味深いことに、NetMonは、/ wsmanを使用した暗号化された会話が、失敗したWebAdminセッションと「成功した」Get-Item 'd:\'セッション間で非常に似ていることを示しています。両方の会話は、リモートサーバーが暗号化されたデータを送信し、最後に(最後のポストに、理論的に切断要求ですか?)500内部サーバーエラーが発生します。私は会話を解読することができないので、実際の情報はありませんが、面白いです。 – codepoke
私は冗長モードなので、内部クライアントがエラーを見て気にするので、これは重要です。そのために、実際の解決策が見つかるまで、リモート呼び出しに「-ErrorAction SilentlyContinue」を追加しました。それは問題を処理します。 – codepoke