Pagina principala » HOWTO » Școala Geek Aflați cum să extindeți PowerShell

    Ș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.