लिनक्स टर्मिनल से विंडोज पॉवर्स को प्रबंधित करना


31

मैं विंडोज सर्वर 2012 सर्वर का प्रबंधन करता हूं। मैं कमांड लाइन के माध्यम से इन सर्वरों को प्रबंधित करने के लिए PowerShell सीख रहा हूं। मेरा कार्य केंद्र उबंटू चलाता है और मैं आमतौर पर एसएसएच के माध्यम से कनेक्ट करके लिनक्स सर्वर का प्रबंधन करता हूं।

वहाँ एक तरीका है कि मैं अपने लिनक्स वर्कस्टेशन से विंडोज सर्वर पर विंडोज पॉवरशेल का उपयोग कमांड लाइन के माध्यम से कर सकता हूं जैसे कि लिनक्स पर एसएसएच एक्सेस?


3 पार्टी उत्पाद हैं जो डिफ़ॉल्ट शेल के रूप में विंडोज के लिए एसएसएच सर्वर प्रदान करते हैं। जैसे powershellserver.com
Zoredache

6
व्यक्तिगत रूप से मैं विंडोज (वर्चुअल) मशीन से विंडोज का प्रबंधन करना चाहता हूं, और लिनक्स मशीन से लिनक्स। ऐसा लगता है कि मेरी पवित्रता के बारे में क्या बचा है।
माइकल हैम्पटन

मुझे वह मिलता है जो आप प्राप्त करने की कोशिश कर रहे हैं, लेकिन जब तक आप एक पीएस सत्र से दूसरों को प्रबंधित नहीं कर सकते हैं, तो एक विंडोज़ होस्ट पर पावरशेल कमांड चला सकते हैं?
एंडी

@ और - मेरी बात बिल्कुल।
mfinni

मुझे पश प्रोजेक्ट ( github.com/Pash-Project/Pash ) में दिलचस्पी है । वे लिनक्स पर PowerShell को फिर से लागू करना चाहते हैं। अब मैं एक रास्पबेरी पाई मशीन पर संकलन करने की कोशिश कर रहा हूं, यह देखने के लिए कि क्या मैं दूर से एक कमांड को बंद कर सकता हूं
usr-local--

जवाबों:


15

कुछ विकल्प:

  1. Windows मशीन पर SSH सर्वर स्थापित करें, SSH में, Windows बॉक्स पर Powershell चलाएँ
  2. लिनक्स पर RDP क्लाइंट चलाएँ, RDP में, Windows बॉक्स पर पॉवर्सशेल चलाएँ
  3. पॉवरशेल वेब एक्सेस का उपयोग करें, एक ब्राउज़र के साथ पॉश WA गेटवे सर्वर को हिट करें, पॉवर्सशेल को ब्राउज़र के माध्यम से चलाएं

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

मुझे लिनक्स के लिए किसी भी POSH निष्पादक के बारे में पता नहीं है, इसलिए आप लिनक्स में एक शेल से सीधे POSH कमांड नहीं चला सकते हैं - आपको पहले RDP, रिमोट कंसोल (DRAC, iLO), SSH, जैसे किसी तरह विंडोज मशीन में प्रवेश करना होगा। या POSH वेब एक्सेस।

/ संपादित करें- ऐसा लगता है कि कुछ विकल्प हैं। http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

आप कोशिश कर सकते हैं और OpenWSMan प्राप्त कर सकते हैं कि आप क्या चाहते हैं, लेकिन मुझे लगता है कि आपको हर आदेश को सही Powershell कमांड जारी करने के बजाय URL अनुरोध की तरह तैयार करना होगा - जैसा कि मैंने कहा, लिनक्स के लिए कोई वास्तविक Powershell नहीं है। आप प्रत्येक Windows मशीन पर WinRB रूबी मणि स्थापित कर सकते हैं और फिर Powershell कमांड को कॉल करने के लिए अपने लिनक्स बॉक्स पर रूबी कोड चला सकते हैं।

न तो मामले में ऐसा लगता है कि आपको इंटरैक्टिव पॉवर्सशेल का अनुभव प्राप्त होगा, जैसे टैब-पूरा करना, मदद करना, आदि ये स्क्रिप्ट या एकल कमांड चलाने के लिए प्रतीत होते हैं, और आपको संभवतः किसी भी त्रुटि या अन्य प्रतिक्रिया पर कब्जा करना होगा स्वयं के बल पर। आप लिनक्स पर प्रथम श्रेणी का समाधान प्राप्त नहीं करने जा रहे हैं।

/ फिर से संपादित करें - हाँ, MSDN का कहना है कि यह बदसूरत / भद्दा हो जाएगा। यहां तक ​​कि वह जो सरल / प्रभावी उपाय देता है, वह बिना किसी मज़े के दिखता है।

हालाँकि Powershell remoting को WS-Management के शीर्ष पर बनाया गया है, लेकिन यह वास्तव में एक प्रोटोकॉल के भीतर एक प्रोटोकॉल है और PSRP (Powershell Remoting Protocol) के साथ इंटरोप करने की कोशिश कर रहा है, जिसे अनिवार्य रूप से क्लाइंट पर Powershell की प्रतिकृति की आवश्यकता होगी।


यह काम कर सकता है ... लेकिन मुझे हर विंडोज सर्वर पर एसएसएच सर्वर स्थापित करना होगा। जहां तक ​​मुझे पता है, पावरशेल WS- मैनेजमेंट, एक ओपन स्टैंडर्ड का उपयोग करता है ... कोई लिनक्स क्लाइंट है जो इस तरह का कनेक्शन बनाता है?
एडर्सन

2
नहीं साहब। एक बार जब आपके पास एक विंडोज़ बॉक्स पर एक शेल होता है (यह मानते हुए कि यह अन्य डोमेन के समान डोमेन में है) तो आप पॉवर्सशेल रिमोटिंग का उपयोग कर सकते हैं। या आप डीएससी, वांछित राज्य विन्यास का उपयोग कर सकते हैं। या आप AD या MS Exchange जैसी चीजों पर काम कर रहे होंगे जो वैसे भी एक सर्वर पर काम नहीं करते हैं, लेकिन जो भी डीसी या कैस सर्वर उपलब्ध है उसका उपयोग करके निर्देशिका से कनेक्ट करें।
mfinni

2
Once you have a shell on a Windows box you can use Powershell Remoting.- इस बात से अवगत रहें कि आप लगभग निश्चित रूप से इसके साथ 2-हॉप प्रमाणीकरण समस्या में चलेंगे। आपको लगभग निश्चित रूप से CredSSP प्रमाणीकरण का उपयोग करने की आवश्यकता होगी।
Zoredache

यदि वह पहले दो तरीकों में से किसी एक का पीछा करते हुए इस मुद्दे पर चलेगा? मुझे (मुझे लगता है) पता है कि आपको RDP का उपयोग करने में यह समस्या नहीं है।
mfinni

1
बस ध्यान दें, पश ( github.com/Pash-Project/Pash ) संभावित रूप से कुछ बिंदु पर यह क्षमता हो सकती है, लेकिन यह भविष्य में बहुत दूर होगी। वे अभी भी अभी के लिए लागू PowerShell की मूल बातें प्राप्त करने की कोशिश कर रहे हैं।
सुपरचेता

6

Microsoft आधिकारिक तौर पर लिनक्स और OSX पर पॉवर्स को जारी कर रहा है। अगस्त 2016 की घोषणा देखें: PowerShell खुला है और लिनक्स पर उपलब्ध है

यह वर्तमान में अल्फा में है। उबंटू और सेंटोस आधिकारिक तौर पर समर्थित हैं, रास्ते में और भी। यदि आप साहसी हैं, तो स्थापना निर्देश यहां उपलब्ध हैं: https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md


4

हां, आपके पास 2 विकल्प हैं:

  1. आप विंडोज़ पर SSHd सर्वर स्थापित कर सकते हैं और कॉन्फ़िगरेशन में PowerShell का पथ सेट कर सकते हैं।

    इसके लिए आप SSHd और कॉन्फ़िगरेशन PowerShell पथ की स्थापना के लिए ट्यूटोरियल का उपयोग कर सकते हैं ।

    संक्षेप में:

    1. फ्रीएसएसएचडी स्थापित करें
    2. नया उपयोगकर्ता खाता जोड़ें और SSH को अनुमति दें
    3. Windows फ़ायरवॉल में SSH पोर्ट को सक्षम करें
    4. PowerShell.exe के लिए पथ कॉन्फ़िगर करें
  2. PowerShell वेब एक्सेस (केवल विन सर्वर 2012 R2)

    वहाँ आपके पास Technet पर एक ट्यूटोरियल है - blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx


यह काम कर सकता है ... लेकिन मुझे हर विंडोज सर्वर पर एसएसएच सर्वर को स्थापित और कॉन्फ़िगर करना होगा। जहाँ तक मुझे पता है, PowerShell WS-Management, एक खुला मानक का उपयोग करता है ... कोई लिनक्स क्लाइंट है जो इस तरह का कनेक्शन बनाता है?
ईडरसन

मैंने लिंक के साथ एक विकल्प जोड़ा, अगर आप 2012 R2 कर सकते हैं तो यह आपकी मदद कर सकता है। लेकिन अभी भी "अंतर्निहित" और क्लाइंट के साथ नहीं है। आप इसे ब्राउज़र पर एक्सेस करते हैं।
zorbon.cz

3

Ubuntu 14.04 LTS में परीक्षण किया गया

वाइनएक्स को डाउनलोड और इंस्टॉल करें:

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

dpkg -i winexePTH1.1.0-1.deb

मूल उपयोग

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

उदहारण के लिए:

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

2
कृपया इस उत्तर को समझाने के लिए कुछ और विवरण जोड़ें ...
पियरे.वीयरेंस

2

आप win32-openSSH को हाथ से https://github.com/PowerShell/Win32-OpenSSH पर या चॉकलेटी https://choubley.org के माध्यम से या यहां तक ​​कि बॉक्सस्टार्टर के माध्यम से तेजी से स्थापित कर सकते हैं (जो हुडी के तहत चॉकलेट का उपयोग करता है) : https: // boxstarter.org (तेजी से स्थापित https://boxstarter.org/packages/nr/win32-openssh )।

यह थोड़ा सेटअप लेता है, लेकिन यह एक देशी है (हाँ, असली के लिए!) Win32 पोर्ट को Microsoft लोगों ने PowerShell कर रखा है।

अन्यथा जैसा कि किसी ने उल्लेख किया है कि आप लिनक्स पर WinRM रत्न स्थापित कर सकते हैं और WinRM प्रोटोकॉल पर थोड़ी सी कनेक्टिविटी प्राप्त कर सकते हैं, लेकिन यह सिर्फ PSSession शुरू करने के रूप में अच्छा नहीं है।

इसके अतिरिक्त WinRM मणि (WinRb) के पीछे के लोग भी अधिक देशी PowerShell इंटरैक्शन को लागू करते हुए देख रहे हैं जो WinRM पर PowerShell को अपलोड करता है जो अपलोड के लिए अधिक कार्यात्मक होगा और साथ ही अन्य कार्यों के लिए तेज़ होगा। इस ब्लॉग पोस्ट को देखें, http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-len

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.