PS F:\/> Get-PSProvider
Name Drives
---- ------
Alias {Alias}
Environment {Env}
FileSystem {C, E, F, D...}
Function {Function}
Registry {HKLM, HKCU}
Variable {Variable}
Certificate {cert}
Som t.ex. Registry innehåller ju då naturligtvis registret, och man kan då komma åt registret med samma kommando som man är van att använda på filsystemet. Dir för att visa innehållet, cd för att navigera i strukturen mm. Dir t.ex. är ett alias för cmdlet:en Get-ChildItem och cd är ett alias för Set-Location.
Jag skapade MyProvider som ärvde av NavigationCmdletProvider, överlagrade följande funktioner:
- InitializeDefaultDrives
- NormalizeRelativePath
- GetChildItems
- IsItemContainer
- GetItem
Kunde navigera bland applikationens objekt med cd och titta på dem med dir. Jag kan tilldela ett av applikationens objekt till en PowerShell-variabel och komma åt värden på t.ex. Properties.
Jag läste sedan om PowerGadgets, en samling datavisualiseringskomponenter, som visarinstrument, diagram o.dyl. och plötsligt kunde jag enkelt visa egenskaper i mitt program med standardkomponenter. Dessutom kan jag naturligtvis skriva skript som interagerar med mitt program.
Jag gjorde följande:
cd MyProvider:
$s = Get-Item "Server 1/System/Time/Second"
$s.Attributes[3].ClrValue | Out-Gauge
Out-Gauge är en cmdlet i PowerGadgets som nu visade värdet av en property i objektet Second. Det fjärde attributet (Attributes[3]) som råkar vara aktuell sekund uvarande minut.
Där finns mer att göra, implementera kopiering, radering, skapa nya objekt. Men inte heller det verkar vara mycket jobb. Mer om hur man skapar interface mot PowerShell
En intressant artikel om datadrivna tester med Excel och PowerShell
Inga kommentarer:
Skicka en kommentar