If-Koubou

Geek School: Aflați cum să extindeți PowerShell

Geek School: Aflați cum să extindeți PowerShell (Cum să)

PowerShell oferă două moduri de a vă extinde shell-ul. 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ățați să utilizați Cmdlets în PowerShell
  • Învățați cum să utilizați obiecte în PowerShell
  • Învățarea formatării, 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 liniștit pentru restul seriei toată săptămâna.

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 snapins sunt disponibile pentru a vă folosi în shell utilizaț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 programul de instalare Web. 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 Modul.

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.

Așa că 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 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. 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 modulului

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ături de noi mâine pentru mai mult.