Tôi đã viết một máy chủ ssh trong C# và tôi nghĩ rằng nó sẽ được gọn gàng để treo lên powershell như một vỏ. Tôi đã thử 2 phương pháp để có được điều này để làm việc đúng cách, nhưng cả hai đều xa hoàn hảo. Dưới đây là những gì tôi đã thử:Có thể giả mạo cửa sổ giao diện điều khiển api không?
- Khởi chạy powershell.exe và chuyển hướng nó là std (vào/ra). Điều này không hoạt động tốt kể từ khi powershell.exe phát hiện nó được chuyển hướng, thay đổi hành vi của nó. Hơn nữa, nó hy vọng dữ liệu đầu vào trên các lệnh stdid, không phải là . Vì vậy, nó sử dụng giao diện điều khiển api để đọc lệnh.
- Quyền tác giả lưu trữ trong ứng dụng "trình bao bọc". Điều này có lợi thế là có thể cung cấp triển khai "bảng điều khiển" cho quyền hạn (thông qua PSHostRawUserInterface). Điều này hoạt động tốt hơn, nhưng bạn vẫn có thể gọi các lệnh (chủ yếu là các ứng dụng giao diện điều khiển thực) như "... | more", mong đợi để có thể sử dụng giao diện điều khiển api và sau đó cố đọc từ bảng điều khiển của trình bao bọc quá trình.
Vì vậy, những gì tôi muốn làm là có một bộ chức năng thay thế các chức năng đầu vào/đầu ra bàn điều khiển thông thường mà ứng dụng giao diện điều khiển sử dụng, vì vậy tôi có thể xử lý chúng. Nhưng điều đó có vẻ khá quyết liệt đến mức trở thành một ý tưởng thiết kế tồi tệ (imo).
Ngay bây giờ tôi đang trên ý tưởng thao tác bảng điều khiển bằng cách gửi các khóa có liên quan với các hàm gốc/Pinvoke như WriteConsoleInput. Tôi thu thập rằng nó có thể có thể giả mạo giao diện điều khiển theo cách đó. Nhưng tôi không thấy làm thế nào tôi sẽ "đọc" những gì xảy ra trên bàn điều khiển.
Cũng nên nhớ, đó là dịch vụ, vì vậy tốt nhất là không nên tạo ra một cửa sổ giao diện điều khiển thực tế, mặc dù có thể trong cửa sổ phiên 0 không hiển thị và không quan trọng.
Vâng cho một tôi muốn truy cập ssh của tôi từ thiết bị di động Android của tôi. Tôi đã không nhìn thấy một khách hàng thực sự quyền năng cho điều đó. Có một phần "vui vẻ" tốt cho dự án này. Đối với Cygwin ... tôi cũng có vấn đề (có lẽ không hợp lý) với nó. –
Bạn có thử cái này [PowerShellInside] (http: //www.powershellinside không.com/powershell/ssh/download.aspx). Nó tồn tại một phiên bản kết nối miễn phí. – JPBlanc
Humm, một tìm kiếm liên tục, tôi sẽ kiểm tra nó. Làm cho tôi tự hỏi làm thế nào họ giải quyết được vấn đề mặc dù. –