18 Meest bruikbare Powershell-opdrachten voor Windows-beheerders

18 december 2021 19859 Keer bekeken Meest bruikbare Powershell-opdrachten

In deze S-zone deelt Victor zijn ultieme lijst met de meest bruikbare PowerShell-commando's voor systeembeheerders. Voor elk commando legt hij de syntaxis en parameters uit. Sluit dan af met enkele voorbeelden.

In deze S-zone zal ik PowerShell Commands, PS, PowerShell Cmdlets en Cmdlets door elkaar gebruiken.

Blader door berichtonderwerpen

Meest bruikbare Powershell-opdrachten om hulp te zoeken en te krijgen bij cmdlets

U kunt niet praten over de handigste PowerShell-opdrachten zonder te leren hoe u ze kunt vinden. Hieronder staan ​​de PowerShell-opdrachten waarmee u cmdlets kunt vinden.

Get-Command

De Get-Command Cmdlet is de eerste en belangrijkste PS die een PowerShell-beginner moet leren en weten te gebruiken. Waarom? Het helpt u bij het vinden van andere PowerShell-cmdlets. Welk commando kan belangrijker zijn dan een commando dat dit kan?

Om alle PS-opdrachten op uw computer te vinden, voert u eenvoudig deze onderstaande opdracht uit:

|__+_| meest bruikbare powershell-opdrachten

De resultaten van de Get-Command-cmdlet begrijpen

Er zijn vier kolommen in de resultaten van de Get-Command Output

  1. OpdrachtType : Dit vertelt u of de opdracht een alias, een cmdlet of een functie is.
  2. Naam : De naam is de daadwerkelijke opdracht die u uitvoert.
  3. Versie : Dit is de PowerShell-versie
  4. Bron : De module van het PS-commando.

Met deze informatie kunt u de resultaten van Get-Command filteren. Stel dat u PowerShell-opdrachten wilt zien die het woord EventLog bevatten, en als u de onderstaande opdracht uitvoert, wordt de klus geklaard:

|__+_|

Let op waar ik de sterretjes heb toegevoegd. Dit komt omdat ik me ervan bewust ben dat
EventLog is het zelfstandig naamwoord-gedeelte van de cmdlets. Als u het echter niet eens weet, kunt u proberen de sterretjes aan het begin toe te voegen en vervolgens het einde proberen.

Hieronder ziet u het resultaat van de vorige opdracht.

Get-Command-parameters

Laten we ten slotte, voordat we verder gaan, de parameters van de Get-Command-cmdlet bespreken.

Voer deze opdracht hieronder uit om alle parameters en informatie over de opdracht Get-Command te krijgen:

|__+_|

Dit geeft u alle informatie over de Get-Command-cmdlet.

Ik zal de Get-Help cmdlet hierna bespreken.

Hulp krijgen

Terwijl de Get-Command-cmdlet de cmdlet vindt, hebt u de Get-Help PowerShell-opdracht nodig, die u de informatie geeft die u nodig hebt om de opdracht uit te voeren.

De eenvoudigste manier om de Get-Help-cmdlet te gebruiken, is door Get-Help in te voeren, gevolgd door de opdracht waarover u informatie wilt. Voer de onderstaande opdracht uit voor meer informatie over de Get-EventLog-cmdlet:

|__+_|

Dit geeft u de basisinformatie over de Get-EventLog PowerShell-opdracht. Zie resultaat hieronder:

Enkele belangrijke parameters van het Get-Help-commando

Net als elke andere PowerShell-cmdlet heeft de Get-Help-cmdlet een aantal para meters. Hieronder vindt u de belangrijkste parameters die u nodig heeft.

  1. -Gedetailleerd : De Gedetailleerd parameter geeft u de opdracht SYNTAX, PARAMTERS, ALIASES en REMARKS.
  2. -Vol : The Full geeft soortgelijke informatie van de Gedetailleerd parameter met meer informatie over elke parameter
  3. -Voorbeelden : geeft voorbeelden van het gebruik van de cmdlet. Dit kan erg handig zijn als u de cmdlet nog nooit eerder hebt gebruikt en niet weet hoe u verder moet.
  4. -Online : Opent de online help-pagina van de cmdlet.
