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