一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

PowerShell入門(十一):編寫腳本模塊

 nxhujiee 2016-03-23

  現(xiàn)在通過編寫模塊就可以在PowerShell命令行或者腳本中管理大型、分布式軟件系統(tǒng),就像Exchange Server和SharePoint Server正在做的那樣。你有這樣的需求嗎?

模塊、腳本模塊

  模塊是PowerShell V2中引入的概念,用以改進之前提出的“管理單元”。將管理單元也作為模塊(二進制模塊)處理之后,PowerShell中就包括兩種模塊——腳本模塊和二進制模塊。那么什么是模塊呢?模塊就是包含一些PowerShell命令、項的程序包,它以一個整體被分發(fā)共享和加載使用。

  腳本模塊是在PowerShell V2中與模塊一起提出的概念,它完全由PowerShell語法和環(huán)境編寫,不需要切換到其他編譯語言或者開發(fā)環(huán)境。腳本模塊是現(xiàn)在編寫PowerShell模塊時推薦的方法,要好好學哦。

編寫腳本模塊

  編寫腳本模塊包括確定模塊路徑、創(chuàng)建模塊文件夾、編寫模塊文件和編寫Manifest文件等幾個方面,都非常容易操作,具體內(nèi)容如下:

模塊安裝路徑

  理論上,模塊可以放在本機的任何位置,但是如果放在Env:\PSModulePath搜索范圍內(nèi),將會更加便于管理和使用。Env:\PSModulePath是與系統(tǒng)變量%Path%具有相同建模方式的變量,其變量值是由逗號分隔的路徑組成的字符串。雖然env:PSModulePath變量中有系統(tǒng)預(yù)定義的兩個目錄,但他們可能并未創(chuàng)建,需要在使用的時候創(chuàng)建。

  可以用以下命令獲得兩個路徑:

PS C:\Users\luke> $paths = (dir Env:\PSModulePath).Value.Split(";")
PS C:\Users\luke> $paths
C:\Users\luke\Documents\WindowsPowerShell\Modules
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\


檢查路徑是否已經(jīng)創(chuàng)建可以用如下命令:

PS C:\Users\luke> Test-Path -Path $paths[0]
False

以上返回False,則表示路徑未創(chuàng)建。創(chuàng)建路徑可使用文件瀏覽器、Cmd命令或者PowerShell命令。這里使用PowerShell命令如下:

New-Item -Path $paths[0] -ItemType directory  -Force

這樣放置模塊所需要的路徑就創(chuàng)建好了,可以進行下一步了。

模塊文件夾

  模塊文件夾是模塊的一個組成部分,要與模塊具有相同的名字。模塊所包含的模塊文件、描述文件以及其他可能用到的腳本文件都要放在這個文件夾中。例如本文需要創(chuàng)建模塊ModuleDemo1,可以使用上述的new-item命令或者切換到腳本路徑之后使用md命令,即md ModuleDemo1。

腳本模塊文件

  腳本模塊文件與一般的腳本文件內(nèi)容相似,只是后綴是.psm1而非.ps1,其文件名就是模塊的名字。不過,一般來說模塊中應(yīng)該只包含函數(shù)、別名、變量等的定義,不應(yīng)進行很多操作或者輸出。ModuleDemo1.psm1的簡單示例如下:

function Greet([String] name)
{
    "Hello $name"
}

模塊描述文件

  描述文件也稱為Manifest文件,擴展名是.psd1,它的文件名也要與模塊相同。它的內(nèi)容實際上是一個Hashtable;不同的是,這個Hashtable中鍵的名字是系統(tǒng)預(yù)先定義的。腳本模塊文件的作用主要是限制運行環(huán)境、設(shè)置依賴項和對腳本進行一些描述。

  創(chuàng)建和編輯模塊描述文件可以使用任何文本編輯器,但首次使用推薦使用命令進行。創(chuàng)建模塊描述文件的命令如下:

復(fù)制代碼
PS C:\Users\luke\Documents\WindowsPowerShell\Modules\ModuleDemo1> New-ModuleManifest -Path .\ModuleDemo1.psd1

cmdlet New-ModuleManifest at command pipeline position 1
Supply values for the following parameters:
NestedModules[0]:
Author: Luke Zhang
CompanyName: CaiJu
Copyright:
ModuleToProcess: ModuleDemo1
Description: Demo1
TypesToProcess[0]:
FormatsToProcess[0]:
RequiredAssemblies[0]:
FileList[0]:
復(fù)制代碼

這樣模塊描述文件就創(chuàng)建好了,詳細信息可以打開文件編輯。

使用腳本模塊

  腳本模塊編寫好以后就可以使用了,加載使用腳本模塊文件主要利用Get-Module命令和Import-Module命令。執(zhí)行如下命令就能顯示出我們剛剛編寫的模塊:

復(fù)制代碼
PS D:\> Get-Module -ListAvailable

ModuleType Name                      ExportedCommands
---------- ----                      ----------------
Manifest   ModuleDemo1               {}
Manifest   ADRMS                     {}
Manifest   AppLocker                 {}
Manifest   BestPractices             {}
Manifest   BitsTransfer              {}
Manifest   PSDiagnostics             {}
Manifest   ServerManager             {}
Manifest   TroubleshootingPack       {}
Manifest   WebAdministration         {}
復(fù)制代碼

然后導(dǎo)入我們剛剛編寫的模塊:

PS D:\> Import-Module -Name ModuleDemo1

導(dǎo)入之后,模塊中定義的Geet函數(shù)就可以使用了:

PS D:\> Greet "Luke"
Hello Luke

如果模塊中還定義了其他別名、變量等,也都可以使用。

結(jié)語

  模塊不但是大型軟件腳本化管理的高效解決方案,也是共享PowerShell命令的好辦法。它是PowerShell程序員為數(shù)不多的展示工作成果的方式之一,而且是其中最專業(yè)化的方式。所以,玩兒轉(zhuǎn)模塊,秀給所有人看。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩综合在线第一页| 在线日韩欧美国产自拍| 夫妻激情视频一区二区三区| 不卡一区二区在线视频| 日韩免费国产91在线| 国产不卡一区二区四区| 美国女大兵激情豪放视频播放| 美女被草的视频在线观看| 日韩中文字幕在线不卡一区| 国产一区二区久久综合| 国产欧美另类激情久久久| 九九热精品视频在线观看| 国产精品偷拍一区二区| 在线观看免费午夜福利| 日本妇女高清一区二区三区| 91亚洲熟女少妇在线观看| 国产精品欧美在线观看| 欧美加勒比一区二区三区| 久久精视频免费视频观看| 成人午夜爽爽爽免费视频| 午夜精品福利视频观看| 国产又粗又猛又大爽又黄| 内射精子视频欧美一区二区| 大香蕉再在线大香蕉再在线| 国产精品午夜一区二区三区| 欧美区一区二区在线观看| 91亚洲国产成人久久精品麻豆| 国产情侣激情在线对白| 国产二级一级内射视频播放| 好吊色免费在线观看视频| 好吊一区二区三区在线看| 日韩中文字幕视频在线高清版| 免费特黄一级一区二区三区| 精品人妻一区二区三区免费看 | 成人精品国产亚洲av久久| 国产亚洲二区精品美女久久 | 久久热麻豆国产精品视频| 91精品国产av一区二区| 精品视频一区二区三区不卡| 五月激情五月天综合网| 日韩欧美中文字幕人妻|