麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PowerShell > 正文

PowerShell入門教程之訪問.Net程序集、COM和WMI實(shí)例

2020-03-26 19:13:51
字體:
供稿:網(wǎng)友

PowerShell可以設(shè)計(jì)的大而全,重新實(shí)現(xiàn)一切;也可以像現(xiàn)在一樣設(shè)計(jì)成膠水語言,利用現(xiàn)有的資源。特別是,與.Net、COM和WMI三大豪門的聯(lián)姻,使得PowerShell必將在Windows世界里大放光彩。

與新銳.Net聯(lián)姻

  在Windows的世界里,.Net代表著現(xiàn)在和將來,是新生力量。與.Net聯(lián)姻,就意味著榜上了粗腿,邁上了快車道。號(hào)稱基于.Net Framework,那么使用.Net的基類就易如反掌。基本步驟如下:1、添加類所在程序集;2、創(chuàng)建類的實(shí)例;3、調(diào)用實(shí)例的函數(shù)或者屬性。以StringBuilder類為例,代碼如下:

 

復(fù)制代碼 代碼如下:

Add-Type -AssemblyName mscorlib

 

$str = New-Object System.Text.StringBuilder

$str.Append("Hello")

$str.ToString()

 

其結(jié)果是輸出Hello字符串。

  其實(shí)最讓人開心的,是PowerShell能夠使用自定義的.Net類庫。這意味著我們的產(chǎn)品或者工具都能在PowerShell中繼續(xù)有效。基本步驟是:寫一個(gè)類庫,編譯成DLL,導(dǎo)入到PowerShell會(huì)話中,然后所定義的函數(shù)和屬性都可以使用了。示例如下:

首先寫好代碼,編譯成DLL,假設(shè)路徑是D:/PowerShellDemo/PowerShellDemo.dll。

 

復(fù)制代碼 代碼如下:

using System;

 

namespace PowerShellDemo
{
    public class PowerShellDemo
    {
        public void Greet()
        {
            Console.WriteLine("Hello!");
        }
    }
}

 

然后將其導(dǎo)入到PowerShell會(huì)話中,并使用其函數(shù)或者屬性。

 

復(fù)制代碼 代碼如下:

Add-Type –Path “D:/PowerShellDemo/PowerShellDemo.dll”

 

$obj = New-Object PowerShellDemo.PowerShellDemo

$obj.Greet()

 

以上調(diào)用的輸出是Hello字符串.

如此容易就能使用.Net的托管程序集,必然為它招徠一大票簇?fù)怼?/p>

與貴族COM為伍

COM就像沒落的貴族一樣,雖然過氣,但那個(gè)范兒還在。作為遺產(chǎn),它們還在放光發(fā)熱。PowerShell沒有嫌棄它,而是選擇與他們兼容。這也讓現(xiàn)在依舊戰(zhàn)斗在Native C++的程序員頗為欣慰。PowerShell對(duì)COM的訪問方式是通過其ProgID來進(jìn)行。示例如下:

復(fù)制代碼 代碼如下:

$ie = New-Object -ComObject InternetExplorer.Application

 

$ie.Visible = $true

$ie.Navigate(“www.bing.com”)

$ie.Quit()

 

以上這個(gè)示例演示了對(duì)IE的啟動(dòng)、顯示、導(dǎo)航和退出等操作,非常簡(jiǎn)便。與COM的良好關(guān)系,也讓PowerShell操作一些系統(tǒng)接口變得簡(jiǎn)單而其直接。這絕對(duì)是個(gè)加分的設(shè)計(jì)。

與實(shí)力派WMI結(jié)盟

  WMI是訪問本機(jī)和域內(nèi)標(biāo)準(zhǔn)資源的強(qiáng)大武器,接管了WMI的資源訪問,PowerShell也從此邁入豪門。它沒有做多余的工作,只是輕巧的通過幾個(gè)WMIObejct命令,就擁有了WMI的一整套訪問機(jī)制。對(duì)于域內(nèi)其他機(jī)器的訪問,甚至不用利用PowerShell的遠(yuǎn)程基礎(chǔ)結(jié)構(gòu)。訪問WMI的示例如下:

復(fù)制代碼 代碼如下:

Get-WmiObject -Namespace "root/cimv2" -Class Win32_Process

  這個(gè)命令的功能跟Get-Process一樣,獲取本機(jī)上正在運(yùn)行的進(jìn)程,只是它們得到的結(jié)果的形式有一點(diǎn)點(diǎn)小的區(qū)別。真正的區(qū)別在于當(dāng)從遠(yuǎn)程計(jì)算機(jī)上獲取進(jìn)程信息時(shí),Get-Process必須用Invoke-Command命令,在PowerShell遠(yuǎn)程基礎(chǔ)結(jié)構(gòu)下運(yùn)行,而Get-WmiObject命令只需加上-ComputerName參數(shù)即可。這份從容,是從WMI娘家?guī)淼摹?p>  

  擅用WMI,必將大大提高訪問本機(jī)和遠(yuǎn)程系統(tǒng)資源的效率。不管你信不信,反正我是信了!

結(jié)語

  不管是建立在.Net的基礎(chǔ)上,還是兼容COM,再或者是以WMI的方式訪問資源,PowerShell一心想成為多面膠,成為大眾而非小眾的朋友。作為IT人士的你,有沒有別粘(電)到?

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91精品福利视频 | 国产精品久久久久久久成人午夜 | 爱性久久久久久久 | 国产精品色综合 | wwwav国产| 国产午夜精品一区二区三区视频 | 一区二区精品视频在线观看 | 人人做人人看 | 宅男噜噜噜66国产在线观看 | 国产剧情v888av | 最新av在线播放 | 一级黄色免费电影 | 免费观看黄视频 | 国产精品免费一区二区 | 国产精品久久久久久一区二区三区 | 91在线视频网址 | 久久欧美亚洲另类专区91大神 | 亚洲成人高清在线观看 | 午夜精品久久久久久久99热浪潮 | av成人免费观看 | 国产精品久久久久久久hd | 国产一区视频在线免费观看 | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产精品国产三级国产在线观看 | 日韩黄色成人 | 久久久鲁 | 毛片大全在线观看 | 久久精品视频在线免费观看 | 噜噜在线视频 | 久久久久久亚洲综合影院红桃 | 久久99精品视频在线观看 | 国色天香综合网 | 国产美女视频一区二区三区 | 毛片免费在线 | 乱淫67194| 中国a级黄色片 | 91在线视频观看 | 一级毛片在线免费观看 | 精品国产一区二区三区成人影院 | 国产又粗又爽又深的免费视频 | 国产1区2 |