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.
|
沒有留言:
張貼留言