PowerShell-Kommandoer, Hver Udvikler Bør Vide: 50+ Cmdlets til at Få Tingene Gjort, Overvågning, Fejlretning

posted in: Articles | 0

Mange udviklere elsker PowerShell, og med god grund: det tilføjer magt, funktionalitet og fleksibilitet til Windows kommandoprompt, hvor mange af os bruger en god del tid. Det gør, dog, kommer med lidt af en indlæringskurve, men når du har mestret de væsentlige kommandoer du behøver at vide, det er produktivitet på steroider.,

Po .ershell-kommandoer er kendt som cmdlets, og disse cmdlets er drivkraften bag dens funktionelle evner. Fra kommandoer, der forbedrer den samlede experienceindo .s-oplevelse til kommandoer, der er nyttige til udviklingsarbejde, er der snesevis af vigtige kommandoer, som udviklere skal vide., Vi har sammensat denne liste for at tjene som en praktisk vejledning for dem, der er lige begyndt at udnytte kraften i PowerShell såvel som dem, der ønsker at level op til deres PowerShell erfaring, herunder:

  • Grundlæggende PowerShell Cmdlets
  • PowerShell-Kommandoer til at Få Tingene Gjort
  • Cmdlets til Performance Overvågning, Test og Debugging

ud over at cmdlets, der er dusinvis af parametre og metoder, der hjælper dig med at få mest muligt ud af dine scripts., Parameterhatif-parameteren er især nyttig til test af Po .ershell-scripts uden faktisk at køre dem (@pluralsight). Der er typisk flere parametre og metoder til rådighed for hver kommando. Kommandoerne nedenfor er et godt udgangspunkt for enhver udvikler, men for fuldt ud at indse fordelene skal du også mestre parametre og andre metoder.

grundlæggende Po .ershell Cmdlets

disse grundlæggende Po .ershell-kommandoer er nyttige til at få information i forskellige formater, konfigurere sikkerhed og grundlæggende rapportering.,

Get-Command

Get-Command er en nem at bruge reference cmdlet, der bringer alle de kommandoer til rådighed til brug i din aktuelle session.

Indtast blot denne kommando:

get-command

udgangen vil se sådan ud (@ms_itpro):

2. Get-Help

Get-Help kommando er af afgørende betydning for alle, der bruger PowerShell, som giver hurtig adgang til de oplysninger, du har brug for at køre og arbejde med alle de tilgængelige kommandoer.ønskede nogle eksempler, ville du indtaste følgende (@jp_jofre):

3., Set-ExecutionPolicy

Microsoft deaktiverer scripting som standard til at forhindre skadelige scripts udfører i PowerShell miljø. Udviklere vil dog være i stand til at skrive og udføre scripts, så kommandoen Set-e .ecutionpolicy giver dig mulighed for at kontrollere niveauet for sikkerhed omkring Po .ershell-scripts. Du kan indstille et af fire sikkerhedsniveauer:

  • begrænset: dette er standardsikkerhedsniveauet, der blokerer Po .ershell-scripts i at køre. På dette sikkerhedsniveau kan du kun indtaste kommandoer interaktivt.,
  • Alle signerede: dette sikkerhedsniveau tillader kun scripts at køre, hvis de er underskrevet af en troværdig udgiver.Fjernsigneret: på dette sikkerhedsniveau er alle Po .ershell-scripts, der blev oprettet lokalt, tilladt at køre. Scripts oprettet eksternt er tilladt at køre, hvis de er blevet underskrevet af en velrenommeret udgiver.
  • Ubegrænset: som navnet antyder, tillader det ubegrænsede sikkerhedsniveau alle scripts at køre ved at fjerne alle begrænsninger fra eksekveringspolitikken.,

på samme måde, hvis du arbejder i et ukendt miljø, kan du nemt finde ud af, hvad den aktuelle udførelse af politik, er ved hjælp af denne kommando:

Get-ExecutionPolicy

Tjek denne tråd på Superbruger for flere oplysninger om konfiguration af ordreudførelsespolitikken i PowerShell. (@Stacke .change)

Get-Service

det er også nyttigt at vide, hvilke tjenester der er installeret på systemet., Du kan nemt få adgang til disse oplysninger med følgende kommando:

Get-Service

