2011-08-09 11 views
0

Exchange 2010リモートpowershellとC#を使用してPS1スクリプトを実行しようとしています。私は接続してps1スクリプトを実行できますが、Exchangeコマンドレットを使用して必要なユーザー情報を更新するスクリプトがいくつかあります。スクリプトが使用している1つのコマンドレットは、update-recipientです。このコマンドレットを実行しようとするまで、スクリプトは正常に実行され、次のようなエラーが表示されます。C# Exchange 2010 PS1 Script

「更新受信者」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。

C#のPS1スクリプト内でコマンドレットを実行することに制限がある場合は誰にも分かりますか?

おかげ

答えて

1

ため、このコードを試してみてください(中には、それがExchange 2010のために働く知っています)スクリプトをコマンドラインから実行するには、powershellスクリプトの先頭にExchangeコンポーネントをロードする必要があります。これらの2行を.ps1ファイルに追加します。 Exchangeサーバーの名前をEXCHANGESERVERの最初の行に置き換えます。

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://EXCHANGESERVER/PowerShell/ -Authentication Kerberos 

Import-PSSession $Session 
0

このサンプルコードを試してみてくださいExchange 2010のPowerShellを実行するためには

 PSCredential credential = new PSCredential(@"domain\user", createPassword("Pass")); 
     WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "exchange.ibm.com", 80, "/Powershell", "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential); 
     connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Default; 
     Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(connectionInfo); 

     try 
     { 
      runspace.Open(); 
      Pipeline pipeline = runspace.CreatePipeline(); 

      Command objCommand = new Command(""); 
      objCommand.Parameters.Add("Identity", @"dom\user"); 
      pipeline.Commands.Add(objCommand); 

      Collection<PSObject> results = pipeline.Invoke(); 
     } 
     catch 
     { 
     } 
     finally 
     { 
      runspace.Close();     
     } 
0

それともExchange 2007 from MSFT

 Runspace myRunspace = RunspaceFactory.CreateRunspace(); 
     myRunspace.Open(); 

     RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); 
     PSSnapInException snapInException = null; 
     PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException); 
     Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig); 
     myRunSpace.Open(rsConfig); 
関連する問題