1

私のシナリオは次のようになります。

Java は、Exchange Powershell コマンド/スクリプトを別のユーザーとして実行する必要がある Powershell を開き、Java が開いた Powershell ウィンドウに出力を表示する必要があります (Java が出力を読み取れるようにするため)。そう:Normal Powershell --> Add Exchange functionality --> Execute Script/Command as different user

Exchange 機能を通常の Powershell に追加するには、次のいずれ add-pssnapin Microsoft.Exchange.Management.PowerShell.Adminかを使用するか、Powershell を次のように起動しますC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -command ". 'PathToScript/script1.ps1'"

問題は、別のユーザーとしての実行です。

  • runAs(またはPSEXECやminirunAsなどの他のツール)は、新しいウィンドウを開くため機能していないため、Javaによって開かれたPowerShellウィンドウに出力が表示されず(したがって、Javaで読み取ることができません)、自動化には適していません
  • Powershellでそれを行うために2つの異なる方法を試しました:

方法 1:

$username = 'domain\user'
$password = 'Pa$$w0rd'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Invoke-Command -Credential $cred -ComputerName localhost -FilePath PathToScript/script1.ps1

しかし、次のエラーが表示されます。

An Active Directory error 0x80072020 occurred while searching for domain controllers in domain MYDOMAIN: An operations error occurred.
+ CategoryInfo          : NotSpecified: (0:Int32) [Get-MailboxStatistics], ADTransientException

$username で指定されたユーザーを出力する単純なwhoami方法ですが、このリンクによると、これは Exchange コマンドでは不可能であるように見えます (ただし、ソースの信頼性はわかりません): http://thwack.solarwinds.com /スレッド/40524

方法 2 (ここで提案されているようにhttp://social.technet.microsoft.com/Forums/en-US/ITCG/thread/f805cbe0-bca9-401a-a381-a7f5520244d2 ):

$computerName = "localhost"
$username = 'domain\user'
$password = 'Pa$$w0rd'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://$computerName/powershell -Credential $cred
Import-PSSession $session

しかし、ここでの問題は、URIhttp://$computerName/powershellが存在しない (WinRM 502 例外が発生する) ことと、Exchange 2007 管理ツールだけがインストールされているサーバーで Powershell 仮想ディレクトリを取得する方法がわからないことです。

私の質問は次のとおりです。これを行う別の方法はありますか? 方法 1 と 2 で何が間違っていますか (方法 2 で Powershell VD を追加するにはどうすればよいですか)? それはまったく可能ですか?

Exchange 2007 管理ツールがインストールされた WinSrv2012 で Java (7 x64) を実行しています。Exchange Server はバージョン 2007 で実行されます。スクリプトはGet-MailboxStatistics -server ExSrv.

これは 1 週間近く私を悩ませているので、助けていただければ幸いです。

4

1 に答える 1

0

リモート Powershell コマンド/スクリプトの実行が Exchange 2007 ( http://howexchangeworks.com/2009/11/exchange-2007-sp2-supports-powershell.html ) でサポートされていないことがわかりました。なので、2013 へのアップグレードまで待つ必要があります。

いくつかの回避策: http://social.technet.microsoft.com/Forums/en-US/exchangesvrgeneral/thread/4596035a-cede-4541-8b8e-e2e9bf1b40dc

または: http://peerfect.blogspot.co.at/2012/10/re-blog-of-my-exchange-remote.html

于 2013-06-11T13:30:14.340 に答える