Powershell administration med CMDlets og .net integration
Forside > Artikler > WIndows PowerShell – Effektiv Administration
WIndows PowerShell – Effektiv Administration
Med PowerShell kan du administrere servere og klienter nemmere end nogensinde.PowerShell er et scriptbaseret sprog med tilhørende editor. PowerShell er tekstbaseret som DOS, men objektorienteret som C#.net og VB.net…
Det vil sige du kan tilgå alle objekter på en Microsoft server eller klient – og udføre kommandoer lige så hurtigt som DOS. Koderne skal ikke kompileres, deployes eller lignende.
PowerShell Kurser – kursusoversigt (nyt vindue)
PowerShell kan downloades gratis. Den følger dog med på de fleste “Bilka”-pc’ere. Man kan enten lave kommandoer i en DOS-lignende konsol eller i ISE-programmet, som også automatisk følger med.
ISE-programmet (Integrated Scripting Editor) er en egentlig editor, hvor man kan se objekter, lave projekter, udføre kode i et output-vindue samt debugge.
Prøv dette: Søg efter ‘powershell’ på din computer. Start konsollen. Skriv $Host og tryk enter. Du får nu at vide hvilken version af PowerShell, som du benytter.
PowerShell kommandoer kaldes CMDlets (udtales Command-lets). Skriver du get-process (ikke case-sensitiv), så får du en liste over alle processer, som kører på din computer.
Der findes mange CMDlets, og du (og diverse softwarehuse) har mulighed for at udvikle egne CMDlets. Derfor kan der i princippet være uendelig mængder af CMDlets. Alle navne på CMDlets er bygget på et Verb-Noun system.
Man kan importere CMDlets både dynamisk og igennem editoren. Man kan lave filer, som indeholder mange linjer kode. De gemmes i såkaldt ps2-format.
Prøv: skriv get-help *
Et alias er et andet ord for en CMDlet. F.eks. benytter man get-childitem CMDlet til at udskrive indhold på en drev. Man kan også skrive Dir (som kendes fra bl.a. DOS). ‘Dir’ er et alias.
Du kan lave dine egne aliases – enten dynamisk – eller så de virker på alle dine scripts. Du kan eksportere og impotere aliases og du kan benytte såkaldte Profiler til at gemme aliases. Alt sammen for at gøre din scriptkodning nemmere. PowerShell benytter allerede mange aliases.
Således findes der mange DOS og UNIX kommandoer, så en DOS-scripters argumentation mod PowerShell falder lidt til jorden.
CMDLets Options
Options er parametre man kan sætte efter en kommando. Der er mange af dem. Nogle eksempler kunne være:
-WhatIf – skriver på nogenlunde almindelig engelsk, hvad konsekvensen af kommandoen er – inden den udføres
-Confirm – her skal du bekræfte (yes/no) om du faktisk vil udføre koden.
-ErrorAction – mulighed for at styre evt. fejl
-OutVariable – mulighed for at eksportere fejl ud i variable for senere analyse
Metoder og Egenskaber findes ved piping
Prøv at skrive: get-process | get-member
Get-member vil skrive alle metoder og egenskaber på get-process. Den lodrette streg – kaldet pipe – betyder at resultatet af get-process overføres til get-members. Piping benyttes rigtig meget i PowerShell.
Et andet eksempel kan være get-process | convertToHTML | out-file “skrivher.html”, hvor der oprettes en html-fil – alternativt get-process | clip, der overfører resultatet til udklipsholderen/clipboard.
Her begynder magien. Med Windows PowerShell Providers kan man med samme lethed som almindelig PowerShell tilgå environment-variable, registreringsdatabase og andre fildrev (inkl. andre servere).
Det lyder voldsomt kompliceret, men du kan tilgå registreringsdatabasen, som var det variable og filer i det almindelige filsystem og så fremdeles.
Med PowerShell kan man tilgå Microsoft Object Model. F.eks. kan du styre en SharePoint farm fra PowerShell, oprette ny web applications, site collections, brugere og styre service applikationer.
Dette gøres ved direkte tilgang til objekter med tilhørende metoder og egenskaber. Man kan tilgå det samme som med C#.net,
Med PowerShell scripting kan man benytte variable (normalt implicit defineret), arrays, betingelser og løkker. Alt sammen kan returneres ud i variable og kastes videre i koden, som det kendes fra andre programmeringssprog.