2013-10-16 53 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解決了我的問題。