Om de parameters van een PS-cmdlet te zien, typt u de cmdlet in PS, drukt u op de spatiebalk, typt u koppelteken - gevolgd door de tab-toets. Terwijl u op de tab-toets drukt, bladert u door de beschikbare parameters.

Meest bruikbare Powershell-opdrachten om bestanden en mappen te beheren

Nu u weet hoe u PowerShell-commando's kunt vinden, kunt u een kijkje nemen. De volgende reeks van de meest bruikbare powershell-opdrachten zijn Cmdlets om u te helpen bij het beheren van bestanden en mappen.

Get-ChildItem

Haalt items op een opgegeven locatie. Om de mappen op mijn station C weer te geven, voer ik de onderstaande opdracht uit:

|__+_|

Hiermee worden alle mappen op het hoogste niveau weergegeven. Om alle bestanden weer te geven, mappen die submappen bevatten, gebruikt u de - recursief parameter.

Pro-tip
U kunt de Get-ChildItem-cmdlet-let combineren met een andere cmdlet om de grootte van elke map in een opgegeven map te berekenen.

Item kopiëren en item verplaatsen

U kunt de Get-ChildItem-cmdlet gebruiken om items in een map weer te geven en het resultaat vervolgens door te sturen naar de Copy-Item-cmdlet om de items naar een nieuwe locatie te kopiëren. De onderstaande opdracht zal het werk doen:

|__+_| De bovenstaande powershell-opdracht kopieert alleen de mappen en bestanden op het hoogste niveau - het kopieert GEEN submappen en bestanden. Om alle bestanden en mappen inclusief submappen te kopiëren, neemt u de - recursief parameter in de opdracht Get-ChildItem zoals hieronder weergegeven: |_+_|

Terwijl de Copy-Item Cmdlet items van de ene locatie naar de andere kopieert, verplaatst de Move-Item Cmdlet het item.

Verwijder voorwerp

Met deze cmdlet worden opgegeven items verwijderd. Net als de cmdlets Copy-Item en Move-Item kunt u de uitvoer van Get-ChildItem doorsluizen naar Remove-Item.

Gebruik de Remove-Item Cmdlet met de nodige voorzichtigheid, aangezien het alle bestanden en mappen op uw computer kan verwijderen, inclusief Windows-bestanden! Pro-tip
Door de uitvoer van Get-ChildItem naar Remove-Item te leiden, kunt u een eenvoudig script maken dat regelmatig enkele logbestanden verwijdert. U kunt het PS-script plannen om op een bepaald tijdstip te worden uitgevoerd met behulp van Windows Scheduler.

Meest bruikbare Powershell-opdrachten voor rapportage

Er zijn 3 sets PowerShell-opdrachten die u kunt gebruiken om items naar CVS te exporteren, naar tekstbestanden en naar HTML-bestanden. Deze 3 zullen we hierna bespreken.

Export-Csv

Export-Csv converteert een reeks strings naar CSV en slaat het op in een bestand. Deze cmdlet is erg belangrijk bij rapportage.

Voer de onderstaande opdracht uit om het gebruik van Export-CSV te demonstreren:

|__+_|

Hier is het resultaat van de opdracht.

powershell-opdrachten

U kunt de uitvoer van de vorige opdracht naar Export-CSV pipen om een ​​CVS-rapport te maken van de resultaten die in de vorige afbeelding worden getoond.

Hier is de opdracht om deze taak te volbrengen.

|__+_|

Merk op dat ik de CSV-bestandsnaam aan het pad moest toevoegen. Ik heb ook een andere parameter -Geen TypeInformatie . Lees dit artikel PowerShell NoTypeInformation: toepassingen en gebruik voor meer informatie over -NoTypeInformation.

Er is nog een cmdlet in de vorige opdracht, Selecteer-Object . Deze cmdlet is gebruikt om de kolommen op te geven die moeten worden geretourneerd en geëxporteerd naar CSV. Als ik uitgesloten Selecteer-Object de uitvoer van de CSV zal veel ongewenste gegevens bevatten. Later in deze tutorial zal ik Select-Object behandelen.

Ter referentie, hieronder vindt u de uitvoer van het CSV-bestand.

powershell-opdrachten

Hoewel dit rapport erg lijkt op de uitvoer in de vorige afbeelding, is het nuttiger als rapport. Je zou het CSV-bestand naar je baas kunnen sturen!

Uit-bestand

De Out-file Cmdlet stuurt uitvoer naar een tekstbestand

Met de onderstaande opdracht wordt de uit de Get-Command PowerShell-cmdlet geëxporteerd naar een tekstbestand in plaats van een CSV:

|__+_|

Hier is het resultaat in een tekstbestand: Hetzelfde rapport, nu in een tekstbestand! Hoe goed is dat!

Wat als u dit rapport dagelijks uitvoert en de inhoud van de vorige dag niet te veel wilt corrigeren, maar liever wilt toevoegen. Deze opdracht zal het werk doen.

|__+_|

Meest bruikbare Powershell-opdrachten om processen te beheren

Een andere reeks meest bruikbare PowerShell-opdrachten voor Windows-beheerders zijn Cmdlets om Windows-processen te beheren. Laat ze kijken.

Get-proces

Deze PowerShell-cmdlet vermeldt alle processen die op een lokale computer worden uitgevoerd. Het kan ook de processen op een externe computer laten draaien - met de - Computer naam parameter.

Wanneer u de Get-Process PowerShell-cmdlet echter zonder enige para meter uitvoert, worden alle processen geretourneerd die op de lokale computer worden uitgevoerd. Voer de onderstaande opdracht uit om dit te proberen. Het resultaat is te zien in onderstaande afbeelding.

|__+_|

Start-proces en stop-proces PowerShell-opdrachten

De Get-Process PowerShell-opdracht kan werken met de PowerShell-cmdlets Start-Process en Stop-Process om een ​​proces of een reeks processen te starten of te stoppen.

Laten we zeggen dat u de Get-Process PowerShell-opdracht hebt uitgevoerd, maar dat u een proces met een specifieke proces-ID 10500 wilt stoppen, dan zal de onderstaande opdracht het werk doen.

|__+_| Waarschuwing!
Gebruik de PowerShell-cmdlet Stop-Process met de nodige voorzichtigheid, aangezien het stoppen van het verkeerde proces uw computer onstabiel kan maken.

Om het proces te starten, pijpt u de uitvoer van de Get-Process PowerShell-opdracht naar de Stop-Process PowerShell-cmdlet.

Meest bruikbare PowerShell-opdrachten om gebeurtenislogboeken te beheren

Beheer van gebeurtenislogboeken is een van de belangrijkste taken voor Windows-beheerders. Dus de volgende set PowerShell-opdrachten helpt u bij het beheren van gebeurtenislogboeken.

Get-EventLog

De Get-EventLog PowerShell-cmdlet haalt gebeurtenissen op in een opgegeven gebeurtenislogboek. U kunt gebeurtenissen op een lokale of externe computer ophalen. Om gebeurtenissen van een externe computer op te halen, gebruikt u de - Computer naam parameter om de externe computer op te geven. Houd er echter rekening mee dat u de juiste machtigingen nodig heeft om toegang te krijgen tot de externe computer.

Voer de onderstaande opdracht uit om de laatste 5 gebeurtenissen in het logboek voor systeemgebeurtenissen vast te leggen:

|__+_| Pro-tip
De laatste opdracht kan worden gebruikt voor het oplossen van problemen.

Clear-EventLog

Zoals je zou verwachten zijn er meer event log-cmdlets, maar we zullen deze 2 voor deze tutorial behandelen.

De Clear-EventLog wist alle gebeurtenissen in het opgegeven gebeurtenislogboek. De cmdlet kan gebeurtenislogboeken op zowel lokale als externe computers wissen.

De onderstaande opdracht wist alle gebeurtenissen met de naam Windows PowerShell van de lokale computer

|__+_| Om de onderstaande opdracht uit te voeren, moet u PowherShell als beheerder openen - klik met de rechtermuisknop en selecteer Uitvoeren als beheerder.

Meest bruikbare PowerShell-opdrachten om informatie over uw computer te krijgen

Als u gegevens over computers in uw netwerk moet verzamelen - computernaam, BIOS-versie, RAM-grootte, schijfinformatie, enz. - is Get-WmiObject POwerShell Cmdlet uw vriend! laten we deze krachtige cmdlet verkennen, zullen we.

Get-WmiObject

Get-WmiObject heeft een parameter genaamd - Klas hiermee kunt u het WMI-object specificeren waartoe u toegang wilt. De onderstaande opdracht krijgt een lijst met WMI-klassen, |__+_|

Zodra u de naam van de WMI-klasse kent, kunt u Get-WmiObject uitvoeren om nuttige informatie van een lokale of externe computer te retourneren. Hieronder vindt u een lijst met de belangrijkste WMI-klassen die u mogelijk nodig heeft

  • Win32_PhysicalMemory – informatie over beschikbaar geheugen
  • Win32_Processor – Informatie over processor
  • Win32_LogicalDisk – Informatie over logische schijfstations
  • Win32_DiskDrive - Fysieke schijfinformatie
  • Win32_OperatingSystem – Informatie over het besturingssysteem
  • Win32_BaseBoard – Krijg informatie over het moederbord

Voer de onderstaande opdracht uit om informatie over het besturingssysteem te krijgen:

|__+_|

Meest bruikbare PowerShell-opdrachten om verbinding te maken met externe PowerShell-sessies

U kunt PowerShell-commando's niet bespreken zonder te praten over PS-remoting. Als Windows-systeembeheerder moet u op afstand verbinding maken met computers met PowerShell.

Hier zijn de commando's die je nodig hebt.

Enter-PSSession en Exit-PSSession PowerShell-opdrachten

Met de PowerShell-opdracht Enter-PSSession kunt u interactief een externe PS-sessie starten op één computer. Wanneer u klaar bent met de externe computer, beëindigt u de sessie met de opdracht Exit-PSSession.

Voer de onderstaande opdracht uit om een ​​PS-sessie op afstand te openen met een computer met de naam Computer1:

|__+_|

Invoke-opdracht

Terwijl u met de Enter-PSSession PowerShell-cmdlet opdrachten kunt uitvoeren op een enkele externe computer, kunt u met de Invoke-Command-cmdlet opdrachten uitvoeren op een of meer externe computers.

Als u de Get-Process-opdracht op Computer1, Computer2, Computer3 wilt uitvoeren, voert u deze opdracht uit:

|__+_|

Nieuw-PSSession

Met de New-PSSession PowerShell-cmdlet kunt u een permanente sessie openen met een externe computer. Omdat de sessie persistent is, is het een goed idee om de externe sessie in een variabele toe te voegen.

Voer de onderstaande opdracht uit om een ​​permanente externe PS-sessie op computers Computer1, Computer2 te openen:

|__+_|

Met de PS-sessie tot stand gebracht en opgeslagen in de $session-variabele, kunt u normale PowerShell-opdrachten uitvoeren op de externe sessie met behulp van de
Invoke-Command PowerShell-cmdlet.

Als laatste voorbeeld in externe PowerShell-sessies, voert u de opdracht uit om het Get-proces op de externe computers uit te voeren:

|__+_| Ik heb de resultaten van de opdracht Get-Process opgeslagen in een variabele met de naam $Processes omdat er meerdere computers zijn. Door het resultaat in een variabele op te slaan, zijn gegevens gemakkelijk te manipuleren. U kunt een ForEach-lus gebruiken om de gegevens te extraheren en te ordenen.

Daar heb je het - mijn ultieme lijst met de handigste PowerShell-opdrachten! Ik hoop dat je deze S Zone nuttig vond.

U kunt ook een vraag stellen, een opmerking achterlaten of feedback geven met het formulier 'Een reactie achterlaten' aan het einde van deze pagina.

Bezoek ten slotte onze Windows PowerShell-pagina voor meer PowerShell S-zones.