持続的接続で使用し、invoke-commandコマンドレットを実行している各リモートサーバーにDLLをインストールせずに、DLLをロードする方法を知っている人はいますか?
DotNetZipを使用して、約13台のサーバー上のフォルダーをバックアップしています。すべてがローカルで機能していますが、リモートサーバー(配列の最初のサーバーはローカルサーバー)に到達すると、リモートサーバーにDLLが表示されないため、エラーが発生します。
このスクリプトを1つのサーバーで実行すると、各リモートサーバーのフォルダーが圧縮されます。
foreach($i in $appServers) {
$sessionForI = New-PSSession -computername $i
Invoke-Command -Session $sessionForI -ScriptBlock {
if (!(Test-Path -path C:\\newDeploy)) {
New-Item C:\\newDeploy -type directory
}
[System.Reflection.Assembly]::LoadFrom("C:\\newDeploy\\Ionic.Zip.dll");
$directoryToZip = "C:\\Program Files (x86)\\SubDir\\$folder"
$zipfile = new-object Ionic.Zip.ZipFile
$e = $zipfile.AddSelectedFiles("name != '*.e2e'",$directoryToZip, "",1)
if (!(Test-Path -path C:\\newDeploy\\backup)) {
New-Item C:\\newDeploy\\backup -type directory
}
$zipfile.Save("C:\\newDeploy\\backup\\" + $folder+ ".zip")
$zipfile.Dispose()
}
remove-PSSession -session $sessionForI
}
ありがとうございました 。
-ジム