output vil ligne det følgende (@MS_ITPro):

Hvis du har brug for at vide, om en bestemt service er installeret, kan du tilføje den -skifte Navn og navnet på den service, og Windows vil vise tilstand af tjenesten. Derudover kan du udnytte filtreringsfunktioner til at returnere en bestemt delmængde af aktuelt installerede tjenester., Det følgende eksempel vil resultere i et output af data fra Get-Service kommando, der er blevet ført til, Hvor-Objekt cmdlet, som derefter filtrerer alt andet end de tjenester, der er blevet stoppet:

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

Tjek dette indlæg for nogle yderligere eksempler på Få-Service i aktion.

5. ConvertTo-HTML

Hvis du har brug for at udtrække data, som du kan bruge i en rapport eller sende til en anden, er ConvertTo-HTML en enkel måde at gøre det på., For at bruge det, rør output fra en anden kommando til convertto-HTML-kommandoen og brug-Egenskabskontakten til at specificere, hvilke outputegenskaber du vil have i HTML-filen. Du skal også angive et filnavn.

For eksempel følgende kode opretter en HTML-side, der viser de PowerShell aliasser i den nuværende konsol:

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

Bonus:

Export-CSV

cmdlet funktioner på samme måde, men eksport af data til en .CSV-fil i stedet for HTML., Brug

Select-Object

for at angive, hvilke egenskaber du vil have inkluderet i output.

Tjek denne artikel fra 4sysops for mere information om brug af ConvertTo-HTML effektivt (@adbertram).

6. Get-EventLog

Du kan faktisk bruge Po .ershell til at analysere maskinens hændelseslogfiler ved hjælp af Get-EventLog cmdlet. Der er flere parametre til rådighed. Brug-Log-kontakten efterfulgt af navnet på logfilen for at se en bestemt log., Du bruger for eksempel følgende kommando til at se Applikationsloggen:

Get-EventLog -Log "Application"

tjek et par flere eksempler på Get-EventLog in action i dette indlæg (@ne .tof .indo .s). Andre almindelige parametre inkluderer (@ss64):

  • -Verbose
  • -Debug
  • -ErrorAction
  • -ErrorVariable
  • -Wararningaction
  • -Wararningvariable
  • -OutBuffer
  • -OutVariable

Get-Process

meget som at få en liste over tilgængelige tjenester, er det ofte nyttigt at være i stand til at få en hurtig liste over alle de aktuelt kørende processer., Get-Process-kommandoen sætter disse oplysninger lige ved hånden.

Bonus: Brug Stop-proces til at stoppe processer, der er frosne eller ikke længere reagerer. Hvis du ikke er sikker på, hvilken proces der holder dig op, skal du bruge Get-Process til hurtigt at identificere den problematiske proces. Når du har navn eller proces-ID, skal du bruge Stop-Process til at afslutte det.

Her er et eksempel., Kør denne kommando til at afslutte alle aktuelt kørende forekomster af Notesblok (@MS_ITPro):

Stop-Process -processname notepad

Du kan bruge jokertegn, for, som følgende eksempel, som afslutter alle forekomster af Notesblok samt eventuelle andre processer, der begynder med bemærk:

Stop-Process -processname note*

Tjek dette indlæg for mere information om at dræbe processer med PowerShell (@howtogeek):

8. Ryd-historie

Hvad hvis du vil rydde posterne fra din kommandohistorik? Let-brug den klare historie cmdlet. Du kan også bruge den til kun at slette bestemte kommandoer., For eksempel følgende kommando vil slette kommandoer, der indeholder “hjælp” eller på “kommando” (@MS_ITPro):

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

Hvis du ønsker at føje poster til en session, skal du bruge:

Add-History

Tjek dette indlæg til nogle nyttige oplysninger om afhjælpning af historien og pre-loading historie med en liste af visse kommandoer (@MS_ITPro).,

Wherehere-Object

Wherehere-Object er en af de vigtigste cmdlets at kende, da det giver dig mulighed for at tage et datasæt og videregive det længere ned i din pipeline til filtrering (@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

Hvis du vil holde dit arbejde sikkert i produktion og forhindre ændring, skal du bruge Set-AuthenticodeSignature til at tilføje en Authenticode-signatur til et script eller en fil.

PowerShell-Kommandoer til at Få Tingene Gjort

Når det kommer til produktivitet, PowerShell kan hjælpe dig med at få tingene gjort med følgende kommandoer.

11., Foreach-Object

ForEach-Object cmdlet udfører en operation mod hvert element i en bestemt gruppe af inputobjekter. Mens mange cmdlets arbejder med alle objekter i en samling alligevel, skal du ForEach-objekt for de situationer, hvor du ønsker at foretage andre ændringer eller anvende specifik formatering til alle objekter i en samling.

Her er et eksempel (@ms_itpro)., Hvis du ønsker at vise en liste af processen navne og ønsker, at disse navne at gøre i cyan, kan du prøve følgende:

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

Men ovenstående vil producere følgende fejl:

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.

Fordi de Skriver-Vært cmdlet ikke forstår, hvad du vil gøre med de data, der sendes over rørledningen.

så ved hjælp af cmdlet ForEach-Object løser dette problem:

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

Tjek denne tutorial for mere information om ForEach-Object og arbejde med sløjfer (@tomsitpro).

12., Clear-Content

Hvis du vil slette indholdet af et element, men beholde selve elementet, bruger du cmdlet Clear-Content:

Clear-Content C:\Temp\TestFile.txt

Du kan også bruge denne kommando til at rydde indholdet af alle filer med en specificeret filtypenavn. Følgende kode ville rydde indholdet af alle filer med .txt udvidelse, for eksempel:

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

Du kan også bruge jokertegn. Plus, du kan rydde indholdet af enhver type fil, fra .t .t-filer til .doc, .xls og meget mere.

tjek dette indlæg for flere detaljer.

13., Checkpoint-Computer

Hvis du foretager større ændringer eller kører et risikabelt eksperiment, kan du indstille et gendannelsespunkt på din maskine med Checkpoint-Computer cmdlet.

Bemærk, at du kun kan oprette et gendannelsespunkt ved hjælp af denne cmdlet en gang hver 24.time. Hvis du kører kommandoen igen, vil den beholde det forrige gendannelsespunkt:

Tjek denne artikel fra MCP mag for mere (@MCPmag).

Sammenlign-objekt

det er ofte nyttigt at kunne sammenligne to objekter direkte., Du kan gøre dette ved hjælp af Sammenlign-objekt, som genererer en rapport om forskellene mellem to sæt som (@Marcam923):

15. ConvertFrom-StringData

brug ConvertFrom-StringData til at konvertere en streng, der indeholder et eller flere værdipar til en hash-tabel. Her er et eksempel på, hvordan kommandoen ser ud:

$settings = $TextData | ConvertFrom-StringData

denne kommando er nyttig i forskellige situationer, f.eks. når du vil gemme indstillingerne for et Po .ershell-script for at gøre det muligt for andre at redigere indstillingerne uden at arbejde direkte i scriptkoden.,

ConvertTo-SecureString

Konverter en krypteret standardstreng til en sikker streng eller almindelig tekst til en sikker streng ved hjælp af ConvertTo-SecureString. Denne cmdlet er anvendt i forbindelse med ConvertFrom-SecureString og Læse-Vært (@AdmArsenal):

ConvertTo-XML

Brug den ConvertTo-XML-cmdlet til at oprette en XML-baseret repræsentation af et objekt. Dette kaldes også serialisering, og det er en nyttig proces til at gemme data til senere genbrug. Bemærk, at det er vigtigt, at dit udtryk skriver objekter til rørledningen., Alt ved hjælp af skrive-vært vil ikke skrive til rørledningen og kan derfor ikke serialiseres. Her er et eksempel på ConvertTo-XML i aktion (@PetriFeed):

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

Den specifikke cmdlet, der anvendes i ovenstående eksempel, Eksport-Clixml, er velegnet til de fleste formål. Det konverterer output fra et Po .ershell-udtryk til .ml og gemmer det til en fil.

18. Ne.-AppLockerPolicy

ne. – AppLockerPolicy opretter en ny AppLocker-politik fra en liste over filoplysninger og andre regeloprettelsesmuligheder., I alt er der fem cmdlets, der giver dig mulighed for at interagere med AppLocker, herunder (@RootUsers_):

  • Get-AppLockerFileInformation: får de nødvendige oplysninger til oprettelse af AppLocker-regler fra en liste over filer eller hændelsesloggen.
  • Get-AppLockerPolicy: bruges til at hente en lokal, effektiv eller et domæne AppLocker politik.
  • ne. – AppLockerPolicy: som nævnt bruges denne cmdlet til at oprette nye AppLocker-politikker.
  • Set-AppLockerPolicy: indstiller AppLocker-politikken for et specificeret gruppepolitisk objekt.,
  • Test-AppLockerPolicy: bruges til at bestemme, om en bruger eller gruppe af brugere vil kunne udføre visse handlinger baseret på politikken.

19. Ne.-ItemProperty

ne. – ItemProperty opretter en ny egenskab for en vare og sætter dens værdi. Du kan bruge den til at oprette og ændre registreringsdatabasen værdier og data (Egenskaber for en nøgle i registreringsdatabasen), for eksempel.

Tjek denne tutorial fra mnaoumov.NET for nogle nyttige løsninger ved hjælp af denne cmdlet (@mnaoumov).

20. Ny-objekt

for at oprette en forekomst af en Microsoft .,NET Frame .ork eller Component Object Model (COM) objekt, skal du bruge den nye-objekt cmdlet.

Her er et eksempel, der opretter et nyt objekt ved hjælp af nyt objekt, gemmer det i en variabel og derefter rør det til Add-Member, som derefter tilføjer egenskaber eller metoder, der er specificeret i det oprettede objekt (@gngrninja):

21. Ny-WebServiceProxy

Ny-WebServiceProxy skaber en web service proxy-objekt, der gør det muligt for dig at bruge og administrere web service fra i PowerShell., Denne cmdlet er en smuk ting for udviklere – det gør det unødvendigt at skrive en masse af komplekse kode for at forsøge at udrette noget i PowerShell, når du bare kan ringe til en anden tjeneste, der allerede gør det muligt.

Her er et eksempel:

Nu kan du køre følgende for at få vist en liste over alle tilgængelige metoder:

$proxy | gm -memberType Method

22. Ne.-hsmaninstance

På samme måde som ne.-Newebservicepro .y skaber ne. – .smaninstance en ny forekomst af en styringsressource.,

Tjek denne tutorial for et komplet trin-for-trin eksempel på, hvordan du får de oplysninger, du har brug for for at udføre dette script med succes (@jonathanmedd).

23., Ny-WSManSessionOption

Ny-WSManSessionOption skaber en ny ledelse session hash-tabel, der er brugt som input parametre til andre WS-Management-cmdlet-kommandoer, herunder:

  • Få-WSManInstance
  • Set-WSManInstance
  • Påberåbe-WSManAction
  • Forbind-WSMan

Her er den syntaks (@SAPIENTech):

Vælg Objekt

Vælg Objekt cmdlet vælger den angivne ejendomme af en enkelt genstand eller gruppe af genstande. Derudover kan den vælge unikke objekter fra et array eller et bestemt antal objekter fra begyndelsen eller slutningen af et array.,

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

denne vejledning giver mere information om de forskellige måder, du kan bruge Select-Object (@infosectactico).

Der er andre cmdlets med lignende funktioner, herunder:

  • Select-String: finder tekst i strenge eller filer.
  • Select-Selectml: finder tekst i en stringml-streng eller et dokument.

25. Set-Alias

Set-Alias er en fantastisk kommando til forbedring af produktiviteten. Det giver dig mulighed for at indstille et alias for en cmdlet eller andet kommandoelement i den aktuelle session (svarende til en tastaturgenvej), så du kan arbejde hurtigere.,

følgende eksempel sætter Notesblok til at np i den aktuelle session, ved hjælp af Set-Alias (@powershellatoms):

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

Bemærk: du kan også tilpasse din PowerShell profil med kaldenavne, som du bruger mest (@howtogeek).

26. Set-StrictMode

Set-StrictMode etablerer og håndhæver kodningsregler i scripts, scriptblokke og udtryk. Det er en nyttig kommando til at håndhæve kodekvalitet og forhindre dig i at slappe af og skrive slurvet kode, når det er 3:00, og du har ikke haft søvn om to dage (@adbertram).,

for At bruge det, er der to parametre til at overveje: -Sluk-og -Version, og -Version har tre mulige værdier:

  • Version 1.0: Forhindrer dig i at bruge variabler, der ikke er blevet initialiseret (som Option Explicit i VBScript)
  • Version 2.0: Forhindrer dig i at bruge variabler, der ikke er blevet initialiseret, og forhindrer også kalde ikke-eksisterende egenskaber på objekter, forhindrer dig i at kalde en funktion som en metode, og forbyder oprettelse af variabler uden et navn.,
  • version seneste: denne indstilling vælger den nyeste StrictMode version tilgængelig og bruger den. Dette er en god mulighed, fordi det betyder, at den nyeste StrictMode-version bruges uanset hvilken version af Po .ershell du bruger.

vent-Job

vent-Job undertrykker kommandoprompten, indtil baggrundsjob, der kører i den aktuelle session, er afsluttet. Vent-Job viser dog ikke output fra job, men det kan bruges sammen med Modtagejob. Multithreading er mulig i Po .ershell takket være-Job.

skriv-fremskridt

hvem elsker ikke en statuslinje?, Overvåg dine fremskridt ved hjælp af skrive-Progress, som viser en statuslinje i et commandindo .s Po .ershell-kommandovindue.

Her er et eksempel, der giver dig en fuld statuslinje og runtime strings (@credera):

Cmdlets til overvågning af ydeevne, test og fejlfinding

Der er også en række cmdlets, der er nyttige til udviklere til fejlfinding, test, fejlfinding og overvågningsformål. Her er et par du behøver at vide.

Debug-Process

udviklere elsker debugging! Nå, vi kan godt lide det endnu mere, når der ikke er nogen fejl at fjerne, men desværre er det ikke altid tilfældet., Med Po .ershell kan du debug en proces ved hjælp af Debug-Process cmdlet.

Du kan også debug job ved hjælp af Debug-Job (@Ms_itpro). Og du kan indstille breakpoints eller bruge vent-Debugger cmdlet:

30. Disable-psbreakpoint

Hvis du på et tidspunkt har indstillet breakpoints, men vil fjerne dem, skal du gøre det nemt ved hjælp af Disable-psbreakpoint, som deaktiverer breakpoints i den aktuelle konsol. Her er syntaksen (@Active .perts):

Disable-PSBreakpoint Disable-PSBreakpoint 

Alternativt, hvis du vil aktivere breakpoints i den aktuelle konsol, skal du bruge Enable-psbreakpoint.,

Get-Counter

Get-Counter får real-time performance counter data fra performance monitoring instrumentation i .indo .s os. Det bruges til at få ydelsesdata fra lokale eller eksterne computere med bestemte prøveintervaller, som du angiver.

I dette eksempel, vil du få en counter sæt med en prøve interval for et bestemt maksimum prøve (@MS_ITPro):

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

I eksemplet nedenfor, kan denne kommando får specifikke counter data fra flere computere:

32., E .port-Counter

E .port-Counter eksporterer PerformanceCounterSampleSet objekter som tæller logfiler. To egenskaber er tilgængelige:

  • CounterSamples: henter og indstiller dataene for tællerne.
  • tidsstempel: henter og indstiller dato og klokkeslæt for indsamling af prøvedata.,

Og flere metoder, som alle er arvet fra Objekt:

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

For eksempel følgende kommando bruger Får Tælleren til at indsamle Processor Tid, data og eksporterer det til en .blg-fil ved hjælp af Eksport-Counter (@TechGenix):

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

33. Test-sti

Test-sti kan du kontrollere, om elementer findes i en bestemt sti., For eksempel, hvis du planlægger at bruge en anden kommando på en bestemt fil, skal du muligvis kontrollere, at filen findes for at undgå at smide en fejl.

Test-Path C:\Scripts\Archive

Hvis Mappen findes, returnerer den True; hvis den ikke gør det, returnerer den False.

det kan også arbejde med de stier, der bruges af andre Po .ershell-udbydere. For eksempel, hvis du har brug for at vide, om din computer har en miljø-variabel kaldet brugernavn, kan du bruge følgende:

Test-Path Env:\username

Test-Sti arbejder med variabler, certifikater, alias og funktioner., Tjek dette indlæg fra TechNet for flere detaljer (@ms_itpro).

34. Get-Wininevent

se på eventindo .s-begivenhedslogfiler ved hjælp af Get-.inevent. For en liste over tilgængelige logfiler, skal du bruge:

Get-WinEvent -ListLog *

Så, for at gennemgå detaljerne i en bestemt log, erstat * med navn (pipe output-format-listen for at se alle detaljer):

Get-WinEvent -ListLog $logname | fl *

Du kan også få vist alle hændelser i en log ved hjælp af:

Get-WinEvent -LogName System

Tjek denne tutorial for flere detaljer (@rakheshster).,

Invoke-Fejlfindingpakke

Fejlfindingspakker er samlinger af Po .ershell-scripts og samlinger, der hjælper dig med at fejlfinde, diagnosticere og reparere almindelige systemproblemer (@ITNinjaSite). Finde fejlfinding-pakker i:

C:\Windows\Diagnostics\System

Du kan køre dette script til at få en liste over alle de fejlfinding packs er tilgængelige på det nuværende system (@TechGenix):

Get-ChildItem C:\Windows\Diagnostic\System

Så, fra en forhøjet PowerShell vindue, skal du køre fejlfinding pack ved hjælp af denne kommando:

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

36., Mål-kommando

Hvis du vil tidsoperationer i Po .ershell, er Measure-Command en must-kno.cmdlet. Den måler, hvor længe et script eller scriptblock til at køre. Her er et eksempel (@ToddKlindt):

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

output er en Tidshorisont objekt, så det indeholder egenskaber, såsom Time, Minut, Sekund, etc., og det er nemt at skræddersy output til dine præferencer.

mål-objekt

Du vil måske også vide, hvor stort et givet objekt er., Brug foranstaltning-objekt til at beregne de numeriske egenskaber af ethvert objekt, herunder tegn, ord og linjer i en streng objekt, såsom filer af tekst.,

du skal Bare angive det navn og den form for måling at udføre, sammen med parametre som (@WindowsITPro):

  • -Sum: tilføjer værdier
  • -Gennemsnit: beregner den gennemsnitlige værdi
  • -Minimum: finder den mindste værdi
  • -Maksimum: finder den maksimale værdi

følgende kommando beløb den VirtualMemorySize ejendom værdier for alle objekter:

Get-Process | measure VirtualMemorySize -Sum

Ny-Event

Ny-Event er brugt til at oprette en ny begivenhed., En relateret cmdlet er ny-EventLog, som opretter en ny hændelseslog samt en ny begivenhedskilde på en lokal eller fjerncomputer. Hvis du har en automatisering motor understøttes af PowerShell, er det en god ide at oprette en hændelseslog (ved at oprette en brugerdefineret Event Log-Type), der logger alle meddelelser, der sendes af PowerShell. Dette er et eksempel, hvor du kan implementere brugerdefineret Logning i Event vie .er.,

Start med at oprette en ny hændelseslog Lognavn (@BundaloVladimir):

New-EventLog -LogName Troubleshooting_Log -Source FalloutApp

kør derefter følgende ved hjælp af Skriveloggen cmdlet:

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

Modtag-Job

Hvis du har brug for at få resultaterne af loggen.windowsindo .s po .ershell baggrund job i den aktuelle session, bruge modtage-job. Dette bruges normalt, når du har brugt Start-Job til at starte et job, når du har brug for at se de specifikke resultater.,

Receive-Job -Name HighMemProcess

Tjek denne nyttige vejledning om brug af Modtag-Job, og hvad du skal gøre, hvis der tilsyneladende ikke er nogen resultater (@Pro .b).

40. Registrer-EngineEvent

denne cmdlet bruges til at abonnere på de begivenheder, der genereres af Powerindo .s Po .ershell-motoren og den nye begivenhed cmdlet. For eksempel følgende kommando abonnerer på en begivenhed, når den nuværende PowerShell session afslutter og gemmer oplysninger (såsom dato og tid) til en log-fil (@jonathanmedd):

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

41., Register-ObjectEvent

Register-ObjectEvent svarer til Register-EngineEvent, men i stedet for at abonnere på hændelser, der genereres af den PowerShell-motor og Ny-Event, det tilslutter sig de begivenheder, der genereres af et Microsoft .NET Framework Objekt.

Her er et eksempel (@NetworkWorld):

Der er andre Register – cmdlet-kommandoer, som du kan finde nyttige herunder:

  • Register-PSSessionConfiguration: Opretter og registrerer en ny session konfiguration.
  • registrer-Registermievent: denne cmdlet abonnerer på en eventmi-begivenhed.

42., Fjern-begivenhed

Når du vil fjerne en begivenhed, skal du bruge cmdlet Remove-Event. Hvis du har brug for at fjerne en hel hændelseslog, skal du bruge Remove-EventLog, som sletter en hændelseslog eller afregistrerer en begivenhedskilde.

alternativt annullerer Unregistrer-Event et begivenhedsabonnement, men sletter ikke en begivenhed fra begivenhedskøen (@ss64).

43. Set-psdebug

denne cmdlet slår script debugging funktioner til og fra. Det sætter også spor niveau og skifter StrictMode.,

Ved at bruge Set-psdebug øverst i din scriptfil lige efter param () – sætningen (hvis nogen), kan du forhindre fejl med scripts, som Po .ershell ikke giver tilstrækkelige oplysninger om til fejlfinding. Her er et eksempel (@r_keith_hill):

44. Start-Sleep

Hvis du har brug for at suspendere aktiviteten i et script eller en session, skal du bruge Start-Sleep, som stopper aktiviteten i en bestemt periode.

Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx

Hvis du har brug for at sætte en eller flere kørende tjenester på pause, skal du bruge Suspend-Service.

45., Tee-objekt

Hvis du analyserer ydeevne eller kodekvalitet, er det nyttigt at kunne se output fra en kommando. Tee-objekt gemmer kommandoen output i en fil eller variabel og viser det også i konsollen, hvis det er den sidste variabel i rørledningen. Hvis det ikke er den sidste variabel i rørledningen, sender Tee-Object det ned ad rørledningen.

Her er syntaksen:

46. Test-AppLockerPolicy

Test-AppLockerPolicy vurderer, om inputfiler er tilladt at køre for en bestemt bruger baseret på den angivne AppLocker-politik.,

Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path 

Denne tutorial tilbud flere oplysninger om de tilgængelige parametre og eksempler på Test-AppLockerPolicy i aktion (@powershellhelp).

Test-ComputerSecureChannel

denne cmdlet tester og reparerer forbindelsen mellem en lokal computer og dens domæne. Uden denne kommando var den sædvanlige løsning tidligere at fjerne en computer fra sit domæne og derefter tilslutte den igen for at genoprette forholdet. Test-ComputerSecureChannel gør det muligt at genoprette forbindelsen på kortere tid (@@indo .sitpro).,

Når du er logget på som en lokal administrator, du skal blot køre følgende:

Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair

Du kan bruge Test-Forbindelse til at sende Internet Control Message Protocol (ICMP) echo request pakker (ping) til en eller flere computere.

Teststi

brug Teststi til at bestemme, om alle elementer i en sti findes. I det væsentlige hjælper det dig med at håndtere fejl, før de opstår. I sin enkleste form returnerer den True Or False (@MCPmag):

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

49. Trace-kommando

Trace-kommando konfigurerer og starter sporingen af en bestemt kommando eller udtryk., Til at bruge det, vil du også nødt til at bruge Get-TraceSource for at lede efter bestemte navne ved hjælp af jokertegn:

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

Du kan filtrere output til at matche beskrivelse til det mønster, du leder efter. Når du har identificeret det mulige sporingsnavn, bruger du Trace-kommando til at få de svar, du har brug for. Her er et eksempel:

tjek dette indlæg for flere detaljer om at spille detektiv med Trace-kommando (@Po .ershellmag).

50. Writerite-Debug

Writerite-Debug skriver en debug besked til konsollen., Når du skriver dette i en funktion eller script, gør det ikke noget som standard; meddelelserne ligger i det væsentlige på vent, indtil du enten ændrer din $DebugPreference eller aktiverer-debug-kontakten, når du kalder en funktion eller script. Når $DebugPreference er indstillet til’ spørge ‘ eller-debug s .itch er aktiveret, meddelelsen opretter et breakpoint, hvilket giver dig en nem måde at pop i debug mode.

Tag dette eksempel (@rjasonmorgan):

eksemplet ovenfor giver følgende, når du kører med-debug:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *