comenzi PowerShell fiecare dezvoltator ar trebui să știe: 50 + Cmdlets pentru a obține lucruri de făcut, monitorizarea performanței, depanare

posted in: Articles | 0

mulți dezvoltatori iubesc PowerShell, și pentru un motiv bun: adaugă putere, funcționalitate și flexibilitate la promptul de comandă Windows, unde mulți dintre noi Cu toate acestea, vine cu un pic de curbă de învățare, dar odată ce ați stăpânit comenzile esențiale pe care trebuie să le cunoașteți, este productivitatea pe steroizi.,comenzile PowerShell sunt cunoscute sub numele de cmdlets, iar aceste cmdlets sunt forța motrice din spatele capacităților sale funcționale. De la comenzi care îmbunătățesc experiența generală Windows la comenzi utile pentru lucrările de dezvoltare, există zeci de comenzi importante pe care dezvoltatorii ar trebui să le cunoască., Am pus împreună această listă pentru a servi ca un ghid de referință la îndemână pentru cei care abia încep să atingeți în puterea PowerShell, precum și cei care doresc să Nivel-up experiența lor PowerShell, inclusiv:

  • cmdlets PowerShell de bază
  • comenzi PowerShell pentru a obține lucruri de făcut
  • Cmdlets pentru monitorizarea performanței, testarea și depanare

în plus față de cmdlets, există zeci de parametri și metode care vă scenarii., Parametrul WhatIf este deosebit de util pentru testarea scripturilor PowerShell fără a le rula efectiv (@pluralsight). Există de obicei mai mulți parametri și metode disponibile pentru fiecare comandă. Comenzile enumerate mai jos reprezintă un bun punct de plecare pentru orice dezvoltator, dar pentru a realiza pe deplin beneficiile, ar trebui să stăpânești parametrii și alte metode.

cmdleturi PowerShell de bază

aceste comenzi PowerShell de bază sunt utile pentru obținerea de informații în diferite formate, configurarea securității și raportarea de bază.,

Get-Command

Get-Command este un cmdlet de referință ușor de utilizat, care aduce toate comenzile disponibile pentru utilizare în sesiunea curentă.

pur și simplu tastați în această comandă:

get-command

ieșirea va arăta cam așa (@MS_ITPro):

2. Get-Help

comanda Get-Help este esențială pentru oricine utilizează PowerShell, oferind acces rapid la informațiile de care aveți nevoie pentru a rula și a lucra cu toate comenzile disponibile.

Dacă doriți câteva exemple, de exemplu, ați introduce următoarele (@jp_jofre):

3., Set-ExecutionPolicy

Microsoft dezactivează scriptarea în mod implicit pentru a împiedica executarea scripturilor rău intenționate în mediul PowerShell. Dezvoltatorii doresc să poată scrie și executa scripturi, totuși, astfel încât comanda Set-ExecutionPolicy vă permite să controlați nivelul de securitate din jurul scripturilor PowerShell. Puteți seta unul dintre cele patru niveluri de securitate:

  • restricționat: acesta este nivelul implicit de securitate care blochează rularea scripturilor PowerShell. În acest nivel de securitate, puteți introduce doar comenzi interactiv.,
  • toate semnate: acest nivel de securitate permite scripturilor să ruleze numai dacă sunt semnate de un editor de încredere.
  • Remote Signed: în acest nivel de securitate, orice script PowerShell creat local este permis să ruleze. Scripturile create de la distanță sunt permise să ruleze numai dacă au fost semnate de un editor de renume.
  • nerestricționat: după cum sugerează și numele, nivelul de securitate nerestricționat permite rularea tuturor scripturilor eliminând toate restricțiile din Politica de execuție.,

în mod Similar, dacă lucrezi într-un mediu nefamiliar, puteți găsi cu ușurință ceea ce actuala politica de executare este folosind această comandă:

Get-ExecutionPolicy

Check out acest thread pe SuperUser pentru mai multe informații privind configurarea politica de executare în PowerShell. (@StackExchange)

