Școala Geek Aflați cum să extindeți PowerShell
PowerShell oferă două moduri de extindere a cochiliei. Puteți utiliza fie snapins, care sunt doar binare și dezvoltate într-un limbaj de programare complet, cum ar fi C #, sau puteți utiliza module, care pot fi binare, precum și bazate pe script.
Asigurați-vă că citiți articolele anterioare din seria:
- Aflați cum să automatizați Windows cu PowerShell
- Învățarea de a folosi Cmdlets în PowerShell
- Învățați cum să utilizați obiecte în PowerShell
- Formatul de învățare, filtrarea și compararea în PowerShell
- Aflați cum să utilizați Remoting în PowerShell
- Folosind PowerShell pentru a obține informații despre computer
- Lucrul cu colecțiile din PowerShell
Și stați pe toată săptămâna pentru restul seriei.
utilitare de completare snap
Snapins sunt anul trecut. Toate bancurile deoparte, snapins niciodată prins în întreaga comunitate PowerShell, deoarece majoritatea scripterilor nu sunt dezvoltatori și puteți scrie doar snapins într-o limbă ca C #. Cu toate acestea, există încă unele produse care utilizează snapins, cum ar fi Web Deploy, de exemplu. Pentru a vedea ce snapine sunt disponibile pentru utilizarea în shell, folosiți următoarea comandă:
Get-PSSnapin -Registered
Pentru a utiliza comenzile adăugate de un snapin, trebuie mai întâi să îl importați în sesiunea dvs. și puteți face acest lucru:
Add-PSSnapin - Numele WDeploySnapin3.0
În acest moment, veți primi o eroare dacă nu aveți instalat serviciul Web Deploy snapin. Dacă ați instalat-o, așa cum o fac, atunci va fi importată în sesiunea dvs. Pentru a obține o listă de comenzi disponibile în snapin, puteți folosi pur și simplu cmdletul Get-Command:
Get-Command -Module WDeploy *
Notă: Din punct de vedere tehnic, acesta nu este un modul, dar din anumite motive trebuie să utilizați parametrul Module.
module
Modulele sunt mai noi și reprezintă calea de urmat. Ele pot fi scrise atât folosind PowerShell, cât și codate într-o limbă precum C #. Cele mai multe dintre comenzile încorporate sunt organizate și în module. Pentru a vedea o listă de module pe sistemul dvs., puteți utiliza următoarea comandă:
Get-Module -ListAvailable
Pe măsură ce produsele sunt actualizate, omologii lor PowerShell sunt migrați în module. De exemplu, SQL a folosit un snapin, dar acum este alcătuit din module.
Pentru a utiliza un modul, trebuie să îl importați mai întâi.
Modul de import -Sunt SQLASCMDLETS
Puteți folosi același truc pe care l-am folosit cu snapins pentru a vedea toate comenzile pe care modulul le-a adăugat în shell.
Deci, lasă întrebarea: cum știe PowerShell ce snapine și module aveți pe sistemul dvs.? Ei bine, snapins sunt un pic de durere și trebuie să fie instalat. O parte a procesului de instalare include crearea a câteva intrări de registry pe care PowerShell le caută pentru a găsi informații despre snapin. Modulele, pe de altă parte, pot fi înregistrate cu shell-ul pur și simplu plasându-le într-una din locațiile din variabila de mediu PSModulePath. În mod alternativ, puteți adăuga calea către modul la variabila de mediu.
($ Env: PSModulePath) .Split ( „;“)
Aceasta va scuipa conținutul variabilei. Observați că, dacă aveți un modul cum ar fi SQL instalat, modul în care a modificat variabila pentru a include locația modulului SQL.
Încărcarea automată a modulelor
PowerShell 3 a introdus o nouă caracteristică minunată, care merge cu câteva nume. Nici unul dintre ele nu este oficial, dar "Module Auto Loading" este cea mai bună descriere a acestuia. Practic, vă permite să utilizați cmdleturi care aparțin unui modul extern fără a importa explicit modulul utilizând cmdletul Import-Module. Pentru a vedea acest lucru, eliminați mai întâi toate modulele din shell folosind următoarea comandă:
Modulul Get. | Eliminați-Modul
Apoi, puteți verifica dacă nu aveți module încărcate utilizând următoarele:
Get-Module
Acum folosiți un cmdlet care nu este în biblioteca de bază. Test-Connection este unul bun:
Test-Connection localhost
Dacă verificați din nou modulele încărcate, veți vedea că a încărcat într-adevăr modulul.
Asta e tot pentru băieții de astăzi, alătură-te nouă mâine pentru mai mult.