2014年7月13日 星期日

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

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

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

完整描述
Windows PowerShell providers 是NET programs ,使Windows PowerShell 可以簡單的view和manage在特殊data store的data。
Provider將data呈現在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來做action的code。也就是說如果使用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)可以connect到PowerShell Providers,很多Providers僅有一個PSDrive但是 FileSystem Provider(看戲董有多少個drives) 和 Registry Provider(有HKLM和 HKCU),可以經由Get-PSDrive指令來查看:





Note:

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


PowerShell Registry Provider
Registry Provider 允許連到兩個PSDrives:HKCU (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 Key,Set-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 2、powrshell script

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



2、在Powershell consol執行.ps1檔案



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





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





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

Set-Location HKLM:<enter>



也可以連到HKLM 的SOFTWARE Key,Set-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.

沒有留言:

張貼留言