Get-Service

de asemenea, este util să știți ce servicii sunt instalate pe sistem., Puteți accesa cu ușurință aceste informații cu următoarea comandă:

Get-Service

ieșire va arata ceva de genul următor (@MS_ITPro):

Dacă aveți nevoie să știți dacă un anumit serviciu este instalat, puteți adăuga Numele comutator și numele serviciului, și Windows va afișa starea de serviciu. În plus, puteți utiliza capabilitățile de filtrare pentru a returna un subset specific de servicii instalate în prezent., Următorul exemplu va duce la o ieșire de date de la Serviciul de comandă care a fost adus la Unde-Obiect cmdlet-ului, care apoi se filtreaza totul altele decât serviciile care au fost oprit:

Get-Service | Where-Object {$_.status -eq "stopped"}

a Verifica afară acest post pentru unele exemple suplimentare de Serviciu în acțiune.

5. ConvertTo-HTML

dacă trebuie să extrageți date pe care le puteți utiliza într-un raport sau să le trimiteți altcuiva, ConvertTo-HTML este o modalitate simplă de a face acest lucru., Pentru a-l utiliza, treceți ieșirea de la o altă comandă la comanda ConvertTo-HTML și utilizați comutatorul-Property pentru a specifica ce proprietăți de ieșire doriți în fișierul HTML. De asemenea, va trebui să furnizați un nume de fișier.

De exemplu, următorul cod creează o pagină HTML care afișează PowerShell pseudonime în actuala consola:

PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm

Bonus:

Export-CSV

cmdlet funcții în același fel de mult, dar exporturile de date de la un .Fișier CSV, mai degrabă decât HTML., Utilizați

Select-Object

pentru a specifica ce proprietăți doriți să fie incluse în ieșire.

Check out acest articol din 4sysops pentru mai multe informații privind utilizarea ConvertTo-HTML eficient (@adbertram).

6. Get-EventLog

puteți utiliza PowerShell pentru a analiza jurnalele de evenimente ale aparatului dvs. utilizând cmdlet-ul Get-EventLog. Există mai mulți parametri disponibili. Utilizați comutatorul-Log urmat de numele fișierului jurnal pentru a vizualiza un anumit jurnal., Ai folosi următoarea comandă, de exemplu, pentru a vizualiza jurnalul de Aplicații:

Get-EventLog -Log "Application"

mai Verific câteva exemple de EventLog în acțiune în acest post (@nextofwindows). Alți parametri comuni includ (@SS64):

  • -Verbose
  • -Debug
  • -ErrorAction
  • -ErrorVariable
  • -WarningAction
  • -WarningVariable
  • -OutBuffer
  • -OutVariable

Ia-Proces

Mai mult ca obtinerea o listă de servicii disponibile, este de multe ori util pentru a fi capabil de a obține o listă rapidă a tuturor proceselor care rulează în prezent., Comanda Get-proces pune aceste informații la îndemână.bonus: utilizați Stop-proces pentru a opri procesele care sunt înghețate sau nu mai răspund. Dacă nu sunteți sigur ce proces vă reține, utilizați Get-Process pentru a identifica rapid procesul problematic. După ce aveți numele sau ID-ul procesului, utilizați Stop-proces pentru a-l termina.

Iată un exemplu., Rula această comandă pentru a termina toate rulează în prezent cazuri de Notepad (@MS_ITPro):

Stop-Process -processname notepad

Aveți posibilitatea să utilizați metacaractere, cum ar fi următorul exemplu, care se termină toate cazurile de Notepad, precum și orice alte procese începând cu notă:

Stop-Process -processname note*

a Verifica afară acest post pentru mai multe informații privind uciderea procese cu PowerShell (@howtogeek):

8. Clear-History

Ce se întâmplă dacă doriți să ștergeți intrările din istoricul comenzilor? Ușor de utilizat cmdletul Clear-History. De asemenea, îl puteți utiliza pentru a șterge numai comenzi specifice., De exemplu, următoarea comandă va șterge comenzi care includ „ajutor” sau a se termina în „de comandă” (@MS_ITPro):

PS C:\> Clear-History -Command *help*, *command

Dacă doriți să adăugați intrări la o sesiune, utilizați:

Add-History

a Verifica afară acest post pentru unele informații utile cu privire la compensare istoria și pre-încărcare de istorie cu o listă de anumite comenzi (@MS_ITPro).,

Unde-Obiect

în cazul în Care Obiect este una dintre cele mai importante cmdlets să știu, deoarece vă permite să ia un set de date și să treacă mai departe în jos conducta de filtrare (@jonathanmedd):

Get-Service | Where-Object {$_.Status -eq 'Running'}Status Name DisplayName------ ---- -----------Running AdobeARMservice Adobe Acrobat Update ServiceRunning AppHostSvc Application Host Helper ServiceRunning Appinfo Application InformationRunning AudioEndpointBu... Windows Audio Endpoint BuilderRunning Audiosrv Windows AudioRunning BFE Base Filtering EngineRunning BITS Background Intelligent Transfer Ser...Running BrokerInfrastru... Background Tasks Infrastructure Ser...Running Browser Computer BrowserRunning CDPSvc Connected Devices Platform Service

10. Set-AuthenticodeSignature

Dacă doriți să păstrați munca sigure în producție și pentru a preveni modificarea, utilizarea Set-AuthenticodeSignature pentru a adăuga un Authenticode semnătură la un script sau un fișier.

comenzi PowerShell pentru a face lucrurile

când vine vorba de productivitate, PowerShell vă poate ajuta să faceți lucrurile cu următoarele comenzi.

11., ForEach-Object

cmdletul ForEach-Object efectuează o operație împotriva fiecărui element dintr-un grup specificat de obiecte de intrare. În timp ce multe cmdleturi funcționează oricum cu fiecare obiect dintr-o colecție, veți avea nevoie de ForEach-Object pentru acele situații în care doriți să faceți alte modificări sau să aplicați formatare specifică tuturor obiectelor dintr-o colecție.

Iată un exemplu (@MS_ITPro)., Dacă doriți să afișați o listă de nume de proces și doresc aceste nume pentru a face în cyan, puteți încerca următoarele:

Get-Process | Write-Host $_.name -foregroundcolor cyan

Dar cele de mai sus va produce următoarea eroare:

At line:1 char:25+ get-process | write-host <<<< $_.name -foregroundcolor cyan Write-Host : The input objectcannot be bound to any parameters for the command either because the command does nottake pipeline input or the input and its properties do not match any of the parametersthat take pipeline input.

Pentru a Scrie-Gazdă cmdlet nu înțeleg ce vreți să faceți cu datele trimise de-a lungul conductei.

Deci, folosind ForEach-Obiect cmdlet-ul rezolvă această problemă:

Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}

Check out acest tutorial pentru mai multe informații despre ForEach-Obiect și de lucru cu bucle (@tomsitpro).

12., Clar-Conținut

Dacă doriți să ștergeți conținutul unui element, dar și păstreze postul în sine, veți utiliza Clar-Conținut cmdlet-ului:

Clear-Content C:\Temp\TestFile.txt

de asemenea, puteți utiliza această comandă pentru a șterge conținutul toate fișierele cu o anumită extensie de fișier. Următorul cod ar șterge conținutul tuturor fișierelor cu .extensia txt, de exemplu:

Clear-Content -path * -filter *.TXT –force

De asemenea, puteți utiliza caractere wildcard. În plus, puteți șterge conținutul oricărui tip de fișier, din .fișiere txt la .doctore .xls și multe altele.consultați această postare pentru mai multe detalii.

13., Checkpoint-Computer

dacă efectuați modificări majore sau executați un experiment riscant, puteți seta un punct de restaurare pe aparat cu cmdlet Checkpoint-Computer.rețineți că puteți crea un punct de restaurare folosind acest cmdlet doar o dată la 24 de ore. Dacă executați din nou comanda, aceasta va păstra punctul de restaurare anterior:

consultați acest articol din MCP Mag pentru mai multe (@MCPmag).

comparați-obiect

este adesea util să puteți compara direct două obiecte., Puteți face acest lucru folosind Compare-Object, care generează un raport privind diferențele dintre două seturi, cum ar fi (@Marcam923):

15. ConvertFrom-StringData

Utilizare ConvertFrom-StringData pentru a converti un șir de caractere care conțin una sau mai multe perechi de valori de la un tabel hash. Iată un exemplu despre cum arată comanda:

$settings = $TextData | ConvertFrom-StringData

această comandă este utilă într-o varietate de situații, cum ar fi atunci când doriți să salvați setările pentru un script PowerShell pentru a permite altora să editeze setările fără a lucra direct în codul scriptului.,

ConvertTo-SecureString

Converti un fișier criptat șir standard pentru asigurarea unui șir sau text simplu pentru asigurarea unui șir folosind ConvertTo-SecureString. Acest cmdlet este utilizat în conjuncție cu ConvertFrom-SecureString și a Citit-Gazdă (@AdmArsenal):

ConvertTo-XML

Folositi ConvertTo-XML cmdlet-ului pentru a crea un XML pe baza de reprezentare a unui obiect. Aceasta se mai numește serializare și este un proces util pentru salvarea datelor pentru reutilizare ulterioară. Rețineți că este important ca expresia dvs. să scrie obiecte în conductă., Orice folosind Write-Host nu va scrie în conductă și, prin urmare, nu poate fi serializat. Iată un exemplu de ConvertTo-XML în acțiune (@PetriFeed):

Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml

specifice cmdlet-ul folosit în exemplul de mai sus, Export-Clixml, este potrivit pentru cele mai multe scopuri. Convertește ieșirea unei expresii PowerShell în XML și o salvează într-un fișier.

18. New-AppLockerPolicy

New-AppLockerPolicy creează o nouă politică AppLocker dintr-o listă de informații despre fișiere și alte opțiuni de creare a regulilor., În total, sunt cinci cmdlet-uri care vă permite să interacționeze cu AppLocker, inclusiv (@RootUsers_):

  • Ia-AppLockerFileInformation: Primește informațiile necesare pentru crearea AppLocker reguli dintr-o listă de fișiere sau jurnalul de evenimente.
  • Get-AppLockerPolicy: folosit pentru a prelua o politică locală, eficientă sau un domeniu AppLocker.
  • New-AppLockerPolicy: după cum sa menționat, acest cmdlet este utilizat pentru crearea de noi politici AppLocker.
  • Set-AppLockerPolicy: Setează Politica AppLocker pentru un obiect de politică de grup specificat.,
  • Test-AppLockerPolicy: folosit pentru a determina dacă un utilizator sau un grup de utilizatori vor putea efectua anumite acțiuni pe baza politicii.

19. New-ItemProperty

New-ItemProperty creează o proprietate nouă pentru un element și stabilește valoarea acestuia. Puteți să-l utilizați pentru a crea și modifica valorile și datele registrului (proprietățile unei chei de registru), de exemplu.vezi acest tutorial de la mnaoumov.NET pentru unele soluții utile folosind acest cmdlet (@mnaoumov).

20. New-Object

pentru a crea o instanță a unui Microsoft .,NET Framework sau Component Object Model (COM) object, utilizați noul obiect cmdlet.

Aici e un exemplu care creează un nou obiect utilizând Noi-Obiect, o stochează într-o variabilă, atunci conducte pentru a Adăuga-Membru, care apoi va adăuga proprietăți sau metode specificate în obiectul creat (@gngrninja):

21. Nou-WebServiceProxy

Nou-WebServiceProxy creează un serviciu web obiect proxy care vă permite să utilizați și de a gestiona serviciul web din cadrul PowerShell., Acest cmdlet este un lucru frumos pentru dezvoltatori-face inutil să scrieți o mulțime de cod complex pentru a încerca să realizați ceva în PowerShell atunci când puteți apela pur și simplu un alt serviciu care face deja posibil.

Iată un exemplu:

acum, Puteți rula următoarele pentru a vizualiza o listă cu toate metodele disponibile:

$proxy | gm -memberType Method

22. New-WSManInstance

similar cu New-WebServiceProxy, New-WSManInstance creează o nouă instanță a unei resurse de management.,consultați acest tutorial pentru un exemplu complet pas cu pas despre cum să obțineți informațiile de care aveți nevoie pentru a executa acest script cu succes (@jonathanmedd).

23., Nou-WSManSessionOption

Nou-WSManSessionOption creează o nouă sesiune de management tabel hash, care este folosit ca parametri de intrare pentru alte WS-Management cmdlets, inclusiv:

  • Ia-WSManInstance
  • Set-WSManInstance
  • Invoca-WSManAction
  • Connect-WSMan

Aici s-sintaxa (@SAPIENTech):

Select-Object

Select-Object cmdlet selectează proprietăți specificate de un singur obiect sau grup de obiecte. În plus, se poate selecta obiecte unice dintr-o matrice sau un anumit număr de obiecte de la începutul sau la sfârșitul unui tablou.,

PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4

Acest tutorial oferă mai multe informații despre diferitele moduri în care puteți utiliza Selectați-Obiect (@infosectactico).

există și alte cmdleturi cu funcții similare, inclusiv:

  • Select-String: găsește text în șiruri sau fișiere.
  • Select-XML: găsește text într-un șir XML sau document.

25. Set-Alias

Set-Alias este o comandă excelentă pentru îmbunătățirea productivității. Vă permite să setați un alias pentru un cmdlet sau alt element de comandă în sesiunea curentă (similar cu o comandă rapidă de la tastatură), astfel încât să puteți lucra mai repede.,

următorul exemplu stabilește Notepad pentru a np în sesiunea curentă folosind Set-Alias (@powershellatoms):

New-Alias np c:\windows\system32\notepad.exe

Rețineți că puteți personaliza, de asemenea, PowerShell profil cu alias-urile pe care le utilizați cel mai des (@howtogeek).

26. Set-StrictMode

Set-StrictMode stabilește și impune reguli de codificare în scripturi, blocuri de scripturi și expresii. Este o comandă utilă pentru aplicarea de cod de calitate și vă împiedică să lenevească și scris neglijent codul de când e 3:00 a. m. și n-ai avut somn în două zile (@adbertram).,

Să-l folosească, există doi parametri de luat în considerare: și -Versiune, și -Versiunea a trei valori posibile:

  • Versiunea 1.0: vă Împiedică să utilizați variabile care nu au fost inițializat (cum ar fi Opțiunea Explicită în VBScript)
  • Versiunea 2.0: vă Împiedică să utilizați variabile care nu au fost inițializate și previne, de asemenea, de asteptare de proprietăți inexistente pe obiecte, vă împiedică de la apelarea unei funcții, ca o metodă, și interzice crearea de variabile fără un nume.,
  • versiunea cea mai recentă: această opțiune selectează cea mai recentă versiune StrictMode disponibilă și o folosește. Aceasta este o opțiune bună, deoarece înseamnă că cea mai recentă versiune StrictMode este utilizată indiferent de versiunea PowerShell pe care o utilizați.

așteptați-Job

așteptați-Job suprimă promptul de comandă până când joburile de fundal care rulează în sesiunea curentă sunt complete. Cu toate acestea, funcția de așteptare nu afișează rezultatele de la jobs, dar poate fi utilizată împreună cu funcția de primire. Multithreading este posibilă în PowerShell datorită-locuri de muncă.

scrie-progres

cui nu-i place o bară de stare?, Monitorizați progresul utilizând Write-Progress, care afișează o bară de progres într-o fereastră de comandă Windows PowerShell.

Iată un exemplu care vă oferă o bară de progres completă și șiruri de rulare (@credera):

cmdleturi pentru monitorizarea performanței, testare și depanare

există, de asemenea, o varietate de cmdleturi utile dezvoltatorilor pentru depanare, testare, depanare și monitorizare. Iată câteva trebuie să știți.

Debug-proces

dezvoltatorii place depanare! Ei bine, ne place chiar mai mult atunci când nu există bug-uri pentru a elimina, dar din păcate că nu este întotdeauna cazul., Cu PowerShell, puteți depana un proces folosind cmdlet-ul Debug-Process.

de asemenea, puteți depana joburi folosind Debug-Job (@MS_ITPro). Și puteți seta puncte de întrerupere sau puteți utiliza cmdlet-ul Wait-Debugger:

30. Disable-PSBreakpoint

Dacă aveți la un moment dat set breakpoints, dar doriți să le elimine, face acest lucru cu ușurință folosind Disable-PSBreakpoint, care dezactivează breakpoints în consola curentă. Iată sintaxa (@ActiveXperts):

Disable-PSBreakpoint Disable-PSBreakpoint 

Alternativ, dacă doriți pentru a permite puncte de întrerupere în actuala consola, utilizarea Activa-PSBreakpoint.,

Get-Counter

Get-Counter primește date de contor de performanță în timp real de la instrumentele de monitorizare a performanței în sistemul de operare Windows. Este folosit pentru a obține date de performanță de la computere locale sau la distanță la intervale de probă specifice pe care le specificați.

În acest exemplu, veți obține un contor set cu un interval de prelevare pentru un maxim specificat de probă (@MS_ITPro):

PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3

În exemplul de mai jos, această comandă se specifică contor date de la mai multe calculatoare:

32., Export-Counter

Export-Counter exports PerformanceCounterSampleSet obiecte ca fișiere jurnal contra. Două proprietăți sunt disponibile:

  • CounterSamples: devine și stabilește datele pentru contoare.
  • Timestamp: devine și stabilește data și ora la care au fost colectate datele eșantion.,

Și mai multe metode, toate din care sunt moștenite de la Obiect:

  • Equals(Object)
  • Finalize()
  • GetHashCode()
  • GetType()
  • MemberwiseClone()
  • ToString()

De exemplu, următoarea comandă folosește Obține-Counter pentru a colecta Procesor de date în Timp și exporturile la un .blg folosind Export-Counter (@TechGenix):

Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg

33. Test-Path

Test-Path vă permite să verificați dacă elementele există într-o cale specificată., De exemplu, dacă intenționați să utilizați o altă comandă într-un fișier specificat, poate fi necesar să verificați dacă fișierul există pentru a evita aruncarea unei erori.

Test-Path C:\Scripts\Archive

Dacă folderul există, se va întoarce True; dacă nu, se va întoarce False.de asemenea, poate funcționa cu căile utilizate de alți furnizori PowerShell. De exemplu, dacă trebuie să știți dacă computerul dvs. are o variabilă de mediu numită username, puteți utiliza următoarele:

Test-Path Env:\username

Test-Path funcționează cu variabile, certificate, pseudonime și funcții., Check out acest post de la TechNet pentru mai multe detalii (@MS_ITPro).

34. Ia-WinEvent

Uită-te la jurnalele de evenimente Windows Folosind Get-WinEvent. Pentru o listă de disponibil busteni, utilizare:

Get-WinEvent -ListLog *

Apoi, pentru a revizui detaliile unui anumit jurnal, înlocuiți * cu numele (conducta de ieșire a format-listă pentru a vizualiza toate detaliile):

Get-WinEvent -ListLog $logname | fl *

de asemenea, puteți vizualiza toate evenimentele într-un jurnal cu ajutorul:

Get-WinEvent -LogName System

Check out acest tutorial pentru mai multe detalii (@rakheshster).,pachetele de depanare sunt colecții de scripturi și ansambluri PowerShell care vă ajută să depanați, să diagnosticați și să reparați problemele comune ale sistemului (@ITNinjaSite). Găsi pachete de depanare de la:

