2013-10-16 34 views
1

我正在研究需要连接到lync可信任应用程序池并执行各种任务的程序。这是安装程序,我正在设置游泳池,应用程序,并基本上把我所有的鸭子都连成一排。Powershell错误地返回“无效参数”错误

我能够用下面的代码创建的应用程序池:

 var cmd = string.Format("new-csTrustedApplicationPool -Identity {0} -Registrar {1} -Site {2} -ComputerFqdn {3}", txtPoolIdentity.Text, registrar, site, localhost); 

     try 
     { 
      _ps.Commands.Clear(); 
      _ps.AddScript(cmd); 
      _ps.Invoke(); 

      if (_ps.Streams.Error.Any()) 
      { 
       foreach (var errorRecord in _ps.Streams.Error) 
       { 
        MessageBox.Show(errorRecord.ToString()); 
       } 
      } 
      else 
      { 
       MessageBox.Show(string.Format("Trusted Application Pool {0} created", txtPoolIdentity.Text)); 
      } 
     } 
     catch (Exception ex) 
     { 
      //Handling code 
     } 

正如我所说的,工作正常。但是,当我尝试执行下面的代码时,该过程失败,出现“无效参数”错误。

try 
     { 
      _ps.Commands.Clear(); 
      _ps.AddScript("enable-CSTopology"); 
      _ps.Invoke(); 
      if (_ps.Streams.Error.Any()) 
      { 
       foreach (var errorRecord in _ps.Streams.Error) 
       { 
        MessageBox.Show(errorRecord.ToString()); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      //handling code 
     } 

除了 “启用-CsTopology” 不带任何参数。我一直在搜索,但我没有得到任何牵引力。 任何帮助表示赞赏!

+0

异常的StackTrace属性是否指向代码中的行号? –

+0

Keith:不,这是Powershell.Streams.Error.Any捕获的powershell异常。 –

+0

在调用enable-cstopology命令之前,错误流已从其他任何事务中清除?如果是这样,请不要转换errorRecord ToString。打破这一点,并检查errorRecord对象以查看其中包含的其他信息。永远不知道,那里可能有用处。 –

回答

0

感觉非常愚蠢,我后来发现PS对象没有以提升的权限运行,导致拓扑更改失败。使用powershell命令找到here解决了我的问题。