PowerShell Parancsok Minden Fejlesztő tudnia Kell: 50+ Parancsmagokat az, Hogy a Dolgok, Munka, Teljesítmény-Ellenőrzési, Hibakeresés

posted in: Articles | 0

Sok fejlesztő szerelem PowerShell, nem véletlenül: ez ad erőt, funkció, valamint a rugalmasság, hogy a Windows Parancssor, ahol sokan töltenek sok időt. Ez nem, azonban, jön egy kis tanulási görbe, de ha már elsajátította az alapvető parancsokat meg kell tudni, ez a termelékenység a szteroidok.,

a PowerShell parancsokat cmdleteknek nevezik, ezek a parancsmagok pedig a funkcionális képességeinek hajtóereje. A Windows általános élményét javító parancsoktól a fejlesztési munkához hasznos parancsokig több tucat fontos parancs van, amelyeket a fejlesztőknek tudniuk kell., Mi már össze ezt a listát, hogy szolgáljon egy praktikus útmutató azok számára, akik csak most kezdik, hogy érintse meg a hatalom a PowerShell, valamint azoknak, akik szeretnék, hogy szinten-a PowerShell tapasztalat, beleértve a következőket:

  • Alapvető PowerShell Parancsmagokat
  • PowerShell Parancsok Getting things Done
  • Parancsmagokat a Teljesítmény-Ellenőrzés, Tesztelés, valamint Hibakeresés

amellett, hogy parancsmagokat, több tucat paraméterek módszer, hogy segítsen a lehető legtöbbet hozza ki a szöveget., A WhatIf paraméter különösen hasznos a PowerShell szkriptek teszteléséhez anélkül, hogy ténylegesen futtatná őket (@pluralsight). Az egyes parancsokhoz általában több paraméter és módszer áll rendelkezésre. Az alább felsorolt parancsok minden fejlesztő számára jó kiindulópontot jelentenek, de az előnyök teljes körű megvalósításához meg kell birkózni a paraméterekkel és más módszerekkel is.

Basic PowerShell Cmdlets

ezek az alapvető PowerShell parancsok hasznosak a különböző formátumú információk beszerzéséhez, a biztonság konfigurálásához és az alapvető jelentéskészítéshez.,

Get-Command

Get-Command egy könnyen használható referencia cmdlet, amely felhoz minden parancs használható az aktuális munkamenetben.

egyszerűen írja be ezt a parancsot:

get-command

a kimenet így fog kinézni (@MS_ITPro):

2. Get-Help

a Get-Help parancs elengedhetetlen a PowerShell-t használók számára, gyors hozzáférést biztosítva a futtatáshoz szükséges információkhoz,valamint az összes rendelkezésre álló parancshoz.

Ha szeretne néhány példát, például, akkor adja meg a következő (@jp_jofre):

3., Set-ExecutionPolicy

a Microsoft alapértelmezés szerint letiltja a szkripteket, hogy megakadályozza a rosszindulatú szkriptek végrehajtását a PowerShell környezetben. A fejlesztők azonban szkripteket akarnak írni és végrehajtani, így a Set-ExecutionPolicy parancs lehetővé teszi a PowerShell szkriptek körüli biztonsági szint vezérlését. Beállíthatja a négy biztonsági szint egyikét:

  • korlátozott: ez az alapértelmezett biztonsági szint, amely blokkolja a PowerShell szkriptek futtatását. Ebben a biztonsági szinten csak interaktívan adhat meg parancsokat.,
  • All Signed: ez a biztonsági szint csak akkor engedélyezi a szkriptek futtatását, ha azokat egy megbízható kiadó írja alá.
  • Remote Signed: ezen a biztonsági szinten a helyileg létrehozott PowerShell szkriptek futtathatók. A távolról létrehozott szkriptek csak akkor futtathatók, ha egy jó hírű kiadó aláírta őket.
  • korlátlan: ahogy a neve is sugallja, a korlátlan biztonsági szint lehetővé teszi az összes szkript futtatását azáltal, hogy eltávolítja az összes korlátozást a végrehajtási politikából.,