C:\Windows\Diagnostics\System

puteți rula acest script pentru a obține o listă cu toate pachete de depanare disponibile pe sistemul actual (@TechGenix):

Get-ChildItem C:\Windows\Diagnostic\System

Apoi, dintr-o cadru fereastră de PowerShell crescute, executați un pachet de depanare folosind această comandă:

Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)

36., Măsură-comandă

Dacă doriți să operațiuni de timp în PowerShell, măsură-comandă este un trebuie să-știu cmdlet. Acesta măsoară cât timp un script sau scriptblock pentru a rula. Iată un exemplu (@ToddKlindt):

Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }

ieșirea este un obiect de timp, deci conține proprietăți precum oră, minut, secundă etc., și este ușor să adaptați producția la preferințele dvs.

Measure-Object

De asemenea, ați putea dori să știți cât de mare este un obiect dat., Utilizați Measure-Object pentru a calcula proprietățile numerice ale oricărui obiect, inclusiv caractere, cuvinte și linii dintr-un obiect string, cum ar fi fișiere de text.,

specifica Doar numele și tipul de măsură pentru a efectua, împreună cu parametri, cum ar fi (@WindowsITPro):

  • Suma: adaugă valori
  • -Medie: calculează valoarea medie
  • -Minim: găsește valoarea minimă
  • -Maxim: găsește valoarea maximă

comanda următoare sume VirtualMemorySize valorile de proprietate pentru tot procesul de obiecte:

Get-Process | measure VirtualMemorySize -Sum

New-Eveniment

Nou-Eveniment este utilizat pentru a crea un eveniment nou., Un cmdlet asociat este New-EventLog, care creează un nou jurnal de evenimente, precum și o nouă sursă de evenimente pe un computer local sau la distanță. Dacă aveți un motor de automatizare acceptat de PowerShell, este o practică bună să configurați un jurnal de evenimente (prin crearea unui tip de jurnal de evenimente personalizat) care înregistrează toate mesajele trimise de PowerShell. Acesta este un exemplu în care puteți implementa logarea personalizată în vizualizatorul de evenimente.,

Începeți prin a crea un nou Eveniment Jurnal LogName (@BundaloVladimir):

New-EventLog -LogName Troubleshooting_Log -Source FalloutApp

Apoi, pentru a trimite mesaje de la noul eveniment jurnal, executați următoarea folosind Scrie-Log cmdlet-ul:

Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"

Primire-loc de Muncă

Dacă aveți nevoie pentru a obține rezultatele de Windows PowerShell background locuri de muncă în sesiunea curentă, utilizați Primi-loc de Muncă. Acest lucru este de obicei utilizat după utilizarea Start-Job pentru a începe un loc de muncă atunci când trebuie să vizualizați rezultatele specifice.,

Receive-Job -Name HighMemProcess

Check out acest tutorial util pe utilizarea Primi locul de Muncă și ce să facă dacă nu există aparent nici un rezultat (@proxb).

40. Register-EngineEvent

acest cmdlet este folosit pentru a vă abona la evenimentele generate de motorul Windows PowerShell și cmdlet-ul New-Event. De exemplu, următoarea comandă subscrie la un eveniment atunci când actuala sesiune de PowerShell iese și salvează informații (cum ar fi data și ora) într-un fișier jurnal (@jonathanmedd):

Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}

41., Registrul-ObjectEvent

Register-ObjectEvent este similar cu Registrul-EngineEvent, dar decât să mă abonez la evenimente generate de PowerShell motor și Nou-Eveniment, se subscrie la evenimentele generate de o eroare de Microsoft .NET Framework Obiect.

Iată un exemplu (@NetworkWorld):

există alte Register – cmdlets pe care le puteți găsi utile, inclusiv:

  • Register-PSSessionConfiguration: creează și înregistrează o nouă configurație de sesiune.
  • înregistrare-WmiEvent: acest cmdlet se abonează la un eveniment WMI.

42., Remove-Event

