PowerShell-fusklapp
En sökbar, utskrivbar PowerShell-referens — cmdlets, pipelinen, variabler, filer, loopar, funktioner, objekt och administration. Gratis.
Få hjälp och upptäckt
12Get-Help Get-Process
Visa hjälp för en cmdlet
Get-Help Get-Process -Examples
Visa användningsexempel för en cmdlet
Get-Help Get-Process -Full
Visa fullständig hjälp inklusive parametrar
Get-Help about_Functions
Läs ett konceptuellt about_-ämne
Update-Help
Ladda ner de senaste hjälpfilerna
Get-Command -Noun Process
Lista cmdlets som verkar på ett substantiv
Get-Command -Verb Get
Lista cmdlets som använder ett givet verb
Get-Command *service*
Sök kommandon med jokernamn
Get-Process | Get-Member
Lista egenskaper och metoder för objekt
Get-Alias ls
Visa vilket kommando ett alias löser till
Get-Alias -Definition Get-ChildItem
Lista alla alias för en cmdlet
$PSVersionTable
Visa PowerShell-version och -utgåva
Variabler och typer
13$x = 5
Tilldela ett värde till en variabel
[int]$n = '42'
Deklarera en starkt typad variabel
$null
Null-/tomvärdet
$true; $false
Booleska literaler
$arr = @(1, 2, 3)
Skapa en array
$arr += 4
Lägg till ett element i en array
$arr[0]; $arr[-1]
Indexera första och sista arrayelementen
$hash = @{ Name = 'Ann'; Age = 30 }
Skapa en hashtabell
$hash['Name']; $hash.Name
Läs ett hashtabellvärde med nyckel
$env:PATH
Läs en miljövariabel
$env:MY_VAR = 'value'
Ange en miljövariabel för sessionen
Get-Variable
Lista alla definierade variabler
[math]::Round(3.14159, 2)
Anropa en statisk .NET-metod
Pipeline och filtrering
12Get-Process | Where-Object { $_.CPU -gt 10 }
Filtrera objekt efter ett villkor
Get-Process | ? CPU -gt 10
Filtrera med ?-aliaset och förenklad syntax
Get-Process | ForEach-Object { $_.Name }
Kör ett skriptblock för varje objekt
Get-Process | % { $_.Kill() }
Iterera med %-aliaset
Get-Process | Select-Object Name, Id
Behåll endast specifika egenskaper
Get-Process | Select-Object -First 5
Ta de första N objekten
Get-Process | Sort-Object CPU -Descending
Sortera objekt efter en egenskap
Get-Process | Group-Object Company
Gruppera objekt efter en egenskap
Get-Process | Measure-Object CPU -Sum
Aggregera numeriska värden (summa, medel)
Get-ChildItem | Select-Object -Unique
Returnera distinkta objekt
1..5 | ForEach-Object { $_ * 2 }
Skicka ett intervall genom en transform
Get-Process | Out-GridView
Skicka resultat till ett interaktivt rutnät
Filer och sökvägar
13Get-ChildItem -Path C:\Logs
Lista objekt i en katalog (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Lista matchande filer rekursivt
Get-Content .\file.txt
Läs en fil rad för rad
Get-Content .\file.txt -Tail 20
Läs de sista N raderna i en fil
Set-Content .\file.txt -Value 'Hi'
Skriv (skriv över) text till en fil
Add-Content .\file.txt -Value 'Hi'
Lägg till text i en fil
Copy-Item a.txt b.txt
Kopiera en fil eller katalog
Move-Item a.txt .\dir\
Flytta eller byt namn på ett objekt
Remove-Item a.txt -Force
Ta bort en fil eller katalog
New-Item -ItemType Directory -Path .\dir
Skapa en ny fil eller katalog
Test-Path .\file.txt
Kontrollera om en sökväg finns
Get-Location
Visa den aktuella katalogen (alias pwd)
Set-Location C:\Temp
Byt den aktuella katalogen (alias cd)
Strängar och text
12'Hello World' -match 'World'
Testa en sträng mot en regex
'Hello' -replace 'l', 'L'
Ersätt text med en regex
'a,b,c' -split ','
Dela en sträng till en array med regex
'a-b-c'.Split('-')
Dela med .NET String-metoden
'a', 'b' -join ', '
Slå samman arrayelement till en sträng
Select-String -Path *.log -Pattern 'error'
Grep-liknande sökning över filer
'{0} of {1}' -f 3, 10
Formatera en sträng med platshållare
' hi '.Trim()
Ta bort ledande och efterföljande blanksteg
'Hello'.ToUpper()
Konvertera en sträng till versaler
'Hello'.Substring(0, 3)
Extrahera en delsträng med index och längd
'Hello'.Contains('ell')
Testa om en sträng innehåller text
'Hello'.Length
Hämta antalet tecken
Loopar och villkor
12if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Förgrena med if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Matcha ett värde mot fall
foreach ($i in $arr) { $i }
Iterera över en samling
for ($i = 0; $i -lt 5; $i++) { $i }
Räknad loop med ett index
while ($x -lt 10) { $x++ }
Loopa medan ett villkor är sant
do { $x++ } while ($x -lt 10)
Loopa minst en gång, testa sedan
$x -eq 5; $x -ne 5
Lika- och inte-lika-jämförelser
$x -gt 5; $x -lt 5
Större-än- och mindre-än-jämförelser
$x -ge 5; $x -le 5
Större/mindre-än-eller-lika-jämförelser
'abc' -like 'a*'
Jokermatchningsjämförelse
@(1, 2, 3) -contains 2
Testa array-medlemskap
break; continue
Avsluta eller hoppa över aktuell loopiteration
Funktioner och skript
12function Get-Sum { param($a, $b) $a + $b }
Definiera en funktion med parametrar
Get-Sum -a 2 -b 3
Anropa en funktion med namngivna argument
function Test { param([int]$n = 1) }
Typad parameter med ett standardvärde
param([Parameter(Mandatory)]$Name)
Kräv att en parameter anges
return $value
Returnera ett värde från en funktion
function F { [CmdletBinding()] param() }
Skapa en avancerad funktion (vanliga params)
Write-Verbose 'msg' -Verbose
Generera en utförlig meddelandeström
Write-Output $result
Skicka ett objekt till pipelinen
Write-Error 'failed'
Skriv till felströmmen
.\script.ps1 -Arg value
Kör en skriptfil med argument
. .\functions.ps1
Dot-source ett skript in i sessionen
try { } catch { $_ } finally { }
Hantera avbrytande fel
Objekt och egenskaper
12Get-Process | Select-Object -ExpandProperty Name
Returnera råa egenskapsvärden, inte objekt
(Get-Process).Name
Åtkomst till en egenskap på varje objekt
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Lägg till en beräknad egenskap
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Bygg ett anpassat objekt
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Koppla en egenskap till ett objekt
$obj.PSObject.Properties.Name
Lista ett objekts egenskapsnamn
$obj | Format-Table -AutoSize
Visa objekt som en justerad tabell
$obj | Format-List *
Visa alla egenskaper som en lista
$obj | ConvertTo-Json -Depth 5
Serialisera ett objekt till JSON
Get-Content data.json | ConvertFrom-Json
Tolka JSON till objekt
$obj | Export-Csv out.csv -NoTypeInformation
Exportera objekt till en CSV-fil
Import-Csv data.csv
Läs en CSV-fil till objekt
Processer och tjänster
12Get-Process
Lista körande processer (alias ps)
Get-Process -Name chrome
Hämta processer efter namn
Stop-Process -Name notepad -Force
Avsluta en process
Start-Process notepad.exe
Starta en ny process
Get-Service
Lista Windows-tjänster
Get-Service -Name wuauserv
Hämta en tjänst efter namn
Start-Service -Name wuauserv
Starta en stoppad tjänst
Stop-Service -Name wuauserv
Stoppa en körande tjänst
Restart-Service -Name wuauserv
Starta om en tjänst
Set-Service -Name wuauserv -StartupType Manual
Ändra en tjänsts startläge
Get-EventLog -LogName System -Newest 20
Läs senaste klassiska händelseloggsposter
Get-WinEvent -LogName Application -MaxEvents 20
Fråga moderna händelseloggar
Fjärrkörning och jobb
12Enter-PSSession -ComputerName Srv01
Starta en interaktiv fjärrsession
Exit-PSSession
Lämna en interaktiv fjärrsession
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Kör ett kommando på en fjärrvärd
$s = New-PSSession -ComputerName Srv01
Skapa en beständig fjärrsession
Invoke-Command -Session $s -ScriptBlock { hostname }
Återanvänd en befintlig fjärrsession
Remove-PSSession $s
Stäng och ta bort en fjärrsession
Start-Job -ScriptBlock { Get-Process }
Kör ett kommando som ett bakgrundsjobb
Get-Job
Lista bakgrundsjobb och deras tillstånd
Receive-Job -Id 1 -Keep
Hämta utdata från ett jobb
Wait-Job -Id 1
Blockera tills ett jobb slutförs
Stop-Job -Id 1; Remove-Job -Id 1
Stoppa och ta bort ett bakgrundsjobb
Get-Process | Start-ThreadJob { $input }
Kör lättviktiga in-process-trådjobb
Moduler och paket
12Get-Module
Lista för närvarande laddade moduler
Get-Module -ListAvailable
Lista alla installerade moduler
Import-Module Pester
Ladda en modul in i sessionen
Remove-Module Pester
Avladda en modul från sessionen
Find-Module -Name PSReadLine
Sök galleriet efter en modul
Install-Module PSReadLine -Scope CurrentUser
Installera en modul från galleriet
Update-Module PSReadLine
Uppdatera en installerad modul
Uninstall-Module PSReadLine
Ta bort en installerad modul
Get-ExecutionPolicy
Visa den aktuella körningspolicyn för skript
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Tillåt signerade och lokala skript att köras
Get-PSRepository
Lista konfigurerade paketförråd
$PROFILE
Sökväg till aktuell användares profilskript
Ingen post matchar “:q”.
Behöver du hjälp?
Hittade du ett problem med det här verktyget? Berätta för oss.