Używam usługi systemu Windows (Hudson), która z kolei spawnuje proces PowerShell, aby uruchomić moje niestandardowe polecenia PowerShell. Częścią mojego skryptu jest rozpakowanie pliku przy użyciu CopyHere. Kiedy uruchamiam ten skrypt lokalnie, pojawia się okno dialogowe postępu, gdy pliki są wyodrębniane i kopiowane. Jednak, gdy działa to pod usługą, zawiesza się w miejscu, w którym w przeciwnym razie pojawi się okno dialogowe.Powershell działa w ramach usługi zawiesza się na * .zip CopyHere
Oto rozpakuj część mojego skryptu.
# Extract the contents of a zip file to a folder
function Extract-Zip {
param([string]$zipFilePath, [string]$destination)
if(test-path($zipFilePath)) {
$shellApplication = new-object -com shell.application
$zipFile = get-item $zipFilePath
$zipFolder = $shellApplication.NameSpace($zipFile.fullname)
$destinationFile = get-item $destination
$destinationFolder = $shellApplication.NameSpace($destinationFile.fullname)
$destinationFolder.CopyHere($zipFolder.Items())
}
}
Podejrzewam, że z powodu jego biegnący pod procesu obsługi, która jest bez głowy (bez interakcji z pulpitem), jej jakoś zatrzymany próbuje wyświetlić okno.
Czy istnieje sposób obejścia tego?
Czy wypróbowałeś wtyczkę powershell dla Hudsona? Może to pomoże. –