0

持続的接続で使用し、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
    }

ありがとうございました 。

-ジム

4

3 に答える 3

1

Ionic.Zip.dllこれを行うには、リモートマシンにコピーする必要があると確信しています。リードシステムから共有し、UNCパスを使用してリモートマシンからロードしてみることができます(これは試したことがありません...今から...):-)

更新-うん、UNCパスをに渡すことができることを確認しました[System.Reflection.Assembly]::LoadFrom

アップデート2-アセンブリがロードされている間、それを使用してもうまく機能しませんでした:

Exception calling "AddFile" with "1" argument(s): "Request for the permission of type 'System.Security.Permissions.File
IOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."
At line:1 char:11
+ $z.AddFile <<<< ("C:\AMCleanUp.log")
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

DLLのローカルコピーをロードすると、AddFileメソッドは正常に機能しました。このDLLをすべてのサーバーにコピーするしかありません...

于 2012-01-20T23:32:37.940 に答える
0

LoadFromでリモートボックスのUNCパスを使用できますが、DotNetZipで同じことを行うのに問題が発生していることがわかります。

http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/dd5dcae2-1ccc-4be2-b986-61c069102ffb/

于 2012-01-20T23:34:19.937 に答える
0

すでにリモートセッションでリモートリソースにアクセスする際の問題は、ダブルホップ認証に関係していると思います。このリンクを確認してくださいhttp://www.ravichaganti.com/blog/?p=1230

于 2012-01-23T22:38:04.053 に答える