วิธีการเรียกใช้สคริปต์ PowerShell จากเซสชัน Cygwin SSH


12

ฉันมี Windows Server 2003 ที่มี CopSSH ติดตั้งอยู่ (Cygwin + sshd) W ต้องการให้สามารถเรียกใช้สคริปต์ PowerShell ผ่านคำสั่งเซสชัน SSH แล้วใช้เอาต์พุต มีความสามารถเช่นนี้ไหม? ทำอย่างไร ?

คำตอบ:


11

เพียงแค่เรียกใช้powershellอาร์กิวเมนต์ที่เกี่ยวข้องแล้วส่งไปที่ใดก็ได้ที่คุณต้องการ คุณต้องแน่ใจว่ามันอยู่ในPATHหลักสูตร


ขอบคุณ ฉันไม่คิดว่ามันง่ายขนาดนั้น
malloc4k

15
มันไม่ง่ายอย่างนั้น PowerShell ใช้ Console API Cygwin (ในมือของผู้ใช้ที่มีประสบการณ์) ไม่ได้ทำงานในคอนโซล แต่จะทำงานในเทอร์มินัลอีมูเลเตอร์ PowerShell ไม่ทำงานในเทอร์มินัล มันค้างเพราะพยายามใช้ ReadConsoleInput แทน ReadFile ในอินพุตมาตรฐาน
Barry Kelly

9

Barry Kelly พูดถูก

คุณต้องใช้ซอฟต์แวร์ wrapper ของฉันที่สร้างคอนโซลที่ซ่อนอยู่และเรียกใช้ powershell บนมัน

หน้าของฉันอยู่ที่นี่: http://sergeybelous.com/shell-terminal/#proxywinconsole.exe

มีคนพบซอฟต์แวร์ห่อหุ้มของฉันแล้วและสร้างบทช่วยสอนที่นี่: http://ssh-with-powershell.blogspot.com/2013/07/enable-ssh-with-powershell-and-remove.html


6

สิ่งแรกมันเป็นการดีที่จะเพิ่มพา ธ ที่สามารถใช้งานได้ของ PowerShell ให้กับตัวแปรสภาพแวดล้อม PATH ของผู้ใช้ เราทำได้โดยเพิ่มลงในไฟล์. bashrc ของผู้ใช้เช่น:

export PATH=${PATH}:"/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0"

จากนั้นเราสามารถเรียกใช้สคริปต์ PowerShell เพียงพิมพ์ในเซสชัน SSH ของเรา

powershell.exe -File "c:\u.ps1"

แน่นอนตอนนี้เราสามารถไปป์มันเพื่อใช้มันเป็นเอาท์พุต

ฉันแค่สงสัยว่าทำไมฉันต้องกด "Enter" สองครั้งในเซสชัน SSH หลังจากพิมพ์คำสั่งเพื่อให้ทำงาน


4
เพื่อหลีกเลี่ยงการตีกลับให้รันคำสั่งเช่น:echo "\n" | powershell.exe ...
Andrew

4

ลองไม่มีรูปแบบอินพุต

powershell.exe -inputformat none -noprofile echo hello

มีประโยชน์สำหรับการไม่ต้องส่งไฟล์ไปยังเครื่องโลคอล


3

หากคุณจำเป็นต้องเรียกใช้ภายใน PowerShell Cygwin / babun ทำตามhttps://code.google.com/p/mintty/issues/detail?id=56#c64 Bascilly, downloard หรือคอมไพล์https://github.com/rprichard/winptyคัดลอกไปยัง $ PATH ของคุณแล้วเรียกใช้

console.exe powershell

สิ่งนี้ยังทำงานกับแบทช์สคริปต์ที่เรียกใช้ PowerShell ภายใน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.