veel ontwikkelaars houden van PowerShell, en voor een goede reden: het voegt kracht, functionaliteit en flexibiliteit toe aan de Windows-opdrachtprompt, waar velen van ons veel tijd doorbrengen. Het komt echter met een beetje een leercurve, maar als je eenmaal de essentiële commando ‘ s Onder de knie hebt die je moet weten, is het productiviteit op steroïden.,
PowerShell commando ‘ s staan bekend als cmdlets, en deze cmdlets zijn de drijvende kracht achter de functionele mogelijkheden. Van commando ’s die de algehele Windows-ervaring verbeteren tot commando’ s die nuttig zijn voor ontwikkelingswerk, er zijn tientallen belangrijke commando ‘ s die ontwikkelaars moeten weten., We hebben samen deze lijst om te dienen als een handig naslagwerk voor degenen die net beginnen om de kracht van PowerShell, evenals degenen die willen om het niveau van hun PowerShell-ervaring, waaronder:
- Basic PowerShell-Cmdlets
- PowerShell Commando ‘ s om Dingen Gedaan te Krijgen
- Cmdlets voor het Monitoren van Prestaties, het Testen en Debuggen
naast cmdlets er zijn tientallen parameters en methoden die u helpen om het meeste uit uw scripts., De WhatIf parameter is vooral handig voor het testen van PowerShell scripts zonder ze daadwerkelijk uit te voeren (@pluralsight). Er zijn doorgaans verschillende parameters en methoden beschikbaar voor elk commando. De onderstaande commando ‘ s zijn een goed uitgangspunt voor elke ontwikkelaar, maar om de voordelen volledig te realiseren, moet je parameters en andere methoden ook beheersen.
basis PowerShell-Cmdlets
Deze Basispowershell-opdrachten zijn nuttig voor het verkrijgen van informatie in verschillende formaten, het configureren van beveiliging en basisrapportage.,
Get-Command
Get-Command is een eenvoudig te gebruiken referentie-cmdlet die alle commando ‘ s weergeeft die beschikbaar zijn voor gebruik in uw huidige sessie.
Typ gewoon dit commando in:
get-command
De uitvoer zal er ongeveer zo uitzien (@MS_ITPro):
2. Get-Help
Het Get-Help commando is essentieel voor iedereen die PowerShell gebruikt, en biedt snelle toegang tot de informatie die je nodig hebt om alle beschikbare commando ‘ s uit te voeren en te werken.
Als u een aantal voorbeelden wilt, bijvoorbeeld, voer dan het volgende in (@jp_jofre):
3., Set-ExecutionPolicy
Microsoft schakelt standaard scripts uit om te voorkomen dat kwaadaardige scripts worden uitgevoerd in de PowerShell-omgeving. Ontwikkelaars willen echter scripts kunnen schrijven en uitvoeren, dus het commando Set-ExecutionPolicy stelt je in staat om het beveiligingsniveau rondom PowerShell scripts te bepalen. U kunt een van de vier beveiligingsniveaus instellen:
- Restricted: dit is het standaard beveiligingsniveau dat het uitvoeren van PowerShell-scripts blokkeert. In dit beveiligingsniveau kunt u alleen interactief opdrachten invoeren.,
- all Signed: met dit beveiligingsniveau kunnen scripts alleen worden uitgevoerd als ze zijn ondertekend door een betrouwbare uitgever.
- Remote Signed: In dit beveiligingsniveau mogen alle PowerShell-scripts die lokaal zijn gemaakt, worden uitgevoerd. Scripts die op afstand zijn gemaakt, mogen alleen worden uitgevoerd als ze zijn ondertekend door een gerenommeerde uitgever.
- onbeperkt: zoals de naam al doet vermoeden, staat het onbeperkte beveiligingsniveau alle scripts toe om te draaien door alle beperkingen uit het uitvoerbeleid te verwijderen.,
Als u in een onbekende omgeving werkt, kunt u eenvoudig achterhalen wat het huidige uitvoerbeleid is met behulp van dit commando:
Get-ExecutionPolicy
bekijk deze thread op SuperUser voor meer informatie over het configureren van het uitvoerbeleid in PowerShell. (@StackExchange)
Get-Service
Het is ook handig om te weten welke services op het systeem zijn geïnstalleerd., U kunt eenvoudig toegang krijgen tot deze informatie met het volgende commando:
Get-Service
De uitvoer zal er ongeveer als volgt uitzien (@ms_itpro):
Als u wilt weten of een specifieke service is geïnstalleerd, kunt u de-Name-schakelaar en de naam van de service toevoegen, en Windows zal de status van de service tonen. Daarnaast kunt u filtermogelijkheden gebruiken om een specifieke subset van momenteel geïnstalleerde services te retourneren., Het volgende voorbeeld zal resulteren in een uitvoer van gegevens van het Get-Service commando dat is doorgesluisd naar de Where-Object cmdlet, die dan alles filtert buiten de services die gestopt zijn:
Get-Service | Where-Object {$_.status -eq "stopped"}
Bekijk dit bericht voor enkele extra voorbeelden van Get-Service in actie.
5. ConvertTo-HTML
Als u gegevens wilt extraheren die u kunt gebruiken in een rapport of naar iemand anders kunt verzenden, is de ConvertTo-HTML een eenvoudige manier om dit te doen., Om het te gebruiken, pijp je de uitvoer van een ander commando naar het ConvertTo-HTML commando en gebruik je de-Property schakelaar om aan te geven welke uitvoereigenschappen je wilt in het HTML bestand. U moet ook een bestandsnaam opgeven.
bijvoorbeeld, de volgende code maakt een HTML-pagina aan die de PowerShell aliassen in de huidige console weergeeft:
PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm
Bonus: de
Export-CSV
cmdlet functies op vrijwel dezelfde manier, maar exporteert gegevens naar a .CSV-bestand in plaats van HTML., Gebruik
Select-Object
om aan te geven welke eigenschappen u in de uitvoer wilt opnemen.
Bekijk dit artikel van 4sysops voor meer informatie over het effectief gebruiken van ConvertTo-HTML (@adbertram).
6. Get-EventLog
U kunt PowerShell gebruiken om de gebeurtenislogboeken van uw machine te ontleden met behulp van de Get-EventLog cmdlet. Er zijn verschillende parameters beschikbaar. Gebruik de schakelaar-Log gevolgd door de naam van het logbestand om een specifiek logbestand te bekijken., Je zou bijvoorbeeld het volgende commando gebruiken om het toepassingslogboek te bekijken:
Get-EventLog -Log "Application"
Bekijk nog een paar voorbeelden van Get-EventLog in actie in dit bericht (@nextofwindows). Andere veel voorkomende parameters zijn (@SS64):
- -Verbose
- Debug
- -ErrorAction
- -ErrorVariable
- -WarningAction
- -WarningVariable
- -OutBuffer
- -OutVariable
Get-Proces
Veel als het krijgen van een lijst van aangeboden diensten, het is vaak nuttig om te worden in staat om snel een lijst van alle actieve processen., Het Get-Process Commando plaatst deze informatie binnen handbereik.
Bonus: Gebruik Stop-proces om processen te stoppen die bevroren zijn of niet meer reageren. Als u niet zeker weet welk proces u omhoog houdt, gebruik Get-proces om snel het problematische proces te identificeren. Zodra u de naam of proces-ID hebt, gebruikt u Stop-proces om het te beëindigen.
Hier is een voorbeeld., Voer dit commando uit om alle momenteel draaiende exemplaren van Kladblok (@MS_ITPro) te beëindigen:
Stop-Process -processname notepad
u kunt ook jokertekens gebruiken, zoals het volgende voorbeeld dat alle exemplaren van Kladblok beëindigt evenals alle andere processen die beginnen met Opmerking:
Stop-Process -processname note*
Bekijk dit bericht voor meer informatie over het doden van processen met PowerShell (@HowToGeek):
8. Clear-History
Wat als u de items uit uw commandogeschiedenis wilt wissen? Eenvoudig te gebruiken de Clear-History cmdlet. U kunt het ook gebruiken om alleen specifieke commando ‘ s te verwijderen., Het volgende commando zou bijvoorbeeld commando ‘ s verwijderen die “help” bevatten of eindigen op “command”(@ms_itpro):
PS C:\> Clear-History -Command *help*, *command
Als u items aan een sessie wilt toevoegen, gebruik dan:
Add-History
Bekijk dit bericht voor nuttige informatie over het wissen van de geschiedenis en het vooraf laden van de geschiedenis met een lijst van bepaalde commando ‘ s (@ms_itpro).,
waar-Object
waar-Object is een van de belangrijkste cmdlets om te weten, omdat het u in staat stelt om een dataset te nemen en deze verder door te geven in uw pijplijn voor filtering (@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
Als u uw werk veilig wilt houden tijdens de productie en wijzigingen wilt voorkomen, gebruikt u Set-AuthenticodeSignature om een Authenticode-handtekening toe te voegen aan een script of bestand.
PowerShell-opdrachten om dingen gedaan te krijgen
als het gaat om productiviteit, kan PowerShell u helpen om dingen gedaan te krijgen met de volgende opdrachten.
11., ForEach-Object
de cmdlet foreach-Object voert een bewerking uit tegen elk item in een opgegeven groep invoerobjecten. Hoewel veel cmdlets toch met elk object in een collectie werken, heb je ForEach-Object nodig voor die situaties waarin je andere wijzigingen wilt aanbrengen of specifieke opmaak wilt toepassen op alle objecten in een collectie.
Hier is een voorbeeld (@ms_itpro)., Als u een lijst met procesnamen wilt weergeven en deze namen in cyaan wilt weergeven, kunt u het volgende proberen:
Get-Process | Write-Host $_.name -foregroundcolor cyan
maar het bovenstaande geeft de volgende fout:
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.
omdat de Write-Host cmdlet niet begrijpt wat u wilt doen met de gegevens die via de pijplijn worden verzonden.
So, using the ForEach-Object cmdlet lost dit probleem op:
Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}
bekijk deze tutorial voor meer informatie over ForEach-Object en werken met loops (@tomsitpro).
12., Clear-Content
Als u de inhoud van een item wilt verwijderen maar het item zelf wilt behouden, gebruikt u de clear-Content cmdlet:
Clear-Content C:\Temp\TestFile.txt
u kunt dit commando ook gebruiken om de inhoud van alle bestanden met een opgegeven bestandsextensie te wissen. De volgende code zou de inhoud van alle bestanden te wissen met de .txt extensie, bijvoorbeeld:
Clear-Content -path * -filter *.TXT –force
u kunt ook jokertekens gebruiken. Plus, kunt u de inhoud van elk type bestand te wissen, van .txt bestanden naar .dokter, .xls, en meer.
Bekijk dit bericht voor meer details.
13., Checkpoint-Computer
Als u belangrijke wijzigingen aanbrengt of een riskant experiment uitvoert, kunt u een herstelpunt instellen op uw machine met de Checkpoint-Computer cmdlet.
merk op dat u slechts één keer per 24 uur een herstelpunt kunt maken met deze cmdlet. Als je het commando opnieuw uitvoert, zal het het vorige herstelpunt behouden:
Bekijk dit artikel van MCP Mag voor meer (@MCPmag).
vergelijk-Object
Het is vaak nuttig om twee objecten direct te kunnen vergelijken., U kunt dit doen met vergelijk-Object, dat een rapport genereert over de verschillen tussen twee verzamelingen zoals (@Marcam923):
15. ConvertFrom-StringData
gebruik ConvertFrom-StringData om een string met een of meer waardeparen om te zetten in een hash tabel. Hier is een voorbeeld van hoe het commando eruit ziet:
$settings = $TextData | ConvertFrom-StringData
Dit commando is nuttig in een verscheidenheid van situaties, zoals wanneer u de instellingen voor een PowerShell-script wilt opslaan om anderen in staat te stellen de instellingen te bewerken zonder direct in de scriptcode te werken.,
ConvertTo-SecureString
converteer een versleutelde standaardtekst naar een secure string of platte tekst naar een secure string met behulp van ConvertTo-SecureString. Deze cmdlet wordt gebruikt in combinatie met ConvertFrom-SecureString en Read-Host (@AdmArsenal):
ConvertTo-XML
Gebruik de cmdlet ConvertTo-XML om een XML-gebaseerde representatie van een object te maken. Dit wordt ook serialisatie genoemd, en het is een nuttig proces voor het opslaan van gegevens voor later hergebruik. Merk op dat het belangrijk is dat je expressie objecten naar de pijplijn schrijft., Alles wat Write-Host gebruikt, zal niet naar de pijplijn schrijven en kan daarom niet geserialiseerd worden. Hier is een voorbeeld van ConvertTo-XML in actie (@PetriFeed):
Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml
de specifieke cmdlet gebruikt in het bovenstaande voorbeeld, Export-Clixml, is geschikt voor de meeste doeleinden. Het converteert de uitvoer van een PowerShell expressie naar XML en slaat het op in een bestand.
18. Nieuw-AppLockerPolicy
Nieuw-AppLockerPolicy maakt een nieuw AppLocker-beleid aan op basis van een lijst met bestandsinformatie en andere opties voor het maken van regels., In totaal zijn er vijf cmdlets waarmee u kunt communiceren met AppLocker, waaronder (@RootUsers_):
- Get-AppLockerFileInformation: haalt de vereiste informatie voor het maken van AppLocker-regels uit een lijst met bestanden of het gebeurtenislogboek.
- Get-AppLockerPolicy: wordt gebruikt om een lokaal, effectief of domeinapplocker-beleid op te halen.
- Nieuw-AppLockerPolicy: zoals gezegd wordt deze cmdlet gebruikt voor het maken van Nieuw AppLocker-beleid.
- Set-AppLockerPolicy: stelt het AppLocker-beleid in voor een opgegeven groepsbeleidsobject.,
- Test-AppLockerPolicy: wordt gebruikt om te bepalen of een gebruiker of groep gebruikers in staat zal zijn bepaalde acties uit te voeren op basis van het beleid.
19. New-ItemProperty
New-ItemProperty maakt een nieuwe eigenschap aan voor een item en stelt de waarde ervan in. U kunt het gebruiken om registerwaarden en gegevens (eigenschappen van een registersleutel) te maken en te wijzigen, bijvoorbeeld.
bekijk deze tutorial uit mnaoumov.NET voor een aantal nuttige oplossingen met behulp van deze cmdlet (@mnaoumov).
20. Nieuw-Object
om een exemplaar van een Microsoft aan te maken .,NET Framework of COM-object (Component Object Model), gebruik de cmdlet nieuw-Object.
Hier is een voorbeeld dat een nieuw object maakt met behulp van New-Object, het opslaat in een variabele, het vervolgens pipes naar Add-Member, die vervolgens Eigenschappen of methoden toevoegt die gespecificeerd zijn in het gemaakte object (@gngrninja):
21. New-WebServiceProxy
New-WebServiceProxy maakt een webserviceproxy-object waarmee u de webservice vanuit PowerShell kunt gebruiken en beheren., Deze cmdlet is een mooi ding voor ontwikkelaars – het maakt het onnodig om veel complexe code te schrijven om iets in PowerShell te bereiken als je gewoon een andere service kunt bellen die het al mogelijk maakt.
Hier is een voorbeeld:
nu kunt u het volgende uitvoeren om een lijst met alle beschikbare methoden te bekijken:
$proxy | gm -memberType Method
22. New-WSManInstance
net als New-WebServiceProxy maakt New-WSManInstance een nieuwe instantie van een beheerbron.,
bekijk deze tutorial voor een volledig stap-voor-stap voorbeeld van hoe je de informatie krijgt die je nodig hebt om dit script succesvol uit te voeren (@jonathanmedd).
23., Nieuw-WSManSessionOption
Nieuw-WSManSessionOption maakt een nieuw management sessie hash-tabel die wordt gebruikt als input parameters naar andere WS-Management-cmdlets inclusief:
- Get-WSManInstance
- Set-WSManInstance
- Beroepen-WSManAction
- Connect-WSMan
Hier is de syntaxis (@SAPIENTech):
Selecteer-Object
De Select-Object cmdlet selecteert u de opgegeven eigenschappen van een enkel object of groep van objecten. Daarnaast kan het unieke objecten uit een array of een bepaald aantal objecten selecteren vanaf het begin of het einde van een array.,
PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4
Deze tutorial geeft meer informatie over de verschillende manieren waarop u Select-Object (@infosectactico) kunt gebruiken.
Er zijn andere cmdlets met soortgelijke functies, waaronder:
- Select-String: vindt tekst in strings of bestanden.
- Select-XML: zoekt tekst in een XML-tekenreeks of document.
25. Set-Alias
Set-Alias is een geweldig commando voor het verbeteren van de productiviteit. Hiermee kunt u een alias instellen voor een cmdlet of een ander commando-element in de huidige sessie (vergelijkbaar met een sneltoets), zodat u sneller kunt werken.,
het volgende voorbeeld stelt Notepad in op np in de huidige sessie met behulp van Set-Alias (@powershellatoms):
New-Alias np c:\windows\system32\notepad.exe
merk op dat u uw PowerShell-profiel ook kunt aanpassen met de aliassen die u het vaakst gebruikt (@howtogeek).
26. Set-StrictMode
Set-StrictMode stelt coderingsregels vast en dwingt deze af in scripts, scriptblokken en expressies. Het is een handig commando voor het afdwingen van de kwaliteit van de code en het voorkomen dat je verslapt en slordige code schrijft wanneer het 3: 00 uur is en je al twee dagen niet hebt geslapen (@adbertram).,
om het te gebruiken, zijn er twee parameters om te overwegen: -Off en-Version, en-Version heeft drie mogelijke waarden:
- Versie 1.0: voorkomt dat u variabelen gebruikt die niet zijn geïnitialiseerd (zoals optie expliciet in VBScript)
- Versie 2.0: voorkomt dat u variabelen gebruikt die niet zijn geïnitialiseerd en voorkomt ook het aanroepen van niet-bestaande eigenschappen op objecten, voorkomt dat u een functie aanroept zoals een methode, en verbiedt het aanmaken van variabelen zonder naam.,
- versie Laatste: deze optie selecteert de nieuwste StrictMode versie die beschikbaar is en gebruikt deze. Dit is een goede optie omdat het betekent dat de nieuwste StrictMode versie wordt gebruikt, ongeacht de versie van PowerShell die u gebruikt.
Wachtopdracht
Wachtopdracht onderdrukt de opdrachtprompt totdat achtergrondtaken die in de huidige sessie worden uitgevoerd, zijn voltooid. Wait-Job toont echter niet de uitvoer van taken, maar kan worden gebruikt in combinatie met Receive-Job. Multithreading is mogelijk in PowerShell dankzij-Jobs.
Write-Progress
wie houdt niet van een statusbalk?, Monitor uw voortgang met behulp van Write-Progress, die een voortgangsbalk in een Windows PowerShell opdrachtvenster wordt weergegeven.
Hier is een voorbeeld dat u een volledige voortgangsbalk en runtime strings (@credera) geeft:
Cmdlets voor prestatiebewaking, testen en debuggen
er zijn ook een verscheidenheid aan cmdlets nuttig voor ontwikkelaars voor het oplossen van problemen, testen, debuggen en monitoring doeleinden. Hier zijn een paar die je moet weten.
Debug-proces
ontwikkelaars houden van debuggen! Nou, we vinden het nog leuker als er geen bugs te elimineren, maar helaas is dat niet altijd het geval., Met PowerShell kunt u een proces debuggen met behulp van de debug-Process cmdlet.
u kunt taken ook debuggen met behulp van Debug-Job (@MS_ITPro). En u kunt breekpunten instellen of de cmdlet Wait-Debugger gebruiken:
30. Disable-PSBreakpoint
Als u op een bepaald moment breekpunten hebt ingesteld maar deze wilt verwijderen, doe dit dan eenvoudig met Disable-PSBreakpoint, dat breekpunten in de huidige console uitschakelt. Hier is de syntaxis (@ActiveXperts):
Disable-PSBreakpoint Disable-PSBreakpoint
Als u breekpunten in de huidige console wilt inschakelen, gebruik dan Enable-PSBreakpoint.,
Get-Counter
Get-Counter krijgt real-time prestatieteller gegevens van de prestatie monitoring instrumentatie in Windows OS. Het wordt gebruikt om prestatiegegevens op te halen van lokale of externe computers met specifieke voorbeeldintervallen die u opgeeft.
In dit voorbeeld krijgt u een teller set met een sample interval voor een opgegeven maximum sample (@ms_itpro):
PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
in het voorbeeld hieronder krijgt dit commando specifieke teller data van meerdere computers:
32., Export-Counter
Export-Counter exporteert PerformanceCounterSampleSet objecten als teller logbestanden. Er zijn twee eigenschappen beschikbaar:
- Contrasamples: krijgt en stelt de gegevens voor de tellers in.
- Timestamp: ontvangt en stelt de datum en tijd in waarop de voorbeeldgegevens werden verzameld.,
en verschillende methoden, die allemaal zijn overgenomen van Object:
- is gelijk aan(Object)
- Finalize()
- GetHashCode()
- GetType()
- MemberwiseClone()
- ToString()
bijvoorbeeld, het volgende commando gebruikt Get-Counter om verzamel processor tijd gegevens en exporteert het naar een .blg-bestand met Export-Counter (@TechGenix):
Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg
33. Test-Path
Test-Path laat u controleren of items in een opgegeven pad bestaan., Bijvoorbeeld, als u van plan bent om een andere opdracht te gebruiken op een opgegeven bestand, moet u mogelijk controleren of het bestand bestaat om te voorkomen dat het gooien van een fout.
Test-Path C:\Scripts\Archive
als de map bestaat, zal deze waar retourneren; als deze niet bestaat, zal deze False retourneren.
het kan ook werken met de paden die door andere PowerShell-providers worden gebruikt. Als u bijvoorbeeld wilt weten of uw computer een omgevingsvariabele heeft met de naam username, kunt u het volgende gebruiken:
Test-Path Env:\username
Test-Path werkt met variabelen, certificaten, aliassen en functies., Bekijk dit bericht van TechNet voor meer details (@MS_ITPro).
34. Get-WinEvent
Kijk naar Windows event logs met behulp van Get-WinEvent. Voor een lijst met beschikbare logs, gebruik:
Get-WinEvent -ListLog *
om de details van een specifieke log te bekijken, vervang * door de naam (pijp de uitvoer naar format-list om alle details te bekijken):
Get-WinEvent -ListLog $logname | fl *
u kunt ook alle gebeurtenissen in een log bekijken met behulp van:
Get-WinEvent -LogName System
bekijk deze tutorial voor meer details (@rakheshster).,
Invoke-Troubleshooting Pack
Troubleshooting packs zijn verzamelingen van PowerShell-scripts en assemblies die u helpen bij het oplossen, diagnosticeren en repareren van veelvoorkomende systeemproblemen (@ITNinjaSite). Zoek pakketten voor probleemoplossing op:
u kunt dit script uitvoeren om een lijst te krijgen van alle pakketten voor probleemoplossing die beschikbaar zijn op het huidige systeem (@TechGenix):
Get-ChildItem C:\Windows\Diagnostic\System
voer dan vanuit een verhoogd PowerShell-venster een pakket voor probleemoplossing uit met het volgende commando:
Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)
36., Measure-Command
Als u bewerkingen in PowerShell wilt Timen, is Measure-Command een must-know cmdlet. Het meet hoe lang een script of scriptblock moet worden uitgevoerd. Hier is een voorbeeld (@ToddKlindt):
Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }
De uitvoer is een TimeSpan object, dus het bevat eigenschappen zoals Uur, minuut, seconde, enz., en het is gemakkelijk om de output aan te passen aan uw voorkeuren.
Measure-Object
u wilt misschien ook weten hoe groot een bepaald object is., Gebruik Measure-Object om de numerieke eigenschappen van elk object te berekenen, inclusief tekens, woorden en regels in een string-object, zoals tekstbestanden.,
geef de naam en het type van meting uit te voeren, samen met de parameters zoals (@WindowsITPro):
- -Som: voegt waarden
- -Gemiddelde: berekent de gemiddelde waarde
- -Minimum: vindt de minimum waarde
- -Maximum: vindt de maximale waarde
Het volgende commando uit de som van de VirtualMemorySize waarden van eigenschappen voor alle objecten:
Get-Process | measure VirtualMemorySize -Sum
Nieuw-Event
Nieuwe Gebeurtenis wordt gebruikt voor het maken van een nieuwe afspraak., Een verwante cmdlet is New-EventLog, waarmee een nieuw gebeurtenislogboek en een nieuwe gebeurtenisbron op een lokale of externe computer worden gemaakt. Als je een automatiseringsengine hebt die wordt ondersteund door PowerShell, is het een goede gewoonte om een gebeurtenislogboek in te stellen (door een aangepast type gebeurtenislogboek te maken) dat alle berichten registreert die door PowerShell zijn verzonden. Dit is een voorbeeld waar u aangepaste Logging kunt implementeren in Logboeken.,
begin met het aanmaken van een nieuwe Lognaam voor gebeurtenissen (@BundaloVladimir):
New-EventLog -LogName Troubleshooting_Log -Source FalloutApp
om berichten naar uw nieuwe gebeurtenislogboek te sturen, voert u het volgende uit met behulp van de cmdlet Write-Log:
Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"
Receive-Job
Als u de resultaten van Windows PowerShell-achtergrondtaken in de huidige sessie gebruikt u receive-job. Dit wordt meestal gebruikt na het gebruik van Start-Job om een taak te beginnen wanneer u de specifieke resultaten moet bekijken.,
Receive-Job -Name HighMemProcess
bekijk deze handige tutorial over het gebruik van Receive-Job en wat te doen als er schijnbaar geen resultaten zijn (@proxb).
40. Register-Enginevent
deze cmdlet wordt gebruikt om zich te abonneren op de gebeurtenissen gegenereerd door de Windows PowerShell engine en de New-Event cmdlet. Het volgende commando abonneert bijvoorbeeld op een gebeurtenis wanneer de huidige PowerShell-sessie wordt afgesloten en informatie (zoals datum en tijd) wordt opgeslagen in een logbestand (@jonathanmedd):
Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}
41., Register-ObjectEvent
Register-ObjectEvent is vergelijkbaar met Register-EngineEvent, maar in plaats van zich te abonneren op gebeurtenissen die worden gegenereerd door de PowerShell engine en New-Event, abonneert het zich op gebeurtenissen die worden gegenereerd door een Microsoft.NET Framework-Object.
Hier is een voorbeeld (@NetworkWorld):
Er zijn andere Register – cmdlets die u nuttig kunt vinden, waaronder:
- Register-PSSessionConfiguration: maakt en registreert een nieuwe sessieconfiguratie.
- Register-WmiEvent: deze cmdlet abonneert zich op een WMI-gebeurtenis.
42., Remove-Event
wanneer u een event wilt verwijderen, gebruikt u de cmdlet Remove-Event. Als u een volledig gebeurtenislogboek wilt verwijderen, gebruikt u Remove-EventLog, waarmee een gebeurtenislogboek wordt verwijderd of een gebeurtenisbron wordt gedeponeerd.
als alternatief annuleert een event-abonnement, maar verwijdert een event niet uit de gebeurteniswachtrij (@SS64).
43. Set-PSDebug
deze cmdlet schakelt script-debugfuncties in en uit. Het stelt ook de trace niveau en schakelt StrictMode.,
Door Set-PSDebug aan de bovenkant van je scriptbestand te gebruiken net na het statement param () (indien van toepassing), kun je fouten voorkomen met scripts waar PowerShell geen adequate informatie over geeft voor het oplossen van problemen. Hier is een voorbeeld (@r_keith_hill):
44. Start-Sleep
Als u de activiteit in een script of sessie wilt onderbreken, gebruik dan Start-Sleep, waarmee de activiteit gedurende een bepaalde periode wordt gestopt.
Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx
Als u een of meer draaiende services wilt pauzeren, gebruikt u Suspend-Service.
45., Tee-Object
Als u prestaties of codekwaliteit analyseert, is het handig om de uitvoer van een commando te kunnen bekijken. Tee-Object slaat de uitvoer van het commando op in een bestand of variabele en geeft het ook weer in de console als het de laatste variabele in de pijplijn is. Als het niet de laatste variabele in de pijplijn is, stuurt Tee-Object het door de pijplijn.
Hier is de syntaxis:
46. Test-AppLockerPolicy
Test-AppLockerPolicy evalueert of invoerbestanden voor een specifieke gebruiker mogen worden uitgevoerd op basis van het opgegeven AppLocker-beleid.,
Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path
Deze tutorial biedt meer informatie over de beschikbare parameters en voorbeelden van Test-AppLockerPolicy in actie (@powershellhelp).
Test-ComputerSecureChannel
deze cmdlet test en repareert de verbinding tussen een lokale computer en zijn domein. Zonder dit commando was de gebruikelijke oplossing voorheen om een computer uit zijn domein te verwijderen en deze vervolgens opnieuw aan te sluiten om de relatie te herstellen. Test-ComputerSecureChannel maakt het mogelijk om de verbinding in minder tijd te herstellen (@WindowsITPro).,
wanneer u als lokale beheerder bent aangemeld, voert u het volgende uit:
Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair
U kunt Test-Connection gebruiken om ICMP (Internet Control Message Protocol) echo request packets (pings) naar een of meer computers te sturen.
Testpad
gebruik Testpad om te bepalen of alle elementen van een pad bestaan. In wezen, het helpt u omgaan met fouten voordat ze zich voordoen. In zijn eenvoudigste vorm geeft het True or False (@MCPmag) terug:
PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse
49. Trace-Command
Trace-Command configureert en start de trace van een opgegeven commando of expressie., Om het te gebruiken, moet u ook Get-TraceSource gebruiken om te zoeken naar bepaalde namen met jokertekens:
PS> Get-TraceSource -Name *param*
u kunt de uitvoer filteren om de beschrijving aan te passen aan het patroon dat u zoekt. Zodra u de mogelijke trace-naam hebt geà dentificeerd, gebruikt u Trace-Command om de antwoorden te krijgen die u nodig hebt. Hier is een voorbeeld:
Bekijk dit bericht voor meer details over het spelen van detective met Trace-Command (@PowerShellMag).
50. Write-Debug
Write-Debug schrijft Een debug-bericht naar de console., Wanneer je dit in een functie of script schrijft, doet het standaard niets; de berichten liggen in wezen op de loer totdat je ofwel je $DebugPreference wijzigt of de-debug schakelaar activeert wanneer je een functie of script aanroept. Wanneer $DebugPreference is ingesteld op’ inquire ‘ of de-debug schakelaar is geactiveerd, maakt het bericht een breekpunt, waardoor u een gemakkelijke manier om pop in debug mode.
neem dit voorbeeld (@RJasonMorgan):
het bovenstaande voorbeeld produceert het volgende wanneer uitgevoerd met-debug:
Geef een reactie