В настоящее время я пытаюсь реализовать функциональность, упомянутую в этом вопросе, но у меня ничего не получилось. Я пытаюсь запустить это на сервере TeamCity, чтобы скопировать некоторые файлы, а затем запустить командный файл. Робокопия работает отлично, но выполнение для Invoke-Command
кажется неудачным, но не выдает никакой ошибки ни одним из способов, которые я пробовал.
Это мой код:
$deploymentComputerName = 'server.name.com'
$robocopyPath = 'C:\Windows\System32\robocopy.exe'
try {
$deploymentShare = "\\" + $deploymentComputerName + "\folder"
$deploymentPackageDirectory = 'c:\local\route'
$invokeRoute = "C:\Route\batchFile.bat"
&$robocopyPath /E /PURGE $deploymentPackageDirectory $deploymentShare /r:0 /XF "LibSassHost.dll" "LibSassHost.Native-64.dll" "libsass.dll"
Write-Host "Attempting to run it with the FIRST method"
Invoke-Command -ComputerName $deploymentComputerName -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c '$invokeRoute'"}
Invoke-Command -ComputerName $deploymentComputerName -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c $invokeRoute"}
Write-Host "Attempting to run it with the SECOND method - " $invokeRoute
Invoke-Command -ScriptBlock { "$deploymentShare\batchFile.bat" } -ComputerName $deploymentComputerName
Write-Host "Finished trying to run the methods"
} catch {
Write-Host "Error running powershell file"
}