2014年7月13日 星期日

PowerShell Provider的簡介和使用(新增和設定rigistry key)

PowerShell Providers .NET programs允許mount "data stores" drives來工作,簡單的存取PowerShell environment的外部資料,如如同file system 般的存取registry。這意味著能如同使用存取files folderscmdlets,可以參考以下的 table

簡短的敘述
Windows PowerShell providers提供簡單的command line來存取datacomponents不須另外的commanddata類似一個file system drive般的呈現。

完整描述
Windows PowerShell providers NET programs ,使Windows PowerShell 可以簡單的viewmanage在特殊data storedata
Providerdata呈現在drive,如同一個hard drive,可以使用provider支援的built-in cmdlets來管理資料,另外也可特別針對一些data來製作custom cmdlets
Providers 也可以搭配 "dynamic parameters"來使用 built-in cmdlets,當cmdlet被使用來存取provider data
Provider 也被稱為 "snap-in" ,如同PowerShell dynamic link library (.dll) library當執行command時,指示PowerShell來做actioncode。也就是說如果使用VBScript 來讀取registry,不需要再寫code 可以寫新的和 Custom Providers,請參考 The PowerShell Software Developers Kit provides documents should you wish to build your own Providers.

列出PowerShell Providers
使用 "Get-PSProvider" cmdlet




PowerShell Drive "PSDrive"
經由mounting 這個Providers PowerShell Drive(PSDrive)可以connectPowerShell Providers,很多Providers僅有一個PSDrive但是 FileSystem Provider(看戲董有多少個drives) Registry Provider(HKLM HKCU),可以經由Get-PSDrive指令來查看:





Note

"Name"欄位是每一個Provider的名稱,可以經由PSDrives外加colon (:)connect每一個Provider


PowerShell Registry Provider
Registry Provider 允許連到兩個PSDrivesHKCU (HKEY_CURRENT_USER)HKLM (HKEY_LOCAL_MACHINE),使用Registry Provider可以做以下的事項;
·         Navigate the registry.
·         Search the registry.
·         Create new registry keys.
·         Delete registry keys.
·         Add new values.
·         Modify existing values.
·         Manage ACLs (Access Control Lists).

Example 連到HKLM PSDrive新增和設定rigistry key
Mthod 1、使用powrshell console
1、使用Get-PSDrive確認該PSDrives是否為available



2使用"Set-Location" cmdlet來連到HKLM SOFTWARE KeySet-Location HKLM:\Software<enter>



3、使用New-Item新增和設定rigistry key
New-Item -Name MyKey -Value "MyValue"<enter>




4使用Get-ChildItem確認新增rigistry key

Get-ChildItem M*





5使用Get-ItemProperty來確認設定rigistry key value

Get-ItemProperty -Path .\MyKEY<enter>
Get-ItemProperty -Path "HKLM:\SOFTWARE\MyKEY<enter>




·         Mthod 2powrshell script

以下是PowerShell scriptsample
1、將寫好的script存成.ps1檔案。



2、在Powershell consol執行.ps1檔案



新增的registry key和寫入該keydefault value,結果如下:





Example 連到HKLM PSDrive和條列出Registry Keys
1、 使用Get-PSDrive確認該PSDrives是否為available





2、使用"Set-Location" cmdlet來連到HKLM PSProvider

Set-Location HKLM:<enter>



也可以連到HKLM SOFTWARE KeySet-Location HKLM:\Software<enter>




3、使用Get-ChildItem列出Software keys的所有可用的key






Note
所有PowerShell Providers可以使用以下相同的來連結和操作。


Cmdlet
Alias
Cmd Commands
Descritption
Get-Location
gl
pwd
Current Directory.
Set-Location
sl
cd, chdir
Change current directory.
Copy-Item
cpi
copy
Copy Files.
Remove-Item
ri
del
Removes a File or directory.
Move-Item
mi
move
Move a file.
Rename-Item
rni
rn
Rename a file.
New-Item
ni
n/a
Creates a new empty file or folder.
Clear-Item
cli
n/a
Clears the contents of a file.
Set-Item
si
n/a
Set the contents of a file.
Mkdir
n/a
md
Creates a new directory.
Get-Content
gc
type
Sends contents of a file to the output stream.
Set-Content
sc
n/a
Set the contents of a file.

沒有留言:

張貼留言