0

私はラボ環境で実行しており、約 50 台のマシンを自動化する必要があります。サーバーから .xml ワイヤレス ネットワーク プロファイルを復元してインストールしようとしています。このコマンドは、1 つのサーバーから 50 のクライアントに送信されています。

最近、一部のクライアントのイメージを再作成し、PS2 から PS3 にアップグレードしましたが、ダウンロード スクリプトが機能しなくなりました。

私のPS2ワークステーションでは問題なく動作します。許可の問題かもしれないと思いますが、よくわかりません。ThrustedHosts は * に設定され、スクリプト実行ポリシーは Unrestricted に設定されています。

スニペットとエラーは次のとおりです。

function InstallProfile(){

clear

$fonction = 
@'
param($profileName)
$File = "c:\profiles\profile.xml"
$webclient = New-Object System.Net.WebClient
$webclient.Proxy = $NULL
$ftp = "ftp://anonymous:anonymous@192.168.2.200/profiles/$profileName"
$uri = New-Object System.Uri($ftp)
Write-Host (hostname)
$webclient.DownloadFile($uri, $File)
write-host (hostname) (netsh wlan add profile filename="c:\profiles\profile.xml")
'@

$profileName = Read-Host "Enter the profile name(XML file must be present in c:\share\profiles\)"

ExecCmd -fonction $fonction -argument $profileName

func_done
}

#

function ExecCmd
{
param(
$fonction, 
$argument
)

$PingTest = RetrieveStatus
$results = @{}
$results = $PingTest.up
$results | sort -uniq | out-Null

$fonctionSB = ConvertTo-ScriptBlock($fonction)

    foreach($result in $results)
    {
        $os = "Windows"
            try{
                $session = New-PSSession -ComputerName $result.address -Credential $credentials -EA stop
                }
            catch{
            $os = "Not Windows"
            }
        if($os -eq "Windows"){
        Invoke-Command $result.address -ScriptBlock $fonctionSB -Arg $argument -Credential $credentials
        Get-PSSession | Remove-PSSession
        }
        else{
        Write-Host $result.address "does not support Powershell commands"
        }
    }

}

そしてエラー:

"2" 個の引数を指定して "DownloadFile" を呼び出し中に例外が発生しました: "WebClient 要求中に例外が発生しました。" + CategoryInfo : NotSpecified: (:) []、MethodInvocationException + FullyQualifiedErrorId : WebException + PSComputerName : 192.168.2.110

4

1 に答える 1

0

回避策を見つけた、

PS2 で動作する webclient.Download の try/catch を追加しました。キャッチ部分で、コマンドを Invoke-WebRequest $uri -OutFile $File に置き換えました

この方法で PS2 と PS3 で問題なく動作します。

于 2012-11-09T20:20:16.080 に答える