web-dev-qa-db-ja.com

PowerShell 2010 Remoting w / Exchange 2010:値をnullにすることはできません

リモートPowerShellセッションを介してExchange 2010コマンドレットを実行するのに問題があります。

ローカルPowerShellセッションを管理者として開始し、次のコマンドを発行します-

PS C:\Windows\system32> $mailcred = Get-Credential
PS C:\Windows\system32> $mailSession = New-PSSession -ComputerName MAILSRV -Credential $mailcred
PS C:\Windows\system32> Enter-PSSession $mailSession
[MAILSRV]: PS C:\Users\jdoe\Documents> Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
[MAILSRV]: PS C:\Users\jdoe\Documents> hostname
MAILSRV
[MAILSRV]: PS C:\Users\jdoe\Documents> Get-ExchangeServer
Value cannot be null.    
Parameter name: serverSettings
    + CategoryInfo          : 
    + FullyQualifiedErrorId : System.ArgumentNullException,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeServer

[MAILSRV]: PS C:\Users\jdoe\Documents> get-mailbox
Value cannot be null.    
Parameter name: serverSettings
    + CategoryInfo          : 
    + FullyQualifiedErrorId : System.ArgumentNullException,Microsoft.Exchange.Management.RecipientTasks.GetMailbox

ご覧のとおり、Exchangeコマンドレットはどれも機能していません。問題は何でしょうか?

8
pk.

Exchange Serverのデフォルトのリモートエンドポイントに接続し、そこからpsスナップインを追加しようとしています。これは間違っています。最初の3行をこれに置き換えます。

$mailcred = Get-Credential
$mailSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://MAILSRV/PowerShell/ -Credential $mailcred
Import-PsSession $mailSession

セッションを入力する必要はありません。代わりにローカルセッションにインポートしてください。これ以降、Exchange固有のCmdLetsをローカルで使用できます。また、Exchange .Netタイプの一部はExchange管理コンソールとともにインストールされるため、メールボックスサイズを使用する場合は、これをローカルコンピューターにインストールする必要があります(Exchangeはサイズオブジェクトに独自のタイプを使用します)。

2
Trondh

このようにするには、import-pssesionを使用し、connectionURIとConfigurationNameを指定します。

PS U:\> $cred = Get-Credential
PS U:\> $session = New-PSSession -ConnectionUri http://Exchange01/powershell -ConfigurationName Microsoft.Exchange -Credential $cred
PS U:\> Import-PSSession $session
PS U:\> Get-Mailbox marius.davidsen

Name                      Alias                ServerName       ProhibitSendQuota                                                                                        
----                      -----                ----------       -----------------                                                                                        
Marius Davidsen           Marius.Davidsen      Exchange01       unlimited             

これには、ファイアウォールでTCPポート80を許可する必要があります。

そのセッションを使用して、希望どおりに入力することもできます。

PS U:\> Enter-PSSession $session
[Exchange01]: PS> get-mailbox
[Exchange01]: PS> get-mailbox marius.davidsen

Name                      Alias                ServerName       ProhibitSendQuota                                                                                        
----                      -----                ----------       -----------------                                                                                        
Marius Davidsen           Marius.Davidsen      Exchange01       unlimited         
1
mdavidsen

かつて同じ問題がありました。私は解決策はこれだと思います:

$s=new-pssession -computername xxxxx
import-pssession -session $s

次に、スナップインを追加して、コマンドを実行します

ソース: http://forums.veeam.com/viewtopic.php?f=2&t=7514

0
northben

問題は、両方のマシンが同じドメインにある必要があることです。

また、ローカルアカウントではなく、ドメインアカウントを使用していることを確認してください。

0
Vanuan

Exchange管理ツールをDVDからインストールして、ワークステーションを構成しましたか?

0

通常のExchangeインストールの一部であるリモートエンドポイントの使用をお勧めします。詳細はこちら こちら

EX 2010とEX 2013の両方で正常に使用しました。サポートされている方法であり、RBACルールに従っているため、Exchangeスナップピンを「通常の」リモートエンドポイントに追加するのではなく、使用することをお勧めします。

0
BartekB