Quản lý Windows Powershell từ thiết bị đầu cuối Linux


31

Tôi quản lý máy chủ Windows Server 2012. Tôi đang học PowerShell để quản lý các máy chủ này thông qua dòng lệnh. Máy trạm của tôi chạy Ubuntu và tôi thường quản lý các máy chủ Linux bằng cách kết nối qua SSH.

Có cách nào để tôi có thể sử dụng Windows PowerShell trên Windows Servers từ máy trạm Linux của mình thông qua dòng lệnh như truy cập SSH trên Linux không?


Có những sản phẩm của bên thứ 3 cung cấp máy chủ SSH cho Windows với quyền hạn như vỏ mặc định. ví dụ powershellserver.com
Zoredache

6
Cá nhân tôi thích quản lý Windows từ máy Windows (ảo) và Linux từ máy Linux. Điều này dường như đang giúp giữ gìn sự tỉnh táo của tôi.
Michael Hampton

Tôi hiểu những gì bạn đang cố gắng đạt được, nhưng miễn là bạn có thể chạy các lệnh powershell trên một máy chủ windows, bạn có thể quản lý những cái khác từ phiên PS đó không?
Andy

@Andy - quan điểm của tôi chính xác.
mfinni

Tôi đang quan tâm đến dự án Pash ( github.com/Pash-Project/Pash ). Họ muốn thực hiện lại PowerShell trên Linux. Bây giờ tôi đang cố gắng biên dịch trên máy Raspberry Pi để xem liệu tôi có thể đưa ra lệnh tắt máy từ xa không
usr-local-ΕΨΗΕΛΩΝ

Câu trả lời:


15

Một số tùy chọn:

  1. Cài đặt máy chủ SSH trên máy Windows, SSH in, chạy Powershell trên hộp Windows
  2. Chạy ứng dụng khách RDP trên Linux, RDP in, chạy Powershell trên hộp Windows
  3. Sử dụng Powershell Web Access, truy cập máy chủ cổng POSH WA bằng trình duyệt, chạy Powershell qua trình duyệt

http://technet.microsoft.com/en-us/l Library / hh831611.aspx

Tôi không biết về bất kỳ chương trình thực thi POSH nào cho Linux, vì vậy bạn không thể chạy các lệnh POSH trực tiếp từ hệ vỏ trong Linux - trước tiên bạn phải truy cập vào máy Windows, như RDP, bảng điều khiển từ xa (DRAC, iLO), SSH, hoặc truy cập web POSH.

/ Chỉnh sửa- có vẻ như có một số tùy chọn. http://sharpcodenotes.blogspot.com/2014/01/rucky-powershell-commands-from-linux.html

Bạn có thể thử và yêu cầu OpenWSMan thực hiện những gì bạn muốn, nhưng tôi nghĩ rằng bạn phải tạo mọi lệnh như yêu cầu URL thay vì chỉ đưa ra lệnh Powershell chính xác - như tôi đã nói, không có Powershell thực sự cho Linux. Bạn có thể cài đặt đá quý ruby ​​WinRB trên mọi máy Windows và sau đó chạy mã Ruby trên hộp Linux của bạn để gọi các lệnh Powershell.

Trong mọi trường hợp, dường như bạn sẽ không có trải nghiệm Powershell tương tác, như hoàn thành tab, trợ giúp, v.v. Những thứ này dường như là để chạy một tập lệnh hoặc một lệnh và có lẽ bạn sẽ phải nắm bắt bất kỳ lỗi hoặc phản hồi nào khác tự mình. Bạn sẽ không nhận được một giải pháp hạng nhất trên Linux.

/ Chỉnh sửa lại - vâng, MSDN nói rằng điều này sẽ có xu hướng xấu / lộn xộn. Ngay cả giải pháp đơn giản / hiệu quả mà anh ta đưa ra có vẻ như không vui.

Mặc dù điều khiển từ xa Powershell được xây dựng dựa trên WS-Management, nhưng đây thực sự là một giao thức trong một giao thức và cố gắng can thiệp trực tiếp với PSRP (Giao thức từ xa Powershell) về cơ bản sẽ yêu cầu sao chép Powershell trên máy khách.


Điều này có thể thực hiện công việc ... nhưng tôi phải cài đặt máy chủ SSH trên mọi Máy chủ Windows. Theo như tôi biết, PowerShel sử dụng WS-Management, Open Standard ... có máy khách Linux nào tạo ra loại kết nối này không?
Ederson

2
Không, thưa ngài. Khi bạn có vỏ trên hộp Windows (giả sử nó nằm trong cùng miền với các hộp Windows khác), bạn có thể sử dụng Powershell Remote. Hoặc bạn có thể sử dụng DSC, Desired State Config. Hoặc bạn có thể đang làm việc trên những thứ như AD hoặc MS Exchange không hoạt động trên một máy chủ, nhưng kết nối với thư mục bằng bất kỳ máy chủ DC hoặc CAS nào khả dụng.
mfinni

2
Once you have a shell on a Windows box you can use Powershell Remoting.- Hãy lưu ý rằng bạn gần như chắc chắn sẽ gặp phải vấn đề xác thực 2 hop với điều này. Bạn gần như chắc chắn sẽ cần phải sử dụng xác thực CredSSP.
Zoredache

Anh ta sẽ gặp phải vấn đề này nếu theo đuổi một trong hai phương pháp đầu tiên? Tôi (nghĩ rằng tôi) biết rằng bạn không gặp vấn đề này khi sử dụng RDP.
mfinni

1
Chỉ cần lưu ý, Pash ( github.com/Pash-Project/Pash ) có thể có khả năng này vào một lúc nào đó, nhưng điều đó có thể sẽ còn khá xa trong tương lai. Hiện tại họ vẫn đang cố gắng triển khai các kiến ​​thức cơ bản về PowerShell.
supercheetah


4

Có, bạn có 2 lựa chọn:

  1. Bạn có thể cài đặt máy chủ SSHd trên windows và trong cấu hình thiết lập đường dẫn đến PowerShell.

    Để làm điều này, bạn có thể sử dụng hướng dẫn để cài đặt SSHdcấu hình đường dẫn PowerShell.

    Nói ngắn gọn:

    1. Cài đặt freeSSHd
    2. Thêm tài khoản người dùng mới và cho phép truy cập SSH
    3. Kích hoạt cổng SSH trong Windows Firewall
    4. Định cấu hình đường dẫn đến PowerShell.exe
  2. Truy cập web PowerShell (Chỉ Win Server 2012 R2)

    Ở đó bạn có một hướng dẫn về Technet - blog.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx


Điều này có thể thực hiện công việc ... nhưng tôi phải cài đặt và định cấu hình máy chủ SSH trên mọi Máy chủ Windows. Theo như tôi biết, PowerShell sử dụng WS-Management, Open Standard ... có máy khách Linux nào tạo ra loại kết nối này không?
Ederson

Tôi đã thêm một tùy chọn với liên kết, nếu bạn có thể 2012 R2 thì điều này có thể giúp bạn. Nhưng vẫn không được "tích hợp" và với máy khách. Bạn truy cập nó qua trình duyệt.
zorbon.cz

3

Đã thử nghiệm trong Ubuntu 14.04 LTS

Tải xuống và cài đặt Winexe:

wget https://passing-the-hash.googlecode.com/files/winexePTH1.1.0-1.deb

dpkg -i winexePTH1.1.0-1.deb

Sử dụng cơ bản

winexe -U DOMAIN/USERNAME%PASSWORD //MACHINEIP "cmd.exe"

Ví dụ:

echo -ne '\n' | winexe -U DOMAIN/USERNAME%PASSWORD //IP 'powershell.exe -command "Get-Process | Select-Object Name, ProcessName"' | sort -u

2
Vui lòng thêm một số chi tiết để giải thích câu trả lời này ...
Pierre.Vriens

2

Bạn cũng có thể cài đặt win32-openSSH bằng tay từ https://github.com/PowerShell/Win32-OpenSSH hoặc thông qua Chocolatey https://chatioatey.org hoặc thậm chí nhanh hơn thông qua Boxstarter (sử dụng Chocolatey dưới mui xe) https: // boxstarter.org (cài đặt nhanh https://boxstarter.org/packages/nr/win32-openssh ).

Nó cần một chút thiết lập, nhưng nó là một cổng win32 gốc (vâng, thực sự!) Được duy trì bởi những người Microsoft làm PowerShell.

Mặt khác, như ai đó đã đề cập, bạn có thể cài đặt đá quý WinRM trên Linux và có được một chút kết nối qua giao thức WinRM, nhưng điều đó không tốt bằng khi bắt đầu PSSession.

Ngoài ra, những người đứng sau viên ngọc WinRM (WinRb) cũng đang xem xét triển khai một tương tác PowerShell nguyên gốc hơn, giúp PowerShell vượt qua WinRM, sẽ có nhiều chức năng hơn để tải lên và nhanh hơn cho các hoạt động khác. Xem bài đăng trên blog này, http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remote-ENC-a-ruby-cross-plaform-len

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.