când doriți să eliminați un eveniment, utilizați cmdletul Remove-Event. Dacă trebuie să elimini un întreg jurnal de evenimente, vei folosi Remove-EventLog, care șterge un jurnal de evenimente sau anulează înregistrarea unei surse de eveniment.

alternativ, Unregister-Event anulează un abonament la eveniment, dar nu șterge un eveniment din coada de evenimente (@SS64).

43. Set-PSDebug

acest cmdlet transformă script depanare caracteristici on și off. De asemenea, stabilește nivelul de urmărire și comută Strictmod.,folosind Set-PSDebug în partea de sus a fișierului script imediat după declarația param () (dacă există), puteți preveni erorile cu scripturile despre care PowerShell nu oferă informații adecvate în scopuri de depanare. Iată un exemplu (@r_keith_hill):

44. Start-Sleep

dacă trebuie să suspendați activitatea într-un script sau o sesiune, utilizați Start-Sleep, care oprește activitatea pentru o anumită perioadă de timp.

Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx

dacă trebuie să întrerupeți unul sau mai multe servicii care rulează, veți utiliza suspenda-Service.

45., Tee-Object

dacă analizați performanța sau calitatea codului, este util să puteți vizualiza ieșirea unei comenzi. Tee-Object stochează ieșirea comenzii într-un fișier sau variabilă și o afișează și în consolă dacă este ultima variabilă din conductă. În cazul în care nu este ultima variabilă în conducta, Tee-obiect trimite-l în jos conducta.

iată sintaxa:

46. Test-AppLockerPolicy

Test-AppLockerPolicy evaluează dacă fișierele de intrare sunt permise pentru a rula pentru un anumit utilizator pe baza specificat AppLocker politică.,

Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path 

Acest tutorial oferă mai multe detalii despre parametrii disponibile și exemple de Test-AppLockerPolicy în acțiune (@powershellhelp).

Test-ComputerSecureChannel

acest cmdlet Testează și repară conexiunea dintre un computer local și domeniul său. Fără această comandă, soluția obișnuită a fost anterior eliminarea unui computer din domeniul său și apoi reconectarea acestuia pentru a restabili relația. Test-ComputerSecureChannel face posibilă restabilirea conexiunii în mai puțin timp (@WindowsITPro).,

când sunteți conectat ca administrator local, pur și simplu executați următoarele:

Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair

puteți utiliza Test-Connection pentru a trimite pachete de solicitare de ecou Internet Control Message Protocol (ICMP) pe unul sau mai multe computere.

Test-Path

utilizați Test-Path pentru a determina dacă există toate elementele unei căi. În esență, vă ajută să gestionați erorile înainte de a apărea. În forma sa cea mai simplă, returnează True or False (@MCPmag):

PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse

49. Trace-Command

Trace-Command configurează și pornește urmărirea unei comenzi sau expresii specificate., Pentru a utiliza, aveți nevoie pentru a utiliza Get-TraceSource în scopul de a uita-te pentru nume special folosind metacaractere:

PS&gt; Get-TraceSource -Name *param*

puteți filtra de ieșire pentru a se potrivi la descrierea de model vrei. După ce ați identificat numele posibil de urmărire, veți utiliza Trace-Command pentru a obține răspunsurile de care aveți nevoie. Iată un exemplu:

Check out acest post pentru mai multe detalii despre joc detectiv cu Trace-Command (@PowerShellMag).

50. Scrie-Debug

scrie-Debug scrie un mesaj de depanare la consola., Când ai scris asta într-o funcție sau script, nu face nimic în mod implicit, mesajele, în esență, se afla în așteptați până când vă modificați $DebugPreference sau activa -comutator de depanare atunci când apelați o funcție sau script. Când $DebugPreference este setat la „întreba” sau comutatorul-debug este activat, mesajul creează un punct de întrerupere, oferindu-vă o modalitate ușoară de a pop în modul de depanare.

luați acest exemplu (@RJasonMorgan):

exemplul de mai sus produce următoarele când rulați cu-debug:

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *