LinuxターミナルからWindows Powershellを管理する


31

Windows Server 2012サーバーを管理しています。コマンドラインを介してこれらのサーバーを管理するPowerShellを学んでいます。私のワークステーションはUbuntuを実行しており、通常はSSH経由で接続することでLinuxサーバーを管理しています。

LinuxワークステーションからWindowsサーバーでWindows PowerShellをLinux上のSSHアクセスのようなコマンドライン経由で使用する方法はありますか?


デフォルトのシェルとしてpowershellを備えたWindows用のSSHサーバーを提供するサードパーティ製品があります。例:powershellserver.com
Zoredache

6
個人的には、WindowsをWindows(仮想)マシンから管理し、LinuxをLinuxマシンから管理することを好みます。これは、私の正気の残りを保存するのに役立つようです。
マイケルハンプトン

私はあなたが達成しようとしているものを手に入れましたが、1つのWindowsホストでpowershellコマンドを実行できる限り、そのPSセッションから他のホストを管理できませんでしたか?
アンディ14年

@アンディ-私のポイントは正確に。
mfinni 14年

Pashプロジェクト(github.com/Pash-Project/Pash)に興味を持っています。彼らはLinux上でPowerShellを再実装したいと考えています。私は今、私はリモートでshutdownコマンドを発行することができるかどうかを確認するためにラズベリーパイ・マシン上でコンパイルしようとしています
USR-ローカル-ΕΨΗΕΛΩΝ

回答:


15

いくつかのオプション:

  1. WindowsマシンにSSHサーバーをインストールし、SSHで、WindowsボックスでPowershellを実行します
  2. LinuxでRDPクライアントを実行し、RDPで、WindowsボックスでPowershellを実行
  3. Powershell Web Accessを使用し、ブラウザーでPOSH WAゲートウェイサーバーにアクセスし、ブラウザー経由でPowershellを実行します

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

Linux用のPOSH実行可能ファイルは知らないので、Linuxのシェルから直接POSHコマンドを実行することはできません-まず、RDP、リモートコンソール(DRAC、iLO)、SSH、またはPOSH Web Access。

/ Edit-にはいくつかのオプションがあるように見えます。 http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

あなたはOpenWSManにあなたがやりたいことを試してもらうことができますが、正しいPowershellコマンドを発行するだけでなく、URLリクエストのようなすべてのコマンドを作成する必要があると思います-私が言ったように、Linux用の実際のPowershellはありません。WinRB rub​​y​​ gemをすべてのWindowsマシンにインストールし、LinuxボックスでRubyコードを実行してPowershellコマンドを呼び出すことができます。

どちらの場合も、タブ補完、ヘルプなどのインタラクティブなPowershell体験が得られるようには見えません。これらはスクリプトや単一のコマンドを実行するためのもので、エラーやその他のフィードバックをキャプチャする必要があります自分で。Linuxで一流のソリューションを得ることはできません。

/再度編集-はい、MSDNは、これはい/不格好になる傾向があると言います。彼が提供するシンプルで効果的なソリューションでさえ、面白くないように見えます。

PowershellリモーティングはWS-Managementの上に構築されますが、これは実際にはプロトコル内のプロトコルであり、PSRP(Powershell Remoting Protocol)と直接相互運用するには、基本的にクライアントでPowershellを複製する必要があります。


これで仕事ができます...しかし、私はすべてのWindowsサーバーにSSHサーバーをインストールする必要があります。私の知る限り、PowerShelはオープンスタンダードであるWS-Managementを使用しています...この種の接続を行うLinuxクライアントはありますか?
Ederson

2
いいえ。Windowsボックスにシェルを作成したら(他のWindowsボックスと同じドメインにあると仮定して)、Powershell Remotingを使用できます。または、DSC、Desired State Configを使用できます。あるいは、ADやMS Exchangeなど、単一のサーバーでは動作しないが、利用可能なDCまたはCASサーバーを使用してディレクトリに接続するものに取り組んでいるかもしれません。
mfinni 14年

2
Once you have a shell on a Windows box you can use Powershell Remoting.-これにより、ほぼ確実に2ホップ認証の問題が発生することに注意してください。ほとんどの場合、CredSSP認証を使用する必要があります。
ゾレダチェ14年

最初の2つの方法のいずれかを追求する場合、彼はこの問題に遭遇しますか?私(と思う)RDPを使用してこの問題がないことを知っています。
mfinni 14年

1
ただ注意してください、Pashgithub.com/Pash-Project/Pash)は、ある時点でこの機能を潜在的に持っているかもしれませんが、それはかなり遠い将来になるでしょう。彼らは今のところ、PowerShellの基本を実装しようとしています。
スーパーチーター

6

Microsoftは、LinuxおよびOSXでPowershellを正式にリリースしています。2016年8月の発表をご覧ください。PowerShellはオープンソースであり、Linuxで利用可能です

現在はアルファ版です。UbuntuとCentosが正式にサポートされています。冒険好きなら、インストール手順はこちらから入手できます:https : //github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md


4

はい、2つのオプションがあります:

  1. SSHdサーバーをWindowsおよびPowerShellの設定パスにインストールできます。

    このため、SSHdのインストールおよび PowerShellパスの構成に関するチュートリアルを使用できます。

    要するに:

    1. freeSSHdをインストールする
    2. 新しいユーザーアカウントを追加し、SSHアクセスを許可します
    3. WindowsファイアウォールでSSHポートを有効にする
    4. PowerShell.exeへのパスを構成する
  2. PowerShell Web Access(Win Server 2012 R2のみ)

    Technetに1つのチュートリアルがあります-blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx


これで問題は解決しますが、すべてのWindowsサーバーにSSHサーバーをインストールして構成する必要があります。私の知る限り、PowerShellはオープンスタンダードであるWS-Managementを使用しています...この種の接続を行うLinuxクライアントはありますか?
エドソン14年

リンク付きのオプションを1つ追加しました。2012R2を使用できる場合、これが役立ちます。しかし、まだ「ビルトイン」ではなく、クライアントと一緒です。ブラウザでアクセスします。
zorbon.cz 14年

3

Ubuntu 14.04 LTSでテスト済み

winexeをダウンロードしてインストールします。

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
この答えを説明するために、いくつかの詳細を追加してください...
Pierre.Vriens

2

win32-openSSHは、https://github.com/PowerShell/Win32-OpenSSHから手動でインストールすることも、Chocolatey https://chocolatey.org経由でインストールすることも、Boxstarter(フードの下でChocolateyを利用する)https://でインストールすることもできます。 boxstarter.org(高速インストールhttps://boxstarter.org/packages/nr/win32-openssh)。

少しセットアップが必要ですが、PowerShellを実行しているMicrosoftのスタッフが管理しているネイティブ(そう、本当です!)win32ポートです。

そうでなければ、誰かが述べたように、WinRM gemをLinuxにインストールし、WinRMプロトコルを介して少しの接続を得ることができますが、それはPSSessionを開始するほど良くありません。

さらに、WinRM gem(WinRb)の背後にいる人々は、PowerShellをWinRM経由でトンネルする、よりネイティブなPowerShell相互作用の実装も検討しています。このブログ投稿、http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-lenを参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.