日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)C#.NET → 用C# 調(diào)用PowerShell 3.0并且取得返回值

      用C# 調(diào)用PowerShell 3.0并且取得返回值

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2012/12/17 15:18:11字體大。A-A+

      作者:西西點(diǎn)擊:0次評論:0次標(biāo)簽: PowerShell

      • 類型:文件處理大。11.3M語言:英文 評分:5.0
      • 標(biāo)簽:
      立即下載

      最近,隨著System Center Virtual Machine Management 2012 SP1 的發(fā)布,越來越多的人,加入到私有云的開發(fā)中來,特別是,開發(fā)測試云,但國內(nèi)的技術(shù)文檔及資料相當(dāng)匱乏。前幾天,一個外地的同事在問 “怎么用C# 調(diào)用PowerShell并且取得返回值”的問題。

      解決方案如下:

      調(diào)用系統(tǒng)的PowerShell,可以用: 

      /// 
              /// invoke system powershell
              /// 
              /// 
              public static void InvokeSystemPS(string cmd)
              {
                  List ps = new List();
                  ps.Add("Set-ExecutionPolicy RemoteSigned");
                  ps.Add("Set-ExecutionPolicy -ExecutionPolicy Unrestricted");
                  ps.Add("& " + cmd);
                  Runspace runspace = RunspaceFactory.CreateRunspace();
                  runspace.Open();
                  Pipeline pipeline = runspace.CreatePipeline();
                  foreach (var scr in ps)
                  {
                      pipeline.Commands.AddScript(scr);
                  }
                  pipeline.Invoke();//Execute the ps script
                  runspace.Close();
              }

      2.調(diào)用VMM產(chǎn)品,這里以“Get-VM -Name vm001” 為例:

       /// 
              /// Invoke VMM Poershell
              /// 
              public static void InvokeVMMPS()
              {
                  RunspaceConfiguration rconfig = RunspaceConfiguration.Create();
                  PSSnapInException Pwarn = new PSSnapInException(); 
                
                  Runspace runspace = RunspaceFactory.CreateRunspace(); 
                  string test = "Import-Module VirtualMachineManager\r\n";
                  runspace = RunspaceFactory.CreateRunspace(rconfig); runspace.Open();
                  Pipeline pipeline = runspace.CreatePipeline(); 
                  pipeline.Commands.AddScript(test); 
                  try { 
                      var results = pipeline.Invoke();
      
                      using (Pipeline pipe = runspace.CreatePipeline())
                      {
                          //Get-VM -Name vm001
                          Command cmd = new Command("Get-VM");
                          cmd.Parameters.Add("Name", "vm001");
                          pipe.Commands.Add(cmd);
                          var result = pipe.Invoke();
                      }
                  }
                  catch (Exception ex) 
                  {
                      throw ex;
                  }
              }

      Firstly,  you need to add reference "System.Management.Automation".  Then, add two name space:

      using System.Management.Automation.Runspaces;

      using System.Management.Automation;

      Powershell 3.0作為Windows Management Framework 3.0的一部分,集中體現(xiàn)了Powershell 3.0的新特性:Powershell工作流、增強(qiáng)會話災(zāi)難恢復(fù)、語法簡潔方便、增強(qiáng)了cmdlet的查找和自動導(dǎo)入模塊的功能、提供了對webservice強(qiáng)大支持和ISE命令加載項(xiàng)等。
      Powershell需要用到.NET框架和cmdlets命令集。作為PowerShell的用戶,可以使用系統(tǒng)自帶的cmdlets,也可以自定義cmdlets,擴(kuò)展實(shí)現(xiàn)更強(qiáng)大的功能。而且,PowerShell使用了面向?qū)ο蠓椒,基?Net,這是VBScript所不能提供或者支持的。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)