Windows Powershell'i Linux terminalinden yönetme


31

Windows Server 2012 sunucularını yönetiyorum. Bu sunucuları komut satırı üzerinden yönetmek için PowerShell'i öğreniyorum. İş istasyonum Ubuntu kullanıyor ve genellikle Linux sunucularını SSH ile bağlanarak yönetiyorum.

Linux iş istasyonumdan Windows PowerShell'i Windows Sunucularında, Linux'ta SSH erişimi gibi bir komut satırı üzerinden kullanmamın bir yolu var mı?


Varsayılan kabuk olarak powershell bulunan Windows için bir SSH sunucusu sağlayan 3. taraf ürünleri vardır. örneğin powershellserver.com
Zoredache

6
Şahsen ben Windows'u Windows (sanal) bir makineden ve Linux'u Linux makineden yönetmeyi tercih ederim. Bu, aklımdan kalanları korumaya yardımcı oluyor gibi görünüyor.
Michael Hampton

Ne elde etmeye çalıştığınızı anlıyorum, ancak bir pencere sunucusunda powershell komutlarını çalıştırabildiğiniz sürece diğerlerini bu PS oturumundan yönetemez misiniz?
Andy

@Andy - tam olarak benim açımdan.
mfinni

Pash projesiyle ilgileniyorum ( github.com/Pash-Project/Pash ). PowerShell'i Linux'ta yeniden uygulamak istiyorlar. Şimdi uzaktan kapatma komutu verebilir miyim diye görmek için bir Raspberry Pi makinesinde derlemeye çalışıyorum
usr-local-ΕΨΗΕΛΩΝ

Yanıtlar:


15

Bazı seçenekler:

  1. Bir Windows makinesine bir SSH sunucusu kurun, SSH girin, Powershell'i Windows kutusunda çalıştırın
  2. Linux üzerinde bir RDP istemcisi çalıştırın, Windows'ta RDP açın, Powershell'i çalıştırın
  3. Powershell Web Erişimi'ni kullanın, POSH WA ağ geçidi sunucusuna bir tarayıcıyla vurun, Powershell'i tarayıcıdan çalıştırın

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

Linux için POSH çalıştırılabilirlerinin farkında değilim, bu nedenle POSH komutlarını doğrudan Linux'ta bir kabuktan çalıştıramazsınız - önce Windows makinesine bir şekilde RDP, uzak konsol (DRAC, iLO), SSH, veya POSH Web Erişimi.

/ Düzenle - bazı seçenekler var gibi görünüyor. http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

İstediğiniz şeyi yapmak için OpenWSMan'ı deneyebilirsiniz ve elde edebilirsiniz, ancak bence her komutu bir URL isteği gibi yapmanız yeterli olacaktır, sadece doğru Powershell komutunu vermek yerine - söylediğim gibi, Linux için gerçek bir Powershell yoktur. Her Windows makinesine WinRB ruby ​​gem'i yükleyebilir ve daha sonra Powershell komutlarını çağırmak için Linux kutunuzda Ruby kodunu çalıştırabilirsiniz.

Her iki durumda da, sekme tamamlama, yardım vb. Gibi etkileşimli Powershell deneyimine sahip olacaksınız gibi görünmüyor. Bunlar bir komut dosyası veya tek bir komut çalıştırmak için görünüyor ve muhtemelen herhangi bir hata veya başka bir geri bildirim almanız gerekecek. kendi başına. Linux'ta birinci sınıf bir çözüm bulamayacaksınız.

/ Tekrar düzenle - evet, MSDN bunun çirkin / tıknaz olma eğiliminde olacağını söylüyor . Verdiği basit / etkili çözüm bile eğlenceli gözükmüyor.

Powershell uzaktan kumandası, WS-Management'ın üzerine kurulu olmasına rağmen, bu gerçekten bir protokol içinde bir protokoldür ve PSRP (Powershell Remoting Protocol) ile birlikte çalışmayı denemek, doğrudan müşteride Powershell'in çoğaltılmasını gerektirir.


Bu işi yapabilir ... ama her Windows Sunucusuna SSH sunucusunu kurmalıyım. Bildiğim kadarıyla PowerShel, Açık Standart olan WS-Management kullanıyor ... Bu tür bir bağlantı yapan herhangi bir Linux istemcisi var mı?
Ederson,

2
Hayır efendim. Windows kutusundaki bir kabuğa sahip olduğunuzda (bunun diğer Windows kutuları ile aynı etki alanında olduğunu varsayarak) Powershell Remoting'i kullanabilirsiniz. Veya DSC, İstenilen Durum Konfig. Veya, yine de tek bir sunucuda çalışmayan AD veya MS Exchange gibi şeyler üzerinde çalışıyor olabilirsiniz, ancak mevcut olan herhangi bir DC veya CAS sunucusunu kullanarak dizine bağlanın.
mfinni

2
Once you have a shell on a Windows box you can use Powershell Remoting.- Neredeyse kesinlikle 2-hop kimlik doğrulama sorunuyla karşılaşacağınızı unutmayın. Neredeyse kesinlikle CredSSP kimlik doğrulaması kullanmanız gerekecek.
Zoredache

İlk iki yöntemden birini takip ederse bu sorunla karşılaşacak mı? Bence (sanırım) bu sorunu yaşamayacağınızı RDP kullanarak biliyorum.
mfinni

1
Sadece şunu söylemek gerekirse , Pash ( github.com/Pash-Project/Pash ) bir noktada potansiyel olarak bu yeteneğe sahip olabilir, ancak bu muhtemelen gelecekte oldukça uzak olacaktır. Hala şimdilik sadece PowerShell'in temellerini uygulamaya çalışıyorlar.
supercheetah


4

Evet, 2 seçeneğiniz var:

  1. SSHd sunucusunu pencerelere ve PowerShell için yapılandırma ayar yoluna kurabilirsiniz.

    Bunun için SSHd kurulumu ve PowerShell yolunun yapılandırılması için öğretici kullanabilirsiniz .

    Kısacası:

    1. FreeSSHd yükleyin
    2. Yeni kullanıcı hesabı ekle ve SSH erişimine izin ver
    3. Windows Güvenlik Duvarı'nda SSH portunu etkinleştir
    4. PowerShell.exe yolunu yapılandırma
  2. PowerShell Web Erişimi (Yalnızca Win Server 2012 R2)

    Orada Technet'te bir eğitim var - blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx


Bu işi yapabilir ... ama her Windows Sunucusuna SSH sunucusunu kurmalı ve yapılandırmalıyım. Bildiğim kadarıyla, PowerShell WS-Management kullanıyor, Açık Standart ... Bu tür bir bağlantı yapan herhangi bir Linux istemcisi var mı?
Ederson,

Bağlantıya sahip bir seçenek ekledim, eğer 2012 R2 yapabilirseniz bu size yardımcı olabilir. Ama yine de "yerleşik" ve müşteri ile değil. Tarayıcıdan erişiyorsun.
zorbon.cz

3

Ubuntu 14.04 LTS'de test edilmiştir.

Winexe'ı indirin ve kurun:

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

dpkg -i winexePTH1.1.0-1.deb

Temel kullanım

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

Örnek olarak:

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

2
Lütfen bu cevabı açıklamak için biraz daha detay ekleyin ...
Pierre.Vriens

2

Win32-openSSH'yi elle https://github.com/PowerShell/Win32-OpenSSH adresinden veya Chocolatey https://chocolatey.org adresinden veya daha hızlı bir şekilde Boxstarter (Chocolatey'i kullanan Chocolatey) aracılığıyla yükleyebilirsiniz https: // boxstarter.org (hızlı kurulum https://boxstarter.org/packages/nr/win32-openssh ).

Biraz kurulum gerektirir, ancak PowerShell'i yapan Microsoft adamları tarafından sağlanan bir yerel (evet, gerçek!) Win32 portudur.

Aksi halde, birisinin bahsettiği gibi, WinRM gemini Linux'a yükleyebilir ve WinRM protokolü üzerinden biraz bağlantı kurabilirsiniz, ancak bu sadece bir PSSession başlatmak kadar hoş değildir.

Ek olarak, WinRM geminin (WinRb) arkasındaki millet, WinSM üzerinden PowerShell'i tünelleyen, yüklemeler için daha işlevsel ve diğer işlemler için daha hızlı olacak daha doğal bir PowerShell etkileşimi uygulamaktadır. Bu blog gönderisine bakın, http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-len

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.