web-dev-qa-db-ja.com

Exchange Powershell-スクリプト内からExchange 2010モジュールを呼び出す方法

私はADとExchangeで多くのことを行うスクリプトを書いており、Exchangeの作業を開始する必要があるGUIの一部になりましたが、Exchangeモジュールを含めるために手動で指定できる場所がわかりません。私が精通している通常のプロセスはimport-module activedirectoryですが、import-module exchangeは機能しません。

Get-Module -ListAvailableを実行しました| [名前]を選択すると、Exchangeを示すものは何も表示されません。ただし、Exchange管理シェルISは、作業中のExchangeサーバーにロードされています。

Exchange 2010モジュールをスクリプトに含める方法を誰もが知っているので、Exchange固有のコマンドレットを内部で使用できますか? TIA ...

9
thepip3r

あなたはこれを行うことができます:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

そのほとんどが機能します(ただし、MSサポートは、RBACをバイパスするため、これを行うことはサポートされていないことを通知します)。

一部のコマンドレット(具体的にはUMmailboxの有効化/無効化)で、読み込まれたスナップインだけでは機能しない問題が見られました。

Exchange 2010では、基本的に、実際のEMSシェルの暗黙的なリモーティング環境以外でのPowershellの使用をサポートしていません。

18
mjolinor

これは古い質問であることはわかっていますが、明らかにサポートされていないスナップインを追加するのではなく、EMSショートカットプロパティを見て、これらのコマンドをコピーしました。

完全なショートカットターゲットは次のとおりです。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"

そのため、スクリプトの冒頭に以下を追加しましたが、期待どおりに機能しているように見えました。

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

ノート:

  • 64ビットPSで実行する必要があります
  • これは、管理ツールのみがインストールされたサーバーでテストされました。既存のExchangeインフラストラクチャに自動的に接続されました。
  • 広範なテストは行われていないため、この方法が実行可能かどうかはわかりません。問題が発生した場合は、この投稿を編集します。
16
Huon Imberger

import-module Microsoft.Exchange.Management.PowerShell.E2010aTry:

$exchangeser = "MTLServer01"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI http://${exchangeserver}/powershell/ -Authentication kerberos
import-PSSession $session 

または

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
2
Yan Gauthier