Saya menggunakan PSExec dalam lingkungan mesin uji untuk memulai paket pengaturan aplikasi yang akan diuji sebagai administrator, dan kemudian menjalankan tes sebagai administrator jika diperlukan. PSExec hanya digunakan untuk bagian "jalankan sebagai" di sini, tidak ada eksekusi jarak jauh. Panggilannya terlihat seperti ini:
c:\psexec -u Administrator -p adminpassword -w C:\SystemTests C:\SystemTests\run_system_tests.cmd ...
Masalahnya adalah bahwa Jenkins, server CI kami, hanya menangkap logo PSExec di output konsol, tetapi bukan hasil tes yang sebenarnya:
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\SystemTests\run_system_tests.cmd exited with error code 0.
Skrip yang dimulai membuka jendela konsolnya sendiri secara lokal dan mencetak semua yang ada di sana. Tapi itu tidak masuk Jenkins sehingga kita tidak akan tahu apa yang dilakukan skrip dan mengapa semuanya gagal.
Apakah ada opsi untuk membuat PSExec mencetak keluaran program yang dimulai ke stdout, alih-alih logo, dan tidak membuka jendela konsol?
type filename
) setelah psexec - dan redirection shell tidak dapat digunakan dengan psexec?tee
(jika tersedia untuk Windows) juga umumnya memerlukan pengalihan (yang tampaknya menjadi masalah di sini) dan hanya menambahkan fitur untuk mendapatkan output pada keduanya, tampilan dan file. Saya hanya perlu file, desktop tidak dijaga. // Perbarui: Sebenarnya saya tidak ingin file, tetapi stdout untuk ditangkap ...Jawaban:
Saya telah menemukan bahwa Anda dapat membagi output PsExec dari output jarak jauh dengan cara ini ...
sehingga Anda mendapatkan output PsExec di
other.txt
file, dan remote ditmpfile.txt
sumber
Meneliti hampir masalah persis ini saya menemukan ini utas forum technet .
Pos yang relevan di utas:
Tampaknya jika Anda menentukan alamat IP host lokal sebagai mesin untuk menjalankan perintah, Anda akan mendapatkan hasilnya. Saya mengujinya sendiri, dan walaupun tidak mencetak output standar secara real time, ia mencetak semuanya ke terminal yang sama ketika skrip selesai.
Jika Anda mencoba mencari tahu bagaimana melakukan ini dengan menggunakan nama sistem alih-alih alamat IP Anda masih bisa membuatnya bekerja dengan menambahkan sebuah titik di akhir nama host sebagaimana ditentukan oleh pengguna lain beberapa posting kemudian di utas yang sama.
sumber
jika Anda lolos dari & gt; karakter dengan tanda sisipan ^ Anda dapat menyalurkan output ke file. Lihat di bawah.
c: \ psexec -u Administrator -p adminpassword -w C: \ SystemTests C: \ SystemTests \ run_system_tests.cmd ^ & gt; outputfile.txt
sumber