web-dev-qa-db-ja.com

LinuxターミナルからのWindows Powershellの管理

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

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

31
Ederson

いくつかのオプション:

  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などの何らかの方法でWindowsマシンにアクセスする必要があります。またはPOSH Web Access。

/編集-いくつかのオプションがあるようです。 http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

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

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

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

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

15
mfinni

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

現在アルファ版です。 UbuntuとCentosは正式にサポートされており、さらにサポートが進んでいます。冒険したい場合は、ここにインストール手順があります: https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md

6
Samuel Jaeschke

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

  1. SSHdサーバーは、WindowsとPowerShellへの構成設定パスにインストールできます。

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

    要するに:

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

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

4
zorbon.cz

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
3
eishv

https://github.com/PowerShell/Win32-OpenSSH から、またはChocolatey https://chocolatey.org から手動でwin32-openSSHをインストールすることもできます。 Boxstarterを介して(内部でChocolateyを使用) https://boxstarter.org (fast install https://boxstarter.org/packages/nr/win32-openssh ) 。

少し設定が必要ですが、PowerShellを実行しているMicrosoftの担当者が保守するネイティブ(実際には!)のwin32ポートです。

それ以外の場合は、誰かが言及したように、WinRM gemをLinuxにインストールして、WinRMプロトコルを介して少し接続することができますが、それは、PSSessionを開始するだけの場合ほどではありません。

さらに、WinRM gem(WinRb)の背後にいる人々は、WinRMを介してPowerShellをトンネリングする、よりネイティブなPowerShell相互作用の実装も検討しています。これにより、アップロードがより機能的になり、他の操作もより高速になります。このブログ投稿を参照してください http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-Ruby-cross-plaform-len =

2
dragon788