många utvecklare älskar PowerShell och av goda skäl: Det lägger till kraft, funktionalitet och flexibilitet i Windows-kommandotolken, där många av oss spenderar mycket tid. Det kommer dock med lite av en inlärningskurva, men när du har behärskat de viktiga kommandon du behöver veta är det produktivitet på steroider.,
PowerShell kommandon kallas cmdlets, och dessa cmdlets är drivkraften bakom dess funktionella kapacitet. Från kommandon som förbättrar den övergripande Windows-upplevelsen till kommandon som är användbara för utvecklingsarbete, det finns dussintals viktiga kommandon utvecklare bör veta., Vi har sammanställt den här listan för att fungera som en praktisk referensguide för dem som bara börjar utnyttja kraften i PowerShell, liksom de som vill jämföra sin PowerShell-upplevelse, inklusive:
- grundläggande PowerShell Cmdlets
- Powershell-kommandon för att få saker gjorda
- Cmdlets för prestandaövervakning, testning och felsökning
förutom cmdlets finns det dussintals parametrar och metoder som hjälper dig att få ut det mesta av dina manus., WhatIf-parametern är särskilt användbar för att testa PowerShell-skript utan att faktiskt köra dem (@pluralsight). Det finns vanligtvis flera parametrar och metoder tillgängliga för varje kommando. Kommandona nedan är en bra utgångspunkt för alla utvecklare, men för att fullt ut inse fördelarna bör du också behärska parametrar och andra metoder.
grundläggande PowerShell Cmdlets
dessa grundläggande PowerShell-kommandon är till hjälp för att få information i olika format, konfigurera säkerhet och grundläggande rapportering.,
Get-Command
Get-Command är en enkel att använda referens cmdlet som tar upp alla kommandon som är tillgängliga för användning i din nuvarande session.
skriv bara in det här kommandot:
get-command
utgången kommer att se ut så här (@MS_ITPro):
2. Get-Help
Get-Help-kommandot är viktigt för alla som använder PowerShell, vilket ger snabb åtkomst till den information du behöver för att köra och arbeta med alla tillgängliga kommandon.
om du ville ha några exempel, till exempel, skulle du ange följande (@jp_jofre):
3., Set-ExecutionPolicy
Microsoft inaktiverar skript som standard för att förhindra att skadliga skript körs i PowerShell-miljön. Utvecklare vill dock kunna skriva och köra skript, så kommandot Set-ExecutionPolicy kan du styra säkerhetsnivån kring PowerShell-skript. Du kan ställa in en av fyra säkerhetsnivåer:
- begränsad: det här är standardsäkerhetsnivån som blockerar PowerShell-skript från att köras. I den här säkerhetsnivån kan du bara ange kommandon interaktivt.,
- alla signerade: den här säkerhetsnivån gör att scripts endast kan köras om de är signerade av en pålitlig utgivare.
- Remote Signed: på denna säkerhetsnivå får alla PowerShell-skript som skapades lokalt köras. Skript som skapats på distans får endast köras om de har signerats av en ansedd utgivare.
- Obegränsad: som namnet antyder tillåter den obegränsade säkerhetsnivån alla skript att köras genom att ta bort alla restriktioner från exekveringspolicyn.,
På samma sätt, om du arbetar i en obekant miljö, kan du enkelt ta reda på vad den aktuella exekveringspolicyn använder det här kommandot:
Get-ExecutionPolicy
kolla in den här tråden på SuperUser för mer information om hur du konfigurerar exekveringspolicyn i PowerShell. (@StackExchange)
Get-Service
det är också bra att veta vilka tjänster som är installerade på systemet., Du kan enkelt komma åt denna information med följande kommando:
Get-Service
utgången kommer att se ut ungefär som följande (@MS_ITPro):
om du behöver veta om en specifik tjänst är installerad kan du lägga till Namnomkopplaren och namnet på tjänsten, och Windows visar tjänstens tillstånd. Dessutom kan du utnyttja filtreringsmöjligheter för att returnera en specifik delmängd av för närvarande installerade tjänster., Följande exempel kommer att resultera i en utmatning av data från Get-Service-kommandot som har kopplats till Where-Object cmdlet, som sedan filtrerar bort allt annat än de tjänster som har stoppats:
Get-Service | Where-Object {$_.status -eq "stopped"}
kolla in det här inlägget för några ytterligare exempel på Get-Service in action.
5. ConvertTo-HTML
Om du behöver extrahera data som du kan använda i en rapport eller skicka till någon annan, är ConvertTo-HTML ett enkelt sätt att göra det., För att använda den, rör utmatningen från ett annat kommando till kommandot ConvertTo-HTML och använd-Egenskapsomkopplaren för att ange vilka utgångsegenskaper du vill ha i HTML-filen. Du måste också ange ett filnamn.
till exempel skapar följande kod en HTML-sida som listar PowerShell-alias i den aktuella konsolen:
PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm
Bonus:
Export-CSV
cmdlet fungerar på ungefär samma sätt, men exporterar data till en .CSV-fil snarare än HTML., Använd
Select-Object
för att ange vilka egenskaper du vill inkludera i utmatningen.
Kolla in denna artikel från 4sysops för mer information om att använda ConvertTo-HTML effektivt (@adbertram).
6. Get-EventLog
Du kan faktiskt använda PowerShell för att tolka maskinens händelseloggar med hjälp av Get-EventLog cmdlet. Det finns flera parametrar tillgängliga. Använd-Log switch följt av namnet på loggfilen för att visa en specifik logg., Du skulle till exempel använda följande kommando för att visa programloggen:
Get-EventLog -Log "Application"
kolla in några fler exempel på Get-EventLog i åtgärd i det här inlägget (@nextofwindows). Andra vanliga parametrar inkluderar (@SS64):
- -Verbose
- -Debug
- -ErrorAction
- -ErrorVariable
- -WarningAction
- -WarningVariable
- -OutBuffer
- -OutVariable
Get-Process
ungefär som att få en lista över tillgängliga tjänster är det ofta användbart att kunna få en snabb lista över alla pågående processer., Kommandot Get-Process sätter denna information till hands.
Bonus: Använd Stop-Process för att stoppa processer som är frysta eller inte längre svarar. Om du inte är säker på vilken process som håller dig uppe, använd Get-Process för att snabbt identifiera den problematiska processen. När du har namnet eller process-ID, använd Stop-Process för att avsluta det.
här är ett exempel., Kör det här kommandot för att avsluta alla pågående instanser av anteckningar (@MS_ITPro):
Stop-Process -processname notepad
Du kan också använda jokertecken, till exempel följande exempel som avslutar alla instanser av anteckningsblock samt andra processer som börjar med OBS:
Stop-Process -processname note*
kolla in det här inlägget för mer information om dödande processer med PowerShell (@howtogeek):
8. Clear-History
vad händer om du vill rensa posterna från din kommandohistorik? Lätt att använda Clear-History cmdlet. Du kan också använda den för att ta bort endast specifika kommandon., Till exempel skulle följande kommando ta bort kommandon som inkluderar ”hjälp” eller sluta i ”kommando” (@MS_ITPro):
PS C:\> Clear-History -Command *help*, *command
om du vill lägga till poster i en session, använd:
Add-History
kolla in det här inlägget för lite användbar information om att rensa historiken och förinstallera historiken med en lista med vissa kommandon (@MS_ITPro).,
Where-Object
Where-Object är en av de viktigaste cmdlets att veta, eftersom det gör att du kan ta en datauppsättning och skicka den längre ner din pipeline för 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
om du vill hålla ditt arbete säkert i produktion och förhindra modifiering, använd Set-AuthenticodeSignature för att lägga till en Authenticode-signatur i ett skript eller en fil.
Powershell-kommandon för att få saker gjorda
När det gäller produktivitet kan PowerShell hjälpa dig att få saker gjorda med följande kommandon.
11., ForEach-Object
cmdlet ForEach-Object utför en åtgärd mot varje objekt i en angiven grupp av ingångsobjekt. Medan många cmdlets arbetar med varje objekt i en samling ändå, behöver du förvarje objekt för de situationer där du vill göra andra ändringar eller tillämpa specifik formatering för alla objekt i en samling.
här är ett exempel (@MS_ITPro)., Om du vill visa en lista med processnamn och vill att dessa namn ska renderas i cyan, kan du prova följande:
Get-Process | Write-Host $_.name -foregroundcolor cyan
men ovanstående kommer att producera följande fel:
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.
eftersom Skrivvärd cmdlet inte förstår vad du vill göra med de data som skickas över rörledningen.
så, med hjälp av ForEach-Object cmdlet löser detta problem:
Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}
kolla in den här handledningen för mer information om ForEach-objekt och arbeta med slingor (@tomsitpro).
12., Clear-Content
om du vill ta bort innehållet i ett objekt men behålla själva objektet, använder du Clear-Content cmdlet:
Clear-Content C:\Temp\TestFile.txt
Du kan också använda det här kommandot för att rensa innehållet i alla filer med ett angivet filtillägg. Följande kod skulle rensa innehållet i alla filer med .Txt-tillägg, till exempel:
Clear-Content -path * -filter *.TXT –force
Du kan också använda jokertecken. Dessutom kan du rensa innehållet i någon typ av fil, från .txt-filer till .doc, .xls, och mer.
kolla in det här inlägget för mer information.
13., Checkpoint-Computer
om du gör stora ändringar eller kör ett riskabelt experiment kan du ställa in en återställningspunkt på datorn med Checkpoint-Computer cmdlet.
Observera att du endast kan skapa en återställningspunkt med denna cmdlet en gång var 24: e timme. Om du kör kommandot igen kommer det att hålla föregående återställningspunkt:
kolla in den här artikeln från MCP Mag för mer (@MCPmag).
Compare-Object
det är ofta bra att kunna jämföra två objekt direkt., Du kan göra detta med Compare-Object, som genererar en rapport om skillnaderna mellan två uppsättningar som (@Marcam923):
15. ConvertFrom-StringData
använd ConvertFrom-StringData för att konvertera en sträng som innehåller ett eller flera värdepar till en hashtabell. Här är ett exempel på hur kommandot ser ut:
$settings = $TextData | ConvertFrom-StringData
det här kommandot är användbart i olika situationer, till exempel när du vill spara inställningarna för ett PowerShell-skript för att göra det möjligt för andra att redigera inställningarna utan att arbeta i scriptkoden direkt.,
ConvertTo-SecureString
konvertera en krypterad standardsträng till en säker sträng eller vanlig text till en säker sträng med ConvertTo-SecureString. Denna cmdlet används tillsammans med ConvertFrom-SecureString och Read-Host (@AdmArsenal):
ConvertTo-XML
använd ConvertTo-XML cmdlet för att skapa en XML-baserad representation av ett objekt. Detta kallas också serialisering, och det är en användbar process för att spara data för senare återanvändning. Observera att det är viktigt att ditt uttryck skriver objekt till rörledningen., Allt som använder Skrivvärd kommer inte att skriva till rörledningen och kan därför inte serialiseras. Här är ett exempel på ConvertTo-XML in action (@PetriFeed):
Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml
den specifika cmdlet som används i exemplet ovan, Export-Clixml, är lämplig för de flesta ändamål. Den konverterar utdata från ett PowerShell uttryck till XML och sparar den till en fil.
18. New-AppLockerPolicy
New-AppLockerPolicy skapar en ny Applockerpolicy från en lista med Filinformation och andra alternativ för att skapa regler., Totalt finns det fem cmdlets som gör att du kan interagera med AppLocker, inklusive (@RootUsers_):
- Get-AppLockerFileInformation: får den information som krävs för att skapa Applockerregler från en lista med filer eller händelseloggen.
- Get-AppLockerPolicy: används för att hämta en lokal, effektiv eller en domän AppLocker-policy.
- New-AppLockerPolicy: som nämnts används denna cmdlet för att skapa nya Applockerpolicyer.
- Set-AppLockerPolicy: ställer in Applockerpolicyn för ett angivet grupprincipobjekt.,
- Test-AppLockerPolicy: används för att avgöra om en användare eller grupp av användare kommer att kunna utföra vissa åtgärder baserat på policyn.
19. New-ItemProperty
New-ItemProperty skapar en ny egenskap för ett objekt och anger dess värde. Du kan använda den för att skapa och ändra registervärden och data (egenskaper för en registernyckel), till exempel.
kolla in denna handledning från mnaoumov.NET för några användbara lösningar som använder denna cmdlet (@mnaoumov).
20. Nya Objekt
för Att skapa en instans av Microsoft .,NET Framework eller Component Object Model (COM)-objektet, använd det nya objektet cmdlet.
här är ett exempel som skapar ett nytt objekt med nytt objekt, lagrar det i en variabel, sedan rör det till Tilläggsmedlem, som sedan lägger till Egenskaper eller metoder som anges i objektet skapat (@gngrninja):
21. New-WebServiceProxy
New-WebServiceProxy skapar en webbtjänst proxy objekt som gör att du kan använda och hantera webbtjänsten inifrån PowerShell., Denna cmdlet är en vacker sak för utvecklare – det gör det onödigt att skriva mycket komplex kod för att försöka uppnå något i PowerShell när du helt enkelt kan ringa en annan tjänst som redan gör det möjligt.
här är ett exempel:
Nu kan du köra följande för att visa en lista över alla tillgängliga metoder:
$proxy | gm -memberType Method
22. New-WSManInstance
På samma sätt som New-WebServiceProxy skapar New-wsmaninstance en ny instans av en hanteringsresurs.,
kolla in denna handledning för ett komplett steg för steg exempel på hur du får den information du behöver för att utföra detta skript framgångsrikt (@jonathanmedd).
23., New-WSManSessionOption
New-WSManSessionOption skapar en ny förvaltning session hash tabell som används som indataparametrar till andra WS-Management cmdlets inklusive:
- Get-WSManInstance
- Set-WSManInstance
- åberopa-WSManAction
- Connect-wsman
här är syntaxen (@WSMANSESSIONOPTION)WSMANSESSIONOPTION
ny-wsmansessionoption skapar en ny förvaltningssession hash tabell som används som indataparametrar till andra WS-Management cmdlets inklusive:
- Get-Wsmaninstance
- sapientech):
select-object
cmdlet select-object väljer de angivna egenskaperna för ett enskilt objekt eller en grupp av objekt. Dessutom kan det välja unika objekt från en array eller ett visst antal objekt från början eller slutet av en array.,
PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4
denna handledning ger mer information om de olika sätt du kan använda Select-Object (@infosectactico).
det finns andra cmdlets med liknande funktioner, inklusive:
- Select-String: hittar text i strängar eller filer.
- Select-XML: hittar text i en XML-sträng eller ett XML-dokument.
25. Set-Alias
Set-Alias är ett utmärkt kommando för att öka produktiviteten. Det låter dig ställa in ett alias för en cmdlet eller annat kommandoelement i den aktuella sessionen (liknar en tangentbordsgenväg) så att du kan arbeta snabbare.,
följande exempel ställer Anteckningar till np i den aktuella sessionen med hjälp av Set-Alias (@powershellatoms):
New-Alias np c:\windows\system32\notepad.exe
Observera att du kan också anpassa din PowerShell profil med de alias som du använder mest (@howtogeek).
26. Set-StrictMode
Set-StrictMode fastställer och tillämpar kodningsregler i skript, scriptblock och uttryck. Det är ett användbart kommando för att upprätthålla kodkvalitet och hindra dig från att slacka av och skriva slarvig kod när det är 3:00 och du har inte haft någon sömn på två dagar (@adbertram).,
för att använda den finns det två parametrar att överväga: -Off och-Version, och-Version har tre möjliga värden:
- Version 1.0: hindrar dig från att använda variabler som inte har initierats (till exempel alternativ Explicit i VBScript)
- Version 2.0: hindrar dig från att använda variabler som inte har initierats och förhindrar även Anropet av obefintliga egenskaper på objekt, hindrar dig från att anropa en funktion som en metod och förbjuder skapandet av variabler utan namn.,
- Version Senaste: det här alternativet väljer den senaste StrictMode versionen tillgänglig och använder den. Detta är ett bra alternativ eftersom det innebär att den senaste StrictMode versionen används oavsett vilken version av PowerShell du använder.
vänta-jobb
vänta-jobb undertrycker kommandotolken tills bakgrundsjobb som körs i den aktuella sessionen är klara. Wait-Job visar dock inte produktionen från jobb, men den kan användas tillsammans med Receive-Job. Flertrådsteknik är möjligt i PowerShell tack vare Jobb.
Write-Progress
vem älskar inte en statusfältet?, Övervaka dina framsteg med Skriv framsteg, som visar en förloppsindikator i ett Windows PowerShell kommandofönster.
här är ett exempel som ger dig en fullständig förloppsindikator och runtime strängar (@credera):
Cmdlets för prestandaövervakning, testning och felsökning
det finns också en mängd cmdlets användbara för utvecklare för felsökning, testning, felsökning och övervakning. Här är några du behöver veta.
Debug-Process
Utvecklare älskar felsökning! Tja, vi gillar det ännu mer när det inte finns några buggar att eliminera, men tyvärr är det inte alltid fallet., Med PowerShell kan du felsöka en process med hjälp av Debug-process cmdlet.
Du kan också felsöka jobb med Debug-Job (@MS_ITPro). Och du kan ställa in brytpunkter eller använda Wait-Debugger cmdlet:
30. Disable-PSBreakpoint
om du samtidigt har inställda brytpunkter men vill eliminera dem, gör det enkelt med Disable-PSBreakpoint, vilket inaktiverar brytpunkter i den aktuella konsolen. Här är syntaxen (@ActiveXperts):
Disable-PSBreakpoint Disable-PSBreakpoint
alternativt, om du vill aktivera brytpunkter i den aktuella konsolen, använd Enable-PSBreakpoint.,
Get-Counter
Get-Counter får realtid prestanda räknare data från prestandaövervakning instrumentering i Windows OS. Det används för att få prestandadata från lokala eller fjärrdatorer med specifika provintervall som du anger.
i det här exemplet får du en räkneuppsättning med ett provintervall för ett angivet maximalt prov (@MS_ITPro):
PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
i exemplet nedan får det här kommandot specifika räknedata från flera datorer:
32., Exporträknare
Exporträknare export PerformanceCounterSampleSet objekt som räknare loggfiler. Två egenskaper är tillgängliga:
- CounterSamples: hämtar och ställer in data för räknarna.
- tidsstämpel: hämtar och ställer in datum och tid då provdata samlades in.,
och flera metoder, som alla är ärvda från objekt:
- är lika med(objekt)
- slutföra()
- GetHashCode()
- GetType()
- MemberwiseClone()
- ToString()
till exempel använder följande kommando Get-Counter för att samla in Processortidsdata och export det till en .blg-fil med Exporträknare (@TechGenix):
Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg
33. Test-Path
Test-Path låter dig kontrollera om objekt finns i en angiven sökväg., Till exempel, om du planerar att använda ett annat kommando på en viss fil, kan du behöva kontrollera att filen finns för att undvika att kasta ett fel.
Test-Path C:\Scripts\Archive
om mappen finns kommer den att returnera True; om den inte gör det kommer den att returnera False.
det kan också fungera med de vägar som används av andra PowerShell-leverantörer. Om du till exempel behöver veta om datorn har en miljövariabel som heter användarnamn kan du använda följande:
Test-Path Env:\username
Testvägen fungerar med variabler, certifikat, alias och funktioner., Kolla in det här inlägget från TechNet för mer information (@MS_ITPro).
34. Få-WinEvent
Titta på Windows händelseloggar med hjälp av Get-WinEvent. För en lista över tillgängliga loggar, använd:
Get-WinEvent -ListLog *
för att granska detaljerna i en specifik logg, ersätt * med namnet (rör utmatningen till format-lista för att visa alla detaljer):
Get-WinEvent -ListLog $logname | fl *
Du kan också visa alla händelser i en logg med hjälp av:
Get-WinEvent -LogName System
kolla in denna handledning för mer information (@rakheshster).,
Invoke-TroubleshootingPack
Felsökningspaket är samlingar av PowerShell-skript och sammansättningar som hjälper dig att felsöka, diagnostisera och reparera vanliga systemproblem (@ITNinjaSite). Hitta felsökningspaket på:
C:\Windows\Diagnostics\System
Du kan köra det här skriptet för att få en lista över alla felsökningspaket som finns tillgängliga på det aktuella systemet (@TechGenix):
Get-ChildItem C:\Windows\Diagnostic\System
sedan, från ett förhöjt PowerShell-fönster, kör ett felsökningspaket med det här kommandot:
Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)
36., Measure-Command
Om du vill tidsoperationer i PowerShell är measure-Command ett måste-vet cmdlet. Det mäter hur länge ett skript eller scriptblock ska köras. Här är ett exempel (@ToddKlindt):
Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }
utgången är ett timespan-objekt, så det innehåller egenskaper som timme, minut, sekund, etc., och det är lätt att skräddarsy utmatningen till dina önskemål.
Measure-Object
Du kanske också vill veta hur stort ett visst objekt är., Använd Measure-Object för att beräkna numeriska egenskaper för ett objekt, inklusive tecken, ord och rader i ett strängobjekt, till exempel textfiler.,
Ange bara namnet och typen av mätning att utföra, tillsammans med parametrar som (@WindowsITPro):
- -Sum: lägger till värden
- -Average: beräknar medelvärdet
- -Minimum: hittar minimivärdet
- -Maximum: hittar det maximala värdet
följande kommando summerar VirtualMemorySize egenskapsvärden för alla processobjekt:
Get-Process | measure VirtualMemorySize -Sum
ny-händelse
ny-händelse används för att skapa en ny händelse., En relaterad cmdlet är New-EventLog, vilket skapar en ny händelselogg samt en ny händelsekälla på en lokal eller fjärrdator. Om du har en automationsmotor som stöds av PowerShell är det en bra praxis att ställa in en händelselogg (genom att skapa en anpassad Händelseloggstyp) som loggar alla meddelanden som skickas av PowerShell. Detta är ett exempel där du kan implementera Anpassad loggning i Event Viewer.,
börja med att skapa en ny Händelselogg LogName (@BundaloVladimir):
New-EventLog -LogName Troubleshooting_Log -Source FalloutApp
för att skicka meddelanden till din nya händelselogg, kör följande med Skrivloggen cmdlet:
Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"
Mottagningsjobb
om du behöver få resultaten av Windows PowerShell bakgrundsjobb i den aktuella sessionen, använd receive-job. Detta används vanligtvis efter att ha använt Start-Job för att börja ett jobb när du behöver visa de specifika resultaten.,
Receive-Job -Name HighMemProcess
kolla in den här användbara handledningen om hur du använder Receive-Job och vad du ska göra om det inte finns några resultat (@proxb).
40. Registrera-EngineEvent
denna cmdlet används för att prenumerera på händelserna som genereras av Windows PowerShell-motorn och den nya händelsen cmdlet. Följande kommando prenumererar till exempel på en händelse när den aktuella PowerShell-sessionen avslutar och sparar information (t.ex. datum och tid) till en loggfil (@jonathanmedd):
Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}
41., Register-ObjectEvent
Registrera-ObjectEvent är liknande för att Registrera dig-EngineEvent, men i stället för att prenumerera på händelser som genereras av PowerShell motor och Ny-Händelse, och det ansluter sig till de händelser som genereras av ett Microsoft .NET Framework Objekt.
här är ett exempel (@NetworkWorld):
det finns andra Register – cmdlets som du kan hitta användbara inklusive:
- registrera-Pssessionconfiguration: skapar och registrerar en ny sessionskonfiguration.
- Registrera-WmiEvent: Denna cmdlet prenumererar till en WMI händelse.
42., Remove-Event
När du vill ta bort en händelse använder du cmdlet Remove-Event. Om du behöver ta bort en hel händelselogg använder du Remove-EventLog, som tar bort en händelselogg eller avregistrerar en händelselogg.
alternativt avbryter avregistrering-Event en händelseprenumeration men tar inte bort en händelse från händelsekön (@SS64).
43. Set-PSDebug
denna cmdlet aktiverar och stänger av scriptdebuggningsfunktioner. Det ställer också spårnivån och växlar StrictMode.,
genom att använda Set-PSDebug högst upp i scriptfilen strax efter param () – satsen (om någon) kan du förhindra fel med skript som PowerShell inte ger tillräcklig information om för felsökning. Här är ett exempel (@r_keith_hill):
44. Start-Sleep
om du behöver avbryta aktiviteten i ett skript eller en session, använd Start-Sleep, vilket stoppar aktiviteten under en viss tidsperiod.
Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx
om du behöver pausa en eller flera tjänster som körs skulle du använda Avstängningstjänsten.
45., Tee-Object
om du analyserar prestanda eller kodkvalitet är det användbart att kunna visa utmatningen från ett kommando. Tee-Object lagrar kommandoutmatningen i en fil eller variabel och visar den också i konsolen om det är den sista variabeln i rörledningen. Om det inte är den sista variabeln i rörledningen, skickar Tee-objektet ner rörledningen.
här är syntaxen:
46. Test-AppLockerPolicy
Test-AppLockerPolicy utvärderar om indatafiler får köras för en viss användare baserat på den angivna Applockerpolicyn.,
Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path
denna handledning ger mer information om tillgängliga parametrar och exempel på Test-AppLockerPolicy i aktion (@powershellhelp).
Test-ComputerSecureChannel
denna cmdlet testar och reparerar anslutningen mellan en lokal dator och dess domän. Utan det här kommandot var den vanliga lösningen tidigare att ta bort en dator från sin domän och sedan återansluta den för att återupprätta förhållandet. Test-ComputerSecureChannel gör det möjligt att återupprätta anslutningen på kortare tid (@WindowsITPro).,
När du är inloggad som lokal administratör, kör du bara följande:
Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair
Du kan använda test-anslutning för att skicka Internet Control Message Protocol (ICMP) echo request packets (pings) till en eller flera datorer.
Testväg
använd Testväg för att avgöra om alla delar av en sökväg finns. I huvudsak hjälper det dig att hantera fel innan de uppstår. I sin enklaste form returnerar den Sant eller falskt (@MCPmag):
PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse
49. Trace-Command
Trace-Command konfigurerar och startar spårningen av ett angivet kommando eller uttryck., För att använda den måste du också använda Get-TraceSource för att leta efter specifika namn med jokertecken:
PS> Get-TraceSource -Name *param*
Du kan filtrera utdata för att matcha beskrivningen med mönstret du är ute efter. När du har identifierat det möjliga spårnamnet använder du Trace-kommandot för att få de svar du behöver. Här är ett exempel:
kolla in det här inlägget för mer information om att spela detektiv med Trace-Command (@PowerShellMag).
50. Write-Debug
Write-Debug skriver ett felsökningsmeddelande till konsolen., När du skriver detta i en funktion eller script, det gör inte något som standard; meddelandena i huvudsak låg på lur tills du antingen ändra din $DebugPreference eller aktivera-debug switch när du ringer en funktion eller script. När $DebugPreference är inställd på ”inquire” eller-debug-omkopplaren är aktiverad skapar meddelandet en brytpunkt, vilket ger dig ett enkelt sätt att dyka in i felsökningsläge.
ta det här exemplet (@RJasonMorgan):
exemplet ovan ger följande vid körning med-debug:
Lämna ett svar