hasonlóképpen, ha ismeretlen környezetben dolgozik, könnyen megtudhatja, hogy az aktuális végrehajtási politika hogyan használja ezt a parancsot:

Get-ExecutionPolicy

nézze meg ezt a szálat a SuperUser-en a végrehajtási politika PowerShellben történő konfigurálásával kapcsolatos további információkért. (@StackExchange)

Get-Service

hasznos tudni, hogy milyen szolgáltatásokat telepítenek a rendszerre., Könnyen elérheti ezt az információt a következő paranccsal:

Get-Service

a kimenet úgy néz ki, mint a következő (@MS_ITPro):

ha tudnia kell, hogy egy adott szolgáltatás telepítve van-e, akkor hozzáfűzheti a-név kapcsolót és a szolgáltatás nevét, a Windows pedig megmutatja a szolgáltatás állapotát. Ezenkívül kihasználhatja a szűrési képességeket, hogy visszatérjen az aktuálisan telepített szolgáltatások egy meghatározott részhalmazához., A következő példa azt eredményezi, hogy egy kimeneti adatok a szolgáltatói parancs volt, amely a Hol-Objektum parancsmagot, ami aztán kiszűri a minden egyéb, mint a szolgáltatásokra megállt:

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

nézd meg ezt a bejegyzést néhány további példa a Get-Service akcióban.

5. Converto-HTML

Ha olyan adatokat kell kinyernie, amelyeket egy jelentésben használhat, vagy valaki másnak küldhet, a Converto-HTML egy egyszerű módja ennek., Használatához pipálja a kimenetet egy másik parancsból a Converto-HTML parancsba, majd a-Property kapcsolóval adja meg, hogy mely kimeneti tulajdonságokat szeretné megadni a HTML fájlban. A fájl nevét is meg kell adnia.

például a következő kód létrehoz egy HTML oldalt, amely felsorolja a PowerShell álneveket az aktuális konzolban:

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

Bonus: the

Export-CSV

cmdlet ugyanúgy működik, de az adatokat exportálja a .CSV fájl helyett HTML., A

Select-Object

használatával megadhatja, hogy mely tulajdonságokat szeretné felvenni a kimenetbe.

nézze meg ezt a cikket a 4sysops-tól további információkért a Converto-HTML hatékony használatáról (@adbertram).

6. Get-EventLog

valójában a PowerShell segítségével elemezheti a gép eseménynaplóit a Get-EventLog parancsmag segítségével. Számos paraméter áll rendelkezésre. Egy adott napló megtekintéséhez használja a-Log kapcsolót, majd a naplófájl nevét., A következő paranccsal tekintheti meg például az Alkalmazásnaplót:

Get-EventLog -Log "Application"

nézze meg még néhány példát a Get-EventLog akcióban ebben a bejegyzésben (@nextofwindows). További gyakori paraméterek a következők: (@SS64):

  • -Verbose
  • -Debug
  • -ErrorAction
  • -ErrorVariable

  • -WarningAction
  • -WarningVariable

  • -Outbuffer
  • -OutVariable

Get-Process

a rendelkezésre álló szolgáltatások listájának megszerzéséhez hasonlóan gyakran hasznos az összes jelenleg futó folyamat gyors listája., A Get-Process parancs ezt az információt kéznél tartja.

Bónusz: a Stop-Process használatával állíthatja le a lefagyasztott vagy már nem válaszoló folyamatokat. Ha nem biztos benne, hogy melyik folyamat tartja Önt, használja a Get-Process szolgáltatást a problémás folyamat gyors azonosításához. Miután megkapta a nevét vagy a folyamatazonosítót, használja a Stop-Process szolgáltatást annak megszüntetéséhez.

itt egy példa., Futtasd ezt a parancsot, hogy távolítsa el az összes jelenleg futó esetben Jegyzettömb (@MS_ITPro):

Stop-Process -processname notepad

használhat helyettesítő karakterek túl, mint például az alábbi példa, amely megszünteti minden esetben Jegyzettömb, valamint bármely más folyamatok kezdve megjegyzés:

Stop-Process -processname note*

nézd meg ezt a bejegyzést további információk a gyilkosság folyamatok a PowerShell (@howtogeek):

8. Clear-History

mi van, ha törölni szeretné a bejegyzéseket a parancs előzményeiből? Könnyen használható a Clear-History cmdlet. Azt is használhatja, hogy csak bizonyos parancsokat töröljön., Például az alábbi paranccsal a törlés parancsot, ami tartalmazza a “segítséget”, vagy a végén, a “parancs” (@MS_ITPro):

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

Ha meg szeretnénk bejegyzések egy munkamenet használata:

Add-History

nézd meg ezt a bejegyzést néhány hasznos információ törlése a történelem előfeszítő a történelem egy listát az egyes parancsok (@MS_ITPro).,

Where-Object

Where-Object az egyik legfontosabb parancsmag, amelyet tudni kell, mivel lehetővé teszi, hogy egy adatkészletet továbbítson a csővezetéken a szűréshez (@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

Ha a munkát biztonságosnak szeretné tartani a gyártás során, és meg akarja akadályozni a módosítást, használja a Set-AuthenticodeSignature parancsot, hogy Authenticode aláírást adjon hozzá egy szkripthez vagy fájlhoz.

PowerShell parancsok a dolgok elvégzéséhez

amikor a termelékenységről van szó, a PowerShell segít a dolgok elvégzésében a következő parancsokkal.

11., ForEach-Object

a ForEach-Object parancsmag egy műveletet hajt végre a bemeneti objektumok meghatározott csoportjának minden elemével szemben. Bár sok cmdlet működik minden objektum egy gyűjtemény egyébként, szüksége lesz ForEach-objektum azokban a helyzetekben, amikor azt szeretné, hogy más módosításokat, vagy alkalmazni konkrét formázás minden objektum egy gyűjtemény.

itt egy példa (@MS_ITPro)., Ha meg szeretné jeleníteni a folyamatnevek listáját, és azt szeretné, hogy ezek a nevek cyan-ban jelenjenek meg, akkor próbálkozzon a következőkkel:

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

de a fentiek a következő hibát eredményezik:

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.

mert az írás-fogadó cmdlet nem érti, mit szeretne tenni a csővezetéken küldött adatokkal. Szóval, használja a ForEach-Object parancsmagot megoldja ezt a problémát:

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

nézze meg a bemutató további információ a ForEach-Object dolgozó hurkok (@tomsitpro).

12., Clear-Content

Ha törölni szeretné egy elem tartalmát, de megtartja az elemet, akkor a clear-Content cmdlet:

Clear-Content C:\Temp\TestFile.txt

ezt a parancsot is használhatja a megadott fájlkiterjesztéssel rendelkező összes fájl tartalmának törléséhez. A következő kód törli a tartalmát az összes fájlt a .txt kiterjesztés, például:

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

helyettesítő karaktereket is használhat. Plusz, akkor törölje a tartalmát bármilyen típusú fájl, – tól .TXT fájlok .Doki, .xls, és még több.

nézze meg ezt a bejegyzést további részletekért.

13., Checkpoint-Computer

ha jelentős változtatásokat hajt végre, vagy kockázatos kísérletet hajt végre, beállíthat egy visszaállítási pontot a gépén az ellenőrző pont-számítógép parancsmag segítségével.

vegye figyelembe, hogy a parancsmag használatával csak 24 óránként hozhat létre visszaállítási pontot. Ha újra futtatja a parancsot, akkor megtartja az előző visszaállítási pontot:

nézze meg ezt a cikket az MCP Mag-tól további információkért (@MCPmag).

összehasonlítás-objektum

gyakran hasznos két objektum közvetlen összehasonlítása., Ezt a Compare-Object használatával teheti meg, amely jelentést készít a két készlet közötti különbségekről, például (@Marcam923):

15. ConvertFrom-StringData

a ConvertFrom-StringData segítségével konvertálhat egy vagy több értékpárt tartalmazó karakterláncot hash táblává. Íme egy példa arra, hogy néz ki a parancs:

$settings = $TextData | ConvertFrom-StringData

Ez a parancs számos helyzetben hasznos, például amikor el akarja menteni a PowerShell szkript beállításait, hogy mások szerkeszthessék a beállításokat anélkül, hogy közvetlenül a szkriptkódban dolgoznának.,

Converto-SecureString

konvertáljon titkosított szabványos karakterláncot biztonságos karakterláncra vagy egyszerű szövegre biztonságos karakterláncra a Converto-SecureString használatával. Ez a parancsmag a ConvertFrom-SecureString és Read-Host (@AdmArsenal) függvényekkel együtt használható:

Converto-XML

a Converto-XML parancsmag segítségével hozzon létre egy objektum XML-alapú ábrázolását. Ezt sorosításnak is nevezik, és hasznos folyamat az adatok későbbi újrafelhasználásra történő mentéséhez. Vegye figyelembe, hogy fontos, hogy a kifejezés objektumokat írjon a csővezetékre., Bármi, ami a Write-Host-ot használja, nem fog írni a csővezetékhez, ezért nem lehet sorolni. Íme egy példa a Converto-XML in action (@PetriFeed):

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

a fenti példában használt speciális parancsmag, az Export-Clixml, a legtöbb célra alkalmas. A PowerShell kifejezés kimenetét XML-re konvertálja, majd fájlba menti.

18. New-AppLockerPolicy

New-AppLockerPolicy létrehoz egy új AppLocker politika egy listát a fájl információk és egyéb szabály létrehozása lehetőségeket., Összesen öt cmdlet van, amelyek lehetővé teszik az Applockerrel való interakciót, beleértve (@RootUsers_):

  • Get-AppLockerFileInformation: megkapja az AppLocker szabályok létrehozásához szükséges információkat a fájlok listájából vagy az Eseménynaplóból.
  • Get-AppLockerPolicy: helyi, hatékony vagy domain AppLocker házirend lekérésére szolgál.
  • New-AppLockerPolicy: mint már említettük, ez a parancsmag új AppLocker házirendek létrehozására szolgál.
  • Set-AppLockerPolicy: beállítja egy adott csoportházirend-objektum AppLocker házirendjét.,
  • Test-AppLockerPolicy: annak meghatározására szolgál, hogy egy felhasználó vagy felhasználói csoport képes lesz-e bizonyos műveleteket végrehajtani a házirend alapján.

19. New-ItemProperty

New-ItemProperty létrehoz egy új tulajdonság egy elemet, és beállítja annak értékét. Használhatja például a rendszerleíró adatbázis értékeinek és adatainak (a rendszerleíró kulcs tulajdonságainak) létrehozására és módosítására.

nézze meg ezt a bemutatót mnaoumov.NET néhány hasznos megoldás a cmdlet használatával (@mnaoumov).

20. Új objektum

a Microsoft példányának létrehozásához .,NET Framework vagy Component Object Model (COM) objektum, használja az új objektum parancsmagot.

itt van egy példa, amely új objektumot hoz létre új objektum használatával, tárolja egy változóban, majd csövezi azt Add-tagnak, amely ezután hozzáadja a létrehozott objektumban megadott tulajdonságokat vagy módszereket (@gngrninja):

21. New-WebServiceProxy

New-WebServiceProxy létrehoz egy web service proxy objektumot, amely lehetővé teszi, hogy használja és kezelje a web szolgáltatás belül PowerShell., Ez a cmdlet gyönyörű dolog a fejlesztők számára-feleslegessé teszi, hogy sok összetett kódot írjon, hogy megpróbáljon valamit elérni PowerShellben, amikor egyszerűen hívhat egy másik szolgáltatást, amely már lehetővé teszi.

Íme egy példa:

most az alábbiakat futtathatja az összes rendelkezésre álló módszer listájának megtekintéséhez:

$proxy | gm -memberType Method

22. Új-WSManInstance

az új-WebServiceProxy-hoz hasonlóan az új-WSManInstance létrehoz egy menedzsment erőforrás új példányát.,

nézze meg ezt a bemutatót egy teljes lépésről-lépésre, hogyan szerezheti be a szkript sikeres végrehajtásához szükséges információkat (@jonathanmedd).

23., Új-WSManSessionOption

Új-WSManSessionOption létrehoz egy új vezetői ülés hash tábla, hogy a használt, mint a bemeneti paraméterek más WS-Menedzsment parancsmagokat beleértve:

  • Get-WSManInstance
  • Set-WSManInstance
  • Hivatkozhat-WSManAction
  • Connect-WSMan

Itt a szintaxis (@SAPIENTech):

Select-Object

A Select-Object parancsmagot kiválasztja a megadott tulajdonságok egyetlen tárgy vagy csoport tárgyakat. Ezenkívül egyedi objektumokat is kiválaszthat egy tömbből vagy egy meghatározott számú objektumból egy tömb elejétől vagy végétől.,

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

Ez a bemutató további információt nyújt a Select-Object (@infosectactico) használatának különböző módjairól.

vannak más cmdlets hasonló funkciókkal, beleértve:

  • Select-String: Szöveg keresése karakterláncokban vagy fájlokban.
  • Select-XML: szöveg keresése egy XML-karakterláncban vagy dokumentumban.

25. Set-Alias

Set-Alias egy nagyszerű parancs a termelékenység növelésére. Ez lehetővé teszi, hogy álnevet állítson be egy cmdlet vagy más parancselem számára az aktuális munkamenetben (hasonlóan a billentyűparancshoz), így gyorsabban dolgozhat.,

a következő példa a Jegyzettömböt np-re állítja az aktuális munkamenetben Set-Alias (@powershellatoms) használatával:

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

vegye figyelembe, hogy testreszabhatja a PowerShell profilját a leggyakrabban használt álnevekkel is (@howtogeek).

26. Set-StrictMode

Set-StrictMode parancsfájlokban, szkriptblokkokban és kifejezésekben határozza meg és érvényesíti a kódolási szabályokat. Ez egy hasznos parancs a kódminőség érvényesítéséhez, és megakadályozza, hogy lazítson és hanyag kódot írjon, amikor hajnali 3: 00 van, és két nap alatt nem aludt (@adbertram).,

használni, két paramétereket kell figyelembe venni: -Le -Változat -Változat három lehetséges értékek:

  • 1.0 Verzió: Megakadályozza a változók segítségével, hogy a nem inicializált (például Option Explicit VBScript)
  • 2.0-ás Verzió: Megakadályozza a változók segítségével, hogy nem volt példa, hogy azt is megakadályozza, hogy a hívó nem létező tulajdonságokat a tárgyak, megakadályozza, hogy a hívott függvény, mint egy módszer, valamint megtiltja a változók létrehozására név nélkül.,
  • legújabb verzió: ez az opció kiválasztja a rendelkezésre álló legújabb StrictMode verziót. Ez egy jó lehetőség, mert ez azt jelenti, hogy a legújabb StrictMode verziót használják, függetlenül a használt PowerShell verziójától.

Wait-Job

A Wait-Job elnyomja a parancssort, amíg az aktuális munkamenetben futó háttérmunkák be nem fejeződnek. A Wait-Job azonban nem jeleníti meg a Jobs kimenetét, de használható A Receive-Job-val együtt. Többszálú lehetséges PowerShell köszönhetően-munkahelyek.

Write-Progress

ki nem szereti az állapotsort?, Kövesse nyomon az előrehaladást az írás-haladás használatával, amely egy előrehaladási sávot jelenít meg a Windows PowerShell parancsablakban.

itt van egy példa, hogy ad egy teljes folyamatjelző sáv és futásidejű karakterláncok (@credera):

Cmdlets teljesítmény Monitoring, tesztelés, és hibakeresés

vannak is a különböző cmdlets hasznos Fejlesztők hibaelhárítás, tesztelés, hibakeresés, és monitoring célokra. Itt van néhány, amit tudnod kell.

hibakeresési folyamat

a fejlesztők szeretik a hibakeresést! Nos, még jobban szeretjük, ha nincsenek hibák kiküszöbölni, de sajnos nem mindig ez a helyzet., A PowerShell segítségével hibakeresési folyamatot hajthat végre a hibakeresési folyamat parancsmag segítségével.

akkor is hibakeresési feladatok segítségével Debug-Job (@MS_ITPro). Beállíthat töréspontokat, vagy használhatja a Wait-Debugger parancsmagot:

30. Disable-PSBreakpoint

ha egyszerre beállított töréspontokat, de el akarja távolítani őket, akkor egyszerűen használja a Disable-PSBreakpoint alkalmazást, amely letiltja a töréspontokat az aktuális konzolon. Itt van a szintaxis (@ActiveXperts):

Disable-PSBreakpoint Disable-PSBreakpoint 

Alternatív megoldásként, ha engedélyezni szeretné a töréspontokat az aktuális konzolon, használja az Enable-PSBreakpoint lehetőséget.,

Get-Counter

a Get-Counter valós idejű teljesítményszámláló adatokat kap a Windows operációs rendszer teljesítményfigyelő műszereiből. Ez arra szolgál, hogy a teljesítmény adatokat a helyi vagy távoli számítógépek meghatározott mintavételi időközönként, hogy adja meg.

ebben a példában egy megadott maximális minta mintaintervallumával rendelkező számlálókészletet kap (@MS_ITPro):

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

az alábbi példában ez a parancs több számítógépről kap konkrét számlálóadatokat:

32., Export-Counter

Export-Counter export PerformanceCounterSampleSet objektumok számláló naplófájlok. Két tulajdonság áll rendelkezésre:

  • ellenpéldák: megkapja és beállítja a számlálók adatait.
  • időbélyeg: megkapja és beállítja a mintavételi adatok gyűjtésének dátumát és időpontját.,

és több módszer, amelyek mindegyike örökölt objektum:

  • egyenlő(objektum)
  • véglegesítése()
  • GetHashCode()
  • GetType()
  • MemberwiseClone()
  • toString()

például a következő parancs a Get-Counter-t használja a processzor idő adatainak és exportálja a .blg fájl Exportszámlálóval (@TechGenix):

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

33. Test-Path

Test-Path segítségével ellenőrizheti, hogy vannak-e elemek egy meghatározott útvonalon., Például, ha egy adott fájlon egy másik parancsot kíván használni, előfordulhat, hogy ellenőriznie kell, hogy a fájl létezik-e a hiba elkerülése érdekében.

Test-Path C:\Scripts\Archive

Ha a mappa létezik, akkor igaz lesz; ha nem, akkor hamis lesz.

más PowerShell szolgáltatók által használt útvonalakkal is működhet. Például, ha tudnia kell, hogy a számítógép rendelkezik-e felhasználónév nevű környezeti változóval, használhatja a következőket:

Test-Path Env:\username

Test-Path változókkal, tanúsítványokkal, álnevekkel és funkciókkal működik., Nézze meg ezt a bejegyzést a TechNet-től további részletekért (@MS_ITPro).

34. Get-WinEvent

nézd meg a Windows eseménynaplóit a Get-WinEvent használatával. A rendelkezésre álló naplók listájához használja:

Get-WinEvent -ListLog *

ezután egy adott napló részleteinek áttekintéséhez cserélje ki a * nevet (a kimenetet formázza a formátum listára az összes részlet megtekintéséhez):

Get-WinEvent -ListLog $logname | fl *

az összes eseményt naplóban is megtekintheti:

Get-WinEvent -LogName System

nézze meg ezt a bemutatót további részletekért (@rakheshster).,

Invoke-TroubleshootingPack

a hibaelhárítási csomagok olyan PowerShell szkriptek és összeállítások gyűjteményei, amelyek segítenek a gyakori rendszerproblémák elhárításában, diagnosztizálásában és javításában (@ITNinjaSite). Hibaelhárítási csomagok keresése a következő címen:

futtathatja ezt a szkriptet, hogy megkapja az aktuális rendszeren elérhető összes hibaelhárítási csomag listáját (@TechGenix):

Get-ChildItem C:\Windows\Diagnostic\System

ezután egy emelt PowerShell ablakból futtasson egy hibaelhárítási csomagot ezzel a paranccsal:

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

36., Measure-Command

Ha azt szeretnénk, hogy az idő műveletek PowerShell, Measure-Command egy must-know cmdlet. Azt méri, hogy mennyi ideig egy script vagy scriptblock futtatni. Itt van egy példa (@ToddKlindt):

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

a kimenet TimeSpan objektum, így olyan tulajdonságokat tartalmaz, mint Óra, Perc, második stb., könnyű a kimenetet az Ön preferenciáihoz igazítani.

Measure-Object

azt is érdemes tudni, hogy mekkora egy adott objektum., A Measure-Object segítségével kiszámíthatja bármely objektum numerikus tulajdonságait, beleértve a karakter, a szó vagy a karakterlánc objektum sorait, például a szövegfájlokat.,

Csak adja meg a nevét, majd a típusú mérés elvégzésére, valamint az olyan paraméterek, mint a (@WindowsITPro):

  • -Sum: hozzáteszi, értékek
  • -Átlag: kiszámítja az átlagos érték
  • -Minimum: megállapítja, hogy a minimális érték
  • -Maximum: találja meg a maximális érték

A következő parancsot összegeket a VirtualMemorySize tulajdonság értékei minden folyamat tárgyak:

Get-Process | measure VirtualMemorySize -Sum

Új Esemény

Új Esemény létrehozásához használt egy új esemény., A kapcsolódó cmdlet A New-EventLog, amely létrehoz egy új eseménynaplót, valamint egy új eseményforrást egy helyi vagy távoli számítógépen. Ha a PowerShell által támogatott automatizálási motorral rendelkezik, jó gyakorlat egy eseménynapló beállítása (Egyéni Eseménynapló Típus létrehozásával), amely naplózza a PowerShell által küldött összes üzenetet. Ez az egyik példa, ahol végre lehet hajtani az egyéni naplózás Eseménynapló.,

először hozzon létre egy új Esemény Napló LogName (@BundaloVladimir):

New-EventLog -LogName Troubleshooting_Log -Source FalloutApp

Majd, hogy üzeneteket küldeni a új esemény napló, futtassa a következő használja az Írni-Log parancsmagot:

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

Kap-Munkát

Ha kell, hogy az eredmények a Windows PowerShell háttér munkát a jelenlegi ülésen, használja Kap-Munka. Ezt általában a Start-Job használata után használják a munka megkezdéséhez, amikor meg kell tekinteni az adott eredményeket.,

Receive-Job -Name HighMemProcess

nézze meg ezt a hasznos bemutatót a Receeve-Job használatával kapcsolatban, és mi a teendő, ha látszólag nincs eredmény (@proxb).

40. Register-EngineEvent

Ez a parancsmag a Windows PowerShell motor és az új esemény cmdlet által generált eseményekre való feliratkozáshoz használható. Például a következő parancs előfizet egy eseményre, amikor az aktuális PowerShell munkamenet kilép, és információkat (például dátumot és időt) ment egy naplófájlba (@jonathanmedd):

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

41., Register-ObjectEvent

Register-ObjectEvent hasonló a Register-Engineeventhez, de ahelyett, hogy feliratkozna a PowerShell motor és az új esemény által generált eseményekre, feliratkozik a Microsoft. NET Framework objektum által generált eseményekre.

itt van egy példa (@NetworkWorld):

vannak más regiszter – cmdlets, hogy hasznos lehet, beleértve:

  • Register-PSSessionConfiguration: létrehoz és regisztrál egy új munkamenet konfiguráció.
  • Register-WmiEvent: ez a parancsmag feliratkozik egy WMI eseményre.

42., Eltávolítás-Esemény

Ha el szeretne távolítani egy eseményt, használja az esemény eltávolítása parancsmagot. Ha el kell távolítania egy teljes eseménynaplót, akkor az Eltávolítás-EventLog-ot használja, amely törli az Eseménynaplót, vagy törli az eseményforrást.

Alternatív megoldásként az Unregister-Event törli az esemény előfizetést, de nem törli az eseményt az eseménysorból (@SS64).

43. Set-PSDebug

Ez a parancsfájl be – és kikapcsolja a parancsfájl hibakeresési funkcióit. A nyomkövetési szintet is beállítja, a StrictMode-ot pedig átkapcsolja.,

a Szkriptfájl tetején található Set-PSDebug használatával közvetlenül a param() utasítás után (ha van ilyen) megakadályozhatja a szkriptek hibáit, amelyekről a PowerShell nem nyújt megfelelő információt hibaelhárítási célokra. Íme egy példa (@r_keith_hill):

44. Start-Sleep

ha fel kell függesztenie a tevékenységet egy szkriptben vagy munkamenetben, használja a Start-Sleep alkalmazást, amely egy meghatározott időtartamra leállítja a tevékenységet.

Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx

Ha egy vagy több futó szolgáltatás szüneteltetésére lenne szükség, akkor felfüggesztési szolgáltatást használna.

45., Tee-Object

Ha a teljesítményt vagy a kód minőségét elemzi, hasznos lehet megtekinteni a parancs kimenetét. A Tee-Object tárolja a parancs kimenetét egy fájlban vagy változóban, valamint megjeleníti azt a konzolon, ha ez az utolsó változó a csővezetékben. Ha nem ez az utolsó változó a csővezetékben, akkor a Tee-Object elküldi a csővezetéken.

itt van a szintaxis:

46. Test-AppLockerPolicy

Test-AppLockerPolicy értékeli, hogy a bemeneti fájlok futtathatók-e egy adott felhasználó számára a megadott AppLocker házirend alapján.,

Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path 

Ez a bemutató további részleteket a rendelkezésre álló paraméterek és példák Test-AppLockerPolicy in action (@powershellhelp).

Test-ComputerSecureChannel

Ez a parancsmag teszteli és javítja a kapcsolatot egy helyi számítógép és annak tartománya között. E parancs nélkül a szokásos megoldás korábban az volt, hogy eltávolítson egy számítógépet a tartományából, majd csatlakoztassa újra a kapcsolat helyreállítása érdekében. Test-ComputerSecureChannel lehetővé teszi, hogy visszaállítsa a kapcsolatot kevesebb idő alatt (@WindowsITPro).,

Ha helyi rendszergazdaként van bejelentkezve, egyszerűen futtassa a következőket:

Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair

használhatja Test-Connection küldeni Internet Control Message Protocol (ICMP) echo request csomagok (pingek) egy vagy több számítógépre.

Test-Path

használja Test-Path annak meghatározására, hogy minden eleme egy utat létezik. Lényegében segít kezelni a hibákat, mielőtt azok előfordulnak. A legegyszerűbb formában True vagy False (@MCPmag):

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

49. Trace-Command

Trace-Command konfigurálja, majd elindítja a nyomkövetést egy megadott parancs vagy kifejezés., Használatához a Get-TraceSource-t is használnia kell annak érdekében, hogy bizonyos neveket helyettesítő karakterekkel keressen:

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

szűrheti a kimenetet, hogy megfeleljen a leírásnak a kívánt mintához. Miután azonosította a lehetséges nyomkövetési nevet, a Trace-paranccsal megkapja a szükséges válaszokat. Íme egy példa:

nézze meg ezt a bejegyzést további részletekért játszik nyomozó Trace-parancs (@PowerShellMag).

50. Write-Debug

Write-Debug ír egy hibakeresési üzenetet a konzolra., Amikor ezt egy függvénybe vagy szkriptbe írja, alapértelmezés szerint nem csinál semmit; az üzenetek lényegében várakoznak, amíg módosítja a $DebugPreference-t, vagy aktiválja a-debug kapcsolót egy funkció vagy szkript hívásakor. Ha a $DebugPreference értéke “érdeklődés” vagy a-hibakeresési kapcsoló aktiválva van, az üzenet töréspontot hoz létre, így egyszerű módja annak, hogy hibakeresési módba ugorjon.

Vegyük ezt a példát (@rjasonmorgan):

a fenti példa a következőket hozza létre-debug:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük