2017-02-20 12 views
0

私は自動的にメールボックスサーバーを見つけてそれに接続するpowershellスクリプトを書き留めようとしています(URI https://mailboxserver/powershellを使用しています)。メールボックスサーバーを見つける

問題特定のExchange組織のメールボックスサーバーを自動的に検出する方法が見つかりませんでした。 CASサーバーを見つける方法を見つけました。なぜなら、誰かがこの見通しを手動で見つける方法を投稿したからです。

私はADをクエリしようとしましたが、メールボックスサーバーを交換するためにどの属性が一意であるかわかりません。

また、DNSレコードを試しましたが、役に立たないものは見つかりませんでした。

ADかGCから照会できるメールボックスサーバーのユニークな価値について誰かが知っていますか?またはDNSレコードまたは私が考えていない他の何か?

Exchange 2010 必要に応じてフォレストとドメインの機能レベルを投稿できますが、途中です。事前

+0

倍数があるときにどのメールボックスサーバーに接続するかをどのように決定しますか? CASの以前の知識を持っていることは、あなたがしようとしていることに違反していますか? – Matt

+0

それは本当に問題ではありません。私がリストを手に入れたら、最初のものを試してみましょう –

答えて

1

メールボックスサーバー名を解析する必要がありますが、ADユーザー属性にはこの情報が含まれています。あなたはADコマンドレットへのアクセス権を持っている場合

  • のhomeMTA
  • のmsExchHomeServerName

つまり、あなたのメールボックスサーバーこの方法を取得することができるかもしれません。

$adUser = get-aduser someuser -Properties msExchHomeServerName 
$mailboxServerName = ($aduser.msExchHomeServerName -split "cn=")[-1] 

これらの属性は、現在のメールボックスがホストされていることを確認するのに役立ちます。私のケースのメールボックスサーバーはmsExchHomeServerNameの最後の「アイテム」でしたので、「cn =」に文字列を分割し、その配列の最後の要素がメールボックスサーバー名になります。

次に、これを使用してExchangeセッションに接続できます。

$Credentials = Get-Credential 
$exchangePath = "http://$mailboxServerName/PowerShell/?SerializationLevel=Full" 
$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri $exchangePath -Credential $Credentials –Authentication Kerberos 
Import-PSSession $ExSession 
+0

それはうまくいきました、ありがとう –

0

おかげで以下のコードは、あなたが必要なものを取得していますか?それはEWSを使用します - 私のSO postを参照してくださいEWSの詳細については。

# load the assembly 
[void][Reflection.Assembly]::LoadFile("D:\Temp\Microsoft.Exchange.WebServices.2.2\lib\40\Microsoft.Exchange.WebServices.dll") 

# set ref to exchange - may need to change the version 
$s = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2) 

# replace with your email address 
$email = "[email protected]" 

# grab your own credentials 
$s.UseDefaultCredentials = $true 

# discover the url from your email address 
$s.AutodiscoverUrl($email) 
$s.Url.AbsoluteUri 
+0

まず、あなたの返事をありがとう。私は閉じたネットワークにいるので、インストールを移すことは少し問題です。 –

+1

このメソッドを呼び出すと、Autodiscoverエンドポイントが返されます。これは、通常はメールボックスサーバー自体ではないマルチサーバー交換環境です(多くの場合、これがCASです)。 – bluuf

+0

ああ、よく。私が言ったように、CASを発見する方法を見つけました。はい、メールボックスが同じサーバーにありません。 –