Geek School Lär dig hur du förlänger PowerShell
PowerShell erbjuder två sätt att förlänga skalet. Du kan antingen använda snapins, som endast är binära och utvecklas i ett fullfjädrad programmeringsspråk som C #, eller du kan använda moduler, som kan vara binära såväl som manusbaserade.
Var noga med att läsa de föregående artiklarna i serien:
- Lär dig hur du automatiserar Windows med PowerShell
- Att lära sig använda Cmdlets i PowerShell
- Lär dig hur man använder objekt i PowerShell
- Learning Formatering, filtrering och jämförelse i PowerShell
- Lär dig använda Remoting i PowerShell
- Använda PowerShell för att få datorinformation
- Arbeta med samlingar i PowerShell
Och håll dig uppdaterad för resten av serien hela veckan.
Snapins
Snapins är det förra året. Alla skämt åt sidan, snapins fanns aldrig ibland bland PowerShell-gemenskapen eftersom de flesta scripters inte är utvecklare och du kan bara skriva snapins på ett språk som C #. Ändå finns det fortfarande några produkter som använder snapins, till exempel Web Deploy. För att se vilka snapins som finns tillgängliga för dig att använda i skalet använder du följande kommando:
Get-PSSnapin -Registered
För att använda kommandon som läggs till med en snapin måste du först importera den till din session och det kan du göra så här:
Add-PSSnapin-Name WDeploySnapin3.0
Vid det här tillfället kommer du att få ett fel om du inte har installerat Snapin för Web Deploy. Om du har det installerat, som jag gör, importeras det till din session. För att få en lista med kommandon som är tillgängliga i snapin kan du helt enkelt använda kommandot Get-Command cmdlet:
Get-Command -Module WDeploy *
Obs! Tekniskt är det här inte en modul, men av någon anledning behöver du fortfarande använda modulparametern.
moduler
Moduler är nyare och är vägen framåt. De kan både skriven med PowerShell samt kodas på ett språk som C #. De flesta av de inbyggda kommandona är också indelade i moduler. För att se en lista med moduler på ditt system kan du använda följande kommando:
Get-Module -ListAvailable
Eftersom produkterna uppdateras, överförs deras PowerShell-motsvarigheter till moduler. Exempelvis brukade SQL ha en snapin, men den består nu av moduler.
För att kunna använda en modul måste du importera den först.
Import-modul-namn SQLASCMDLETS
Du kan använda samma trick som vi använde med snapins för att se alla kommandon som modulen fogade till skalet.
Så det lämnar frågan: hur vet PowerShell vilka snapins och moduler du har på ditt system? Tja, snapins är lite smärta och måste installeras. En del av installationsprocessen innefattar att skapa några registerposter som PowerShell tittar på för att hitta snapin-information. Moduler kan å andra sidan registreras med skalet genom att helt enkelt placera dem på en av platserna i miljövariabeln PSModulePath. Alternativt kan du bara lägga till sökvägen till modulen till miljövariabeln.
($ Env: PSModulePath) .Split ( ”;”)
Det kommer att spotta ut innehållet i variabeln. Observera att om du har en modul som SQL installerad, hur den ändrade variabeln för att inkludera SQL-modulens plats.
Modul Automatisk laddning
PowerShell 3 introducerade en fantastisk ny funktion som går av några namn. Ingen av dem är officiell, men "Modul Auto Loading" är den bästa beskrivningen av den. I grund och botten tillåter du att använda cmdlets som hör till en extern modul utan att uttryckligen importera modulen med cmdlet Importer-modulen. För att se detta, först avlägsna alla moduler från ditt skal genom att använda följande kommando:
Get-Module | Ta-Module
Du kan då kontrollera att du inte har några moduler laddade genom att använda följande:
Get-modul
Använd nu en cmdlet som inte finns i kärnbiblioteket. Test-anslutning är bra:
Test-anslutning localhost
Om du kontrollerar dina laddade moduler igen ser du att det faktiskt laddade modulen.
Det är allt för idag killar, gå med oss imorgon för mer.