Dưới đây là cấu hình của tôi: Không thể có được kịch bản cơ bản Powershell chạy bên Đội bóng thành phố
Trên build log, tôi chỉ nhìn thấy đầu ra của hai dòng đầu tiên, và sau đó "Quá trình thoát với mã 0" như đầu ra cuối cùng của bước xây dựng này.
Tôi đã thử mở một thiết bị đầu cuối trong máy chủ xây dựng trong tài khoản SYSTEM (sử dụng PsTools), vì Team City được định cấu hình để chạy theo tài khoản được cho biết. Sau đó, tôi đã tạo ra một tập tin Test.ps1 với cùng một nội dung và chạy một lệnh giống như Đội bóng thành phố:
[Step 1/4] Starting: C:\Windows\system32\cmd.exe /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -Command - <C:\TeamCity\buildAgent\temp\buildTmp\powershell5129275380148486045.ps1 && exit /b %ERRORLEVEL%
(trừ các đường dẫn đến file .ps1 và phần ban đầu cmd.exe, tất nhiên) . Tôi thấy đầu ra của hai dòng đầu tiên, và sau đó thiết bị đầu cuối biến mất đột ngột!
Tôi đã nhầm lẫn ở đâu? Tôi mới đến Powershell, nhân tiện.
Bạn đã đặt Chính sách thực thi để cho phép tập lệnh của mình chưa? – ccellar
Tôi đã chọn "Đặt tập lệnh vào Powershell stdin với đối số -Command" để tránh điều đó. Bên cạnh đó, nếu nó có thể chạy hai dòng đầu tiên, tôi nghĩ rằng các điều khoản là OK, hoặc tôi có cần thêm quyền để chạy logic có điều kiện không? Điều đó sẽ khá điên rồ: P –
Tôi không có bối cảnh cho công cụ này, nhưng tôi tự hỏi nếu nó có vấn đề với stdin đa cấp? Hãy thử thay thế điều kiện bằng (sau một lớp lót) để xem bạn có nhận được kết quả khác không: nếu ("1" -eq "1") {write-host "test"} khác {write-host "else test"} –