Tôi đang chạy một Dịch vụ Windows (Hudson) mà đến lượt nó tạo ra một quá trình PowerShell để chạy các lệnh PowerShell tùy chỉnh của tôi. Một phần của kịch bản của tôi là giải nén tệp bằng CopyHere. Khi tôi chạy tập lệnh này cục bộ, tôi thấy hộp thoại tiến trình bật lên khi các tệp được trích xuất và sao chép. Tuy nhiên, khi điều này chạy theo dịch vụ, nó treo ở điểm mà một hộp thoại sẽ xuất hiện.Powershell đang chạy dưới một dịch vụ bị treo trên * .zip CopyHere
Đây là phần giải nén tập lệnh của tôi.
# 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())
}
}
Tôi nghi ngờ rằng vì nó đang chạy trong một quy trình dịch vụ không có đầu (không tương tác với máy tính), bằng cách nào đó nó đang cố gắng hiển thị hộp thoại.
Có cách nào khác không?
Bạn đã thử plugin powerhell cho Hudson chưa? Có thể điều đó sẽ giúp ích cho bạn. –