有谁知道我如何加载一个 DLL,而无需在我在持久连接中使用的每台远程服务器上使用它并运行 invoke-command cmdlet?
我正在使用 DotNetZip 备份大约 13 台服务器上的文件夹。一切都在本地工作,但是当它到达远程服务器(阵列中的第一个服务器是本地服务器)时,它会出错,因为它看不到远程服务器上的 DLL。
我在一台服务器上执行此脚本,它应该压缩每个远程服务器上的文件夹:
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
}
谢谢你 。
-吉姆