0

別のスクリプトをリモート サーバーにコピーしてから、2 番目のスクリプトを実行するスクリプトがあります。これは先週は問題なく機能していましたが、今日、最初のスクリプトの実行が失敗し、2 番目のスクリプトが見つからないと言って失敗しました。トラブルシューティングの一環として、2 番目のスクリプトの単純なバージョン (Write-Host "Wrong Server!" のみを含む) をローカル サーバーに作成しました。1 番目のスクリプトを実行すると、ダミーの 2 番目のスクリプトがローカル サーバーで実行されます。

以下のテストハーネススクリプトで貼り付けました:

$DeploymentFolderOnTargetServer = "c:\biztalkdeployment"

$TargetServer = "d-vasbiz01"                
$Username = "TFS_Service"
$Password = "x"
$SecPass = ConvertTo-SecureString $Password -AsPlainText -Force
$Cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Username,$SecPass
$Session = New-PSSession -ComputerName $TargetServer -Authentication CredSSP -Credential $Cred
$Environment = "Dev"
$ExecuteScriptFilePath = join-path "$DeploymentFolderOnTargetServer" "ExecuteBizTalkAppMSI.ps1"
$MSI = "bin\debug\x.int.mis-3.0.0.msi"
$InstallFolderOnTargetServer = "C:\Program Files (x86)\x.Int.MIS for BizTalk 2010\3.0"

Write-Host "Session = $Session"
Write-Host "ExecuteScriptFilePath = $ExecuteScriptFilePath"
Write-Host "MSI = $MSI"
Write-Host "InstallFolderOnTargetServer = $InstallFolderOnTargetServer"
Write-Host "Environment = $Environment"
Write-Host "DeploymentFolderOnTargetServer = $DeploymentFolderOnTargetServer"


Invoke-Command -Session $Session  -FilePath $ExecuteScriptFilePath -argumentlist $MSI, $InstallFolderOnTargetServer, $Environment, $DeploymentFolderOnTargetServer             

テストの出力は次のとおりです。

Session = System.Management.Automation.Runspaces.PSSession
ExecuteScriptFilePath = c:\biztalkdeployment\ExecuteBizTalkAppMSI.ps1
MSI = bin\debug\x.int.mis-3.0.0.msi
InstallFolderOnTargetServer = C:\Program Files (x86)\Vasanta.Int.MIS for BizTalk 2010\3.0
Environment = Dev
DeploymentFolderOnTargetServer = c:\biztalkdeployment
Wrong Server!

get-session を実行すると、セッションのコンピューター名が 2 番目のサーバーを正しく指しています。

何か案は?

4

1 に答える 1

1

-FilePathパラメータ toは、ターゲット コンピュータ上のパスではなく、スクリプトへのローカルパスをInvoke-Command指定しています。は、ローカル スクリプト ファイルをターゲット コンピュータに渡して、そこで実行できるようにします。Invoke-Command

于 2012-08-07T15:37:37.833 に答える