FAQ Powershell in Deutsch

By | March 8, 2015

translated-german-v3


beta-v2-0


Konzept : Die am häufigsten gestellten Fragen zu Powershell.

Sie können diese Liste auf verschiedene Weise nutzen :

  • Um Paste-Befehle in ein Skript zu kopieren
  • Um schnell die Syntax eines bestimmen Befehls nachzuschlagen
  • Um Ihre technischen Kenntnisse zu verbessern
  • Um neue Befehle zu entdecken
  • Um sich auf ein Vorstellungsgespräch vorzubereiten

Aktualisiert
06. Oktober 2015
Verfasser Steve Renard
Quelle deutsch.powershell-guru.com
Kategorien
75
Fragen
610


ACL
Active Directory
Alias
Arrays
Browsers
Certificates
Characters
CIM
Comments
COM Objects
Compare
Computer
Credentials
CSV
Culture
Date
Drives
Environment
Errors
Event Viewer
Files
Folders
Format Operator (-f)
Functions
GPO
GUI
Hardware
Hashtables
Help
History
Jobs
Keyboard
Loops
Math
Memory
Messages
Modules
Microsoft Excel
Microsoft Exchange
Microsoft Outlook
Microsoft SharePoint
Networking
Openfiles
Operators
Parameters
Password
Powershell ISE
Powershell v5
Printers
Processes
PSObject
Quest
Random
RDP
Regedit
Regex
Remote
Restore
Scheduled Tasks
Search
SCCM
Services
SMTP
Snapins
Sounds
Static .NET Methods
Strings
System
Try/Catch
Variables
Symantec Vault
Windows 2012
Windows Azure
Windows Forms
WMI
XML

System

Wie kann ich meine Version von PowerShell bestimmen?

Wie führt man eine abwärtskompatible Version von PowerShell aus?
powershell.exe -Version 2.0

Wie erzwingt man eine Mindestversion von PowerShell (3.0 und höher) in einem Skript?
#Requires -Version 3.0

Wie erzwingt man den Start eines Skripts im Administratormodus?

Wie überprüft man die Parameter eines Skripts mit PowerShell?
help -Name .\Get-ExchangeEnvironmentReport.ps1 -Full

Wie kann man Informationen über den aktuellen Benutzer mit PowerShell erhalten?
[Security.Principal.WindowsIdentity]::GetCurrent()

So erstellen, bearbeiten und laden Sie ein Profil mit PowerShell.

Wie baut man eine Pause von 5 Sekunden / Minuten in ein PowerShell-Skript ein?
Start-Sleep -Seconds 5
Start-Sleep -Seconds 300 # 5 minutes

Wie erfahre ich die letzte Startzeit von PowerShell?
(Get-CimInstance -ClassName win32_operatingsystem).LastBootUpTime

Wie finde ich Type Accelerators mit PowerShell?

Wie erhalte ich die Autostart-Übersicht anhand von PowerShell?

Wie deinstalliere ich eine Anwendung mit PowerShell?

Wie nehme ich einen Screenshot des gesamten Desktops oder eines aktiven Fensters mit PowerShell auf?
Take-ScreenShot -Screen -File 'C:\scripts\screenshot.png' -Imagetype JPEG
Repository : Take-ScreenShot

Wie erhalte ich die Nachrichtenanzahl für MSMQ-Warteschlangen mit Hilfe von PowerShell?

Wie erstelle ich Ausführungsrichtlinien mit PowerShell?

Wie erstelle ich eine Verknüpfung mit PowerShell?

Wie hefte ich ein Programm an die Taskleiste an und löse es wieder ab?

Wie öffnet man ein Explorer-Fenster mit Hilfe von PowerShell?
[Diagnostics.Process]::Start('explorer.exe')
Invoke-Item -Path C:\Windows\explorer.exe

Wie erhalte ich eine Liste der Gerätetreiber anhand von PowerShell?
Get-WmiObject -Class Win32_PnPSignedDriver
Get-WindowsDriver -Online -All
driverquery.exe

Wie erstellt man einen GUIDE mit PowerShell?

Wie erhalte ich den Speicherort der temporären Verzeichnisse für den aktuellen Benutzer?
[System.IO.Path]::GetTempPath()

Wie trete ich einem Pfad bzw. Unterpfad mit PowerShell bei?
Join-Path -Path C:\ -ChildPath \windows

Wie kann ich jeden Cmdlet von “Get-*” auflisten?
Get-Command -Verb Get

Wie liste ich spezielle Systemordner mit PowerShell auf?

Wie mounte ich ISO / VHD-Dateien mit PowerShell?
Mount-DiskImage 'D:\ISO\file.iso' # ISO
Mount-DiskImage 'D:\VHD\file.vhd' # VHD

Wie überprüfe ich die installierten .NET Framework-Versionen mit PowerShell?

Wie überprüfe ich, ob .NET Framework Version 4.5 installiert ist?
(Get-ItemProperty -Path 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4\Full' -EA 0).Version -like '4.5*'

Wie starte / stoppe ich ein Transcript in PowerShell?
Start-Transcript -Path 'C:\scripts\transcript.txt
Stop-Transcript

Wie ändere ich das aktuelle Verzeichnis?
Set-Location -Path 'C:\scripts'

Wie lösche ich den Bildschirminhalt mit PowerShell?
Clear-Host
cls # Alias

Wie ändere ich die Bildschirmauflösung?
Set-DisplayResolution -Width 1280 -Height 1024 -Force # Windows 2012

Wie stelle ich ein Vollbild-Fenster mit PowerShell ein?
mode.com 300

Wie erhalte ich die Abmessungen eines Bildes (Breite und Höhe)?

Wie erhalte ich den Windows-Produktschlüssel mit PowerShell?

Perfmon

Wie erhält man die gegenwärtige “% Prozessorzeit” (Durchschnitt) der letzten 5 Sekunden (10-mal)?
(Get-Counter '\Processor(_total)\% Processor Time' -SampleInterval 5 -MaxSamples 10).CounterSamples.CookedValue

Assemblies

Wie lade ich Assemblies mit PowerShell?

Wie überprüfe ich die aktuell geladenen .NET Assemblies?

Wie finde ich den GAC (Global Assembly Cache)?

Clipboard

Wie kopiere ich Ergebnisse in die Zwischenablage?

Wie erhalte ich den Inhalt der Zwischenablage?
Add-Type -AssemblyName PresentationCore
[Windows.Clipboard]::GetText()

Hotfixes

Wie installiere ich Hotfixes mit PowerShell?
Get-HotFix -ComputerName $computer

Wie installiere ich Hotfixes vor / nach einem spezifischen Datum?
Get-HotFix | Where-Object -FilterScript { $_.InstalledOn -lt ([DateTime]'01/01/2015') } # Before 01/01/2015
Get-HotFix | Where-Object -FilterScript {$_.InstalledOn -gt ([DateTime]'01/01/2015')} # After 01/01/2015

Wie überprüfe ich ob ein Hotfix bereits installiert ist?
Get-HotFix -Id KB2965142

Wie installiere ich Hotfixes auf einem Remotecomputer?
Get-HotFix -ComputerName $computer

Pagefile

Wie erhalte ich Pagefile Informationen mit PowerShell?
Get-WmiObject -Class Win32_PageFileusage | Select-Object -Property Name, CurrentUsage, AllocatedBaseSize, PeakUsage, InstallDate

Wie ermittle ich die empfohlene Größe (MB) für die Pagefile Datei?
[Math]::Truncate(((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory) / 1MB) * 1.5

Wie erstelle ich eine Pagefile (4096 MB) auf dem Laufwerk D:?

Wie lösche ich eine Pagefile auf dem Laufwerk C:?

Maintenance

Wie überprüfe ich den Status der Fragmentierung eines Laufwerks?

Wie überprüfe ich den Speicherplatz eines Laufwerks?

Up


Files

Wie öffne ich eine Datei mit PowerShell?
Invoke-Item -Path 'C:\scripts\file.txt'
.'C:\scripts\file.txt'

Wie lese ich eine Datei mit PowerShell?
Get-Content -Path 'C:\scripts\file.txt'
gc "C:\scripts\file.txt" # Alias

Wie schreibe ich in eine Datei mit PowerShell?

Wie erhalte ich den vollen Namen der aktuellen Script Datei?
$MyInvocation.MyCommand.Path

Wie packe ich ZIP Archive?

Wie entpacke ich ZIP Archive?

Wie kann ich die Dateien in einem ZIP Archive einsehen?
Add-Type -AssemblyName 'System.IO.Compression.Filesystem'
[System.IO.Compression.ZipFile]::OpenRead($fileZIP)

Wie kann ich die Größe einer Datei in KB anzeigen lassen?
(Get-ChildItem -Path .\winsrv.dll).Length /1KB
(Get-ChildItem -Path .\winsrv.dll).Length /1MB
(Get-ChildItem -Path .\winsrv.dll).Length /1GB

Wie finde ich Dateien die größer / kleiner als 1 GB sind?

Wie erhalte ich den Name einer Datei ohne ihrer Dateierweiterung?
[System.IO.Path]::GetFileNameWithoutExtension('C:\Windows\system32\calc.exe') # Return calc

Wie erhalte ich die nur Dateierweiterung einer Datei?
[System.IO.Path]::GetExtension('C:\scripts\file.txt') # Return .txt

Wie erhalte ich die Dateiversion anhand von PowerShell?

Wie erhalte ich den Hash einer Datei?
(Get-FileHash $file).Hash

Wie erhalte ich die MD5 / SHA1 Prüfsumme einer Datei?
Get-FileHash $file -Algorithm MD5
Get-FileHash $file -Algorithm SHA1

Wie kann ich versteckte Dateien anzeigen lassen?

Wie überprüfe ich ob eine Datei eine Dateierweiterung besitzt?

Wie stelle ich die Zugriffsrechte einer Datei auf “Nur Lesen” ein?
Set-ItemProperty -Path .\file.txt -Name IsReadOnly -Value $true

Wie ändere ich das LastWriteTime Attribute, einer Datei, auf letzte Woche?
Set-ItemProperty -Path .\file.txt -Name LastWriteTime -Value ((Get-Date).AddDays(-7))
If not working, use Nirsoft tool: BulkFileChanger.

Wie erstelle ich eine neue Datei mit PowerShell?
New-Item -ItemType File -Path 'C:\scripts\file.txt' -Value 'FirstLine'

Wie nenne ich eine Datei um?
Rename-Item -Path 'C:\scripts\file.txt' -NewName 'C:\scripts\powershellguru2.txt'

Wie nenne ich mehrere Dateien um?
Get-ChildItem -Path C:\scripts\txt | Rename-Item -NewName { $_.Name -replace ' ', '_' }

Wie lösche ich eine Datei mit PowerShell?
Remove-Item -Path 'C:\scripts\file.txt'

Wie kann ich die letzten 10 Zeilen einer Datei anzeigen lassen?
Get-Content -Path 'C:\scripts\log.txt' -Tail 10

Wie entblocke ich mehrere Dateien eines Ordners?
Get-ChildItem -Path 'C:\scripts\Modules' | Unblock-File

Wie entferne ich leere Zeilen in einer Datei?
(Get-Content -Path file.txt) | Where-Object -FilterScript {$_.Trim() -ne '' } | Set-Content -Path file.txt

Wie überprüfe ich ob eine bestimmte Datei existiert?

Wie erhalte ich die neuste / älteste erstellte Datei eines Ordners?

Wie entferne ich doppelt vorkommendende Zeilen in einer Datei?

Wie erhalte ich Dateien eines Ordners, die älter / jünger als 1 Monat sind?

Wie erhalte ich Dateien eines Ordners, die älter / jünger als 1 Jahr sind?

Wie exportiere ich Werte einer Variable in eine Datei?
Set-Content -Path file.txt -Value $variable

Wie erhalte ich die Anzahl der .txt Dateien in einem Ordner?

Wie suche ich nach einem bestimmten String in mehreren Dateien?
Select-String -Path 'C:\*.txt' -Pattern 'Steve'

Wie kann ich die erste / letzte Zeile einer Datei anzeigen lassen?

Wie kann ich eine bestimmte Zeile (Nummer) einer Datei anzeigen lassen?

Wie erhalte ich die Anzahl der Zeilen einer Datei?

Wie erhalte ich die Anzahl der Zeichen und Wörter einer Datei?

Wie kann ich eine Datei mit PowerShell downloaden?
Invoke-WebRequest -Uri 'http://www.nirsoft.net/utils/searchmyfiles.zip' -OutFile 'C:\tools\searchmyfiles.zip'

Wie kann ich den vollen Pfad einer Datei anzeigen lassen?
Resolve-Path -Path .\script.ps1 # Return C:\Scripts\script.ps1

Copy

Wie kann ich eine Datei in einen Ordner kopieren?
Copy-Item -Path 'C:\source\file.txt' -Destination 'C:\destination'

Wie kann ich eine Datei in mehrere Ordner kopieren?

Wie kann ich mehrere Dateien in einen Ordner kopieren?
Get-ChildItem -Path 'C:\source' -Filter *.txt | Copy-Item -Destination 'C:\destination'

Up


Active Directory

Domain & Forest

Computers

Groups

Organizational Unit (OU)

Users

Domain & Forest

Wie finde ich “GlobalCatalogs” im aktuellen Verzeichnis?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs

Wie finde ich “Sites” im aktuellen Verzeichnis?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

Wie finde ich den aktuellen Domain-Controller (Hostname)?

Wie finde ich alle Domain Controller in einer Domain?

Wie finde ich die AD Replikationsfehler?
Get-ADReplicationFailure dc02.domain.com # Windows 8 and 2012

Wie erhalte ich die Tombstone Lebensdauer des Forest im aktiven Verzeichnis?

Wie erhalte ich die Details über den Forest / die Domian des aktiven Verzeichnisses?

Wie erhalte ich den Pfad für den “Gelöschte Objekte” Kontainer im aktiven Verzeichnis?
(Get-ADDomain).DeletedObjectsContainer

Wie aktiviere ich das AD Recycle Bin Feature im aktiven Verzeichnis?

Wie stelle ich ein AD Konto, vom Recycle Bin im aktiven Verzeichnis, wiederher?
Get-ADObject -Filter 'samaccountname -eq "powershellguru"' -IncludeDeletedObjects | Restore-ADObject

Wie finde ich die FSMO Rollen?

Wie stelle ich eine Verbindung zu einem spezifischen Domain Kontroller her?
Get-ADUser -Identity $user -Server 'serverDC01'

Wie erhalte ich den aktuellen Einlog-Server?

Wie führe ich “gpudate” auf einem Computer mit PowerShell aus?
Invoke-GPUpdate -Computer $computer -Force -RandomDelayInMinutes 0 # Windows 2012

Groups

Wie erstelle ich eine neue Gruppe im aktiven Verzeichnis?

Wie entfernt man eine Gruppe im aktiven Verzeichnis?
Remove-ADGroup -Identity 'PowershellGuru'

Wie füge ich einer Gruppe einen Benutzer im aktiven Verzeichnis hinzu?
Add-ADGroupMember "Powershell Guru" -Members powershellguru

Wie entferne ich einen Benutzer von einer Gruppe?
Remove-ADGroupMember 'Powershell Guru' -Members powershellguru

Wie finde ich leere Gruppen (ohne Mitglieder) im aktiven Verzeichnis?
Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}

Wie erhalte ich die Anzahl leerer Gruppen (ohne Mitglieder) im aktiven Verzeichnis?
(Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}).Count

Wie erhalte ich die Mitglieder einer Gruppe im aktiven Verzeichnis?

Wie erhalte ich die Mitglieder einer Gruppe, mit rekursiven Mitgliedern?

Wie erhalte ich die Anzahl der Mitglieder einer Gruppe mit / ohne rekursiven Mitgliedern?

Users

Wie benutzt man eine Wildcard im Filter von “Get-ADUser”?

Wie bewegt man einen Benutzer in ein anderes OU im aktiven Verzeichnis?
Move-ADObject -Identity $dn -TargetPath 'OU=myOU,DC=domain,DC=com'

Wie findet man alle verschachtelten MemberOf Werte eines Benutzers?
Get-ADGroup -LDAPFilter "(member:1.2.840.113556.1.4.1941:=$($dn))"

Wie erhält man alle MemberOf Werte (gekürzt) eines Benutzers?
(Get-ADUser -Identity $user -Properties MemberOf).MemberOf | ForEach-Object -Process {($_ -split ',')[0].Substring(3)} | Sort-Object

Wie kann man den Name(voller Name), DisplayName, GivenName(Vorname) und Surname(Nachname) eines Benutzers im aktiven Verzeichnis ändern?

Wie kann man die Beschreibung, das Büro und die Telefonnummer eines Benutzers ändern?
Set-ADUser $samAccountName -Description 'IT Consultant' -Office 'Building B' -OfficePhone '12345'

Wie kann man das Ablaufdatum zu “31/12/2015/” oder “Niemals” für einer Benutzer einstellen?

Wie kann man ein Benutzerkonto entsperren?
Unlock-ADAccount $samAccountName

Wie kann man ein Benutzerkonto aktivieren / deaktivieren?

Wie kann man ein Benutzerkonto entfernen?
Remove-ADUser $samAccountName

Wie kann man das Passwort eines Benutzerkontos zurücksetzen?

Wie kann man das Passwort für mehrere Benutzerkonten zurücksetzen?

Wie kann man den Besitzer einer Datei im aktiven Verzeichnis finden?

Wie kann man das OU (Organizational Unit) für einer Benutzer finden?
[regex]::match("$((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName)",'(?=OU=)(.*\n?)').value

Wie kann man deaktivierte Benutzerkonten im aktiven Verzeichnis finden?

Wie kann man abgelaufene Benutzerkonten im aktiven Verzeichnis finden?
Search-ADAccount -AccountExpired

Wie kann man gesperrte Benutzerkonten im aktiven Verzeichnis finden?
Search-ADAccount -LockedOut

Wie kann man die SID eines Benutzerkontos herausfinden?
(Get-ADUser -Identity $user -Properties SID).SID.Value

Wie kann man den Benutzername in eine SID konvertieren?

Wie kann man eine SID in einen Benutzernamen konvertieren?

Wie kann man den distinguierten Namen eines Benutzerkontos aufteilen?

Wie kann man das Datum der Erstellung / Änderung des Benutzerkontos herausfinden?
Get-ADUser -Identity $user -Properties whenChanged, whenCreated | Format-List -Property whenChanged, whenCreated

Wie stellt man die optionalen und obligatorischen Eigenschaften für die Klasse “User” dar?

Wie erhält man den LDAP Pfad für einen Benutzer im aktiven Verzeichnis?

Wie ändert man den CN (Kanonischen Namen) für einen Benutzer?
Rename-ADObject $((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName) -NewName 'Steve Renard'

Wie erhält man das übergeordnete OU eines Benutzers?

Wie erhält man den Besitzer eines Benutzers?

Wie konvertiert man das pwdLastSet Attribut für einen Benutzer?

Computers

Wie testet man den sicheren Kanal zwischen dem lokalen Computer und der Domain?
Test-ComputerSecureChannel

Wie repariert man den sicheren Kanal zwischen dem lokalen Computer und der Domain?
Test-ComputerSecureChannel -Repair

Wie deaktiviert man ein Computer Konto?
Disable-ADAccount $computer

Wie findet man Computer mit spezifischen Betriebssystemen im aktiven Verzeichnis?

Organizational Unit (OU)

Wie erstellt man ein OU im aktiven Verzeichnis?
New-ADOrganizationalUnit -Name 'STEVE' -Path 'DC=domain,DC=com'

Wie erhält man das OU im aktiven Verzeichnis?
Get-ADOrganizationalUnit 'OU=STEVE,DC=domain,DC=com' -Properties *

Wie ändert man die Beschreibung des OU im aktiven Verzeichnis?
Set-ADOrganizationalUnit 'OU=STEVE,DC=domain,DC=com' -Description 'My description'

Wie aktiviert / deaktiviert man den Schutz des OUs zur versehentlichen Löschung im aktiven Verzeichnis?

Wie aktiviert man die versehentliche Löschung für alle OUs im aktiven Verzeichnis?

Wie löscht man ein OU, welches vor versehentlichen Löschungen geschützt ist?

Wie konvertiert man einen DistinguishedName eines OUs zu einem CanonicalName?

Wie listet man leere OUs auf?

Wie erhält man den Manager einer Gruppe?
(Get-ADGroup $dn -Properties Managedby).Managedby

Up


Regex (Regular Expression)

Wie extrahiert man eine IP Adresse v4 (80.80.228.8) mit Regex?
$example = 'The IP address is 80.80.228.8'
$ip = [regex]::match($example,'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b').value

Wie extrahiert man eine MAC Adresse (C0-D9-62-39-61-2D) mit dem Separator “-” mit Regex?
$example = 'The MAC address is C0-D9-62-39-61-2D'
$mac = [regex]::match($example,'([0-9A-F]{2}[-]){5}([0-9A-F]{2})').value

Wie extrahiert man eine MAC Adresse (C0:D9:62:39:61:2D) mit dem Separator “:” mit Regex?
$example = 'The MAC address is C0:D9:62:39:61:2D'
$mac = [regex]::match($example,'((\d|([a-f]|[A-F])){2}:){5}(\d|([a-f]|[A-F])){2}').value

Wie extrahiert man ein Datum (10/02/2015) mit Regex?
$example = 'The date is 10/02/2015'
$date = [regex]::match($example,'(\d{2}\/\d{2}\/\d{4})').value

Wie extrahiert man eine URL (www.PowerShell-guru.com) mit Regex?
$example = 'The URL is www.powershell-guru.com'
$url = [regex]::match($example,'[a-z]+[:.].*?(?=\s)').value

Wie extrahiert man eine E-Mail Adresse (user@domain.com) mit Regex?
$example = 'The email is user@domain.com'
$email = [regex]::match($example,'(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b').value

Wie extrahiert man “guru” aus dem String-Beispiel mit Regex?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?=.com)').value

Wie extrahiert man “guru.com” aus dem String-Beispiel mit Regex?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?<=.)').value

Wie extrahiert man “PowerShell-guru.com” aus dem String-Beispiel mit Regex?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=www.)(.*\n?)').value

Wie extrahiert man “123” aus dem String-Beispiel mit Regex?
$example = 'Powershell123'
[regex]::match($example,'(\d+)').value

Wie extrahiert man “$” (Dollar Zeichen) aus dem String Beispiel mit Regex?
$example = 'Powershell`$123'
[regex]::match($example,'(\$)').value

Wie ersetzt man ein Zeichen (*.com) mit einem anderen (*.fr) in einem String mit Regex?
$example = 'www.powershell-guru.com'
[regex]::Replace($example, '.com','.fr')

Wie Escaped man einen String mit Regex?
[regex]::Escape('\\server\share')

Up


Memory

Wie erzwingt man eine Sammlung des Speichers mit dem “Garbage Collector”?
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

Wie erhält man die RAM Größe eines Computers mit PowerShell?

Up


Date

Wie erhält man das aktuelle Datum mit PowerShell?
Get-Date
[Datetime]::Now

Wie kann man sich das Datum in unterschiedlichen Formatierungen anzeigen lassen?

Wie konvertiert man ein Datum (Datumsangabe) zu einem String?

Wie konvertiert man ein Datum (String) in eine Datumsangabe?

Wie kalkuliert man den Unterschied (Nummer der Tage, Stunden, Minuten, Sekunden) zwischen zwei Datumsangaben?
(New-TimeSpan -Start $dateStart -End $dateEnd).Days
(New-TimeSpan -Start $dateStart -End $dateEnd).Hours
(New-TimeSpan -Start $dateStart -End $dateEnd).Minutes
(New-TimeSpan -Start $dateStart -End $dateEnd).Seconds

Wie vergleicht man zwei Datumsangaben miteinander?
(Get-Date 2015-01-01) -lt (Get-Date 2015-01-30) # True
(Get-Date 2015-01-01) -gt (Get-Date 2015-01-30) # False

Wie sortiert man ein Ansammlung von Daten als Datumsangaben?
$arrayDate | Sort-Object -Property {$_ -as [Datetime]}

Wie startet und stoppt man eine Stopuhr?
$chrono = [Diagnostics.Stopwatch]::StartNew()
$chrono.Stop()
$chrono

Wie erhält man den derzeitigen Wochentag?
(Get-Date).DayOfWeek #Sunday

Wie erhält man das gestrige Datum?
(Get-Date).AddDays(-1)

Wie erhält man die Anzahl der Tage in einem Monat?
[DateTime]::DaysInMonth(2015, 2)

Wie überprüft man ob dieses Jahr ein Schaltjahr ist?
[DateTime]::IsLeapYear(2015)

Wie kann man sich die Zeitzonen auflisten lassen?
[System.TimeZoneInfo]::GetSystemTimeZones()

Up


Networking

Wie kann man ASCII enkodieren und eine URL dekodieren?

Was sind die Equivalenten von nativen Netzwerkbefehlen in PowerShell?

Wie erhält man eine IP Adresse mit PowerShell?
Get-NetIPAddress # Windows 8.1 & Windows 2012
Get-NetIPConfiguration # Windows 8.1 & Windows 2012

Wie deaktiviert man die IPv6 IP Adressen mit PowerShell?

Wie überprüft man eine IP Adresse v4 (IPv4)?
if([ipaddress]'10.0.0.1'){'validated'}

Wie erhält man die externe IP Adresse mit PowerShell?

Wie erhält man den Hostname von einer IP Adresse?
([System.Net.Dns]::GetHostEntry($IP)).Hostname

Wie erhält man die IP Adresse eines Hostnames mit PowerShell?
([System.Net.Dns]::GetHostAddresses($computer)).IPAddressToString

Wie erhält man den FQDN von einem Hostname?
[System.Net.Dns]::GetHostByName($computer).HostName

Wie erhält man die Netzwerkonfiguration (IP, Subnet, Gateway und DNS)?

Wie erhält man die MAC Adresse mit PowerShell?
Get-CimInstance win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress
Get-WmiObject -Class win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress

Wie kann man einen anderen Computer anpingen?

Wie überprüft man ob ein anderer Computer mit dem Internet verbunden ist?

Wie führt man ein Whois-Lookup für eine Website aus?
$whois = New-WebServiceProxy 'http://www.webservicex.net/whois.asmx?WSDL'
$whois.GetWhoIs('powershell-guru.com')

Wie erhält man Details zu der externen IP (Geolocation)?

Wie überprüft man ob ein Port geöffnet / geschlossen ist?
New-Object -TypeName Net.Sockets.TcpClient -ArgumentList $computer, 135

Wie führt man eine tracert mit PowerShell aus?
Test-NetConnection www.google.com -TraceRoute

Wie behebt man das Netzwerkprofil “Zuhause” mit PowerShell?
Get-NetAdapter | Format-Table -Property Name, InterfaceDescription, ifIndex -AutoSize # Windows 8.1
Set-NetConnectionProfile -InterfaceIndex 6 -NetworkCategory Private

Wie zeigt man aktive TCP Port Verbindungen an?
netstat.exe -ano
Get-NetTCPConnection #Windows 8 and 2012

Wie verkürzt man eine lange URL?
$url = 'www.powershell-guru.com'
$tiny = Invoke-RestMethod -Uri "http://tinyurl.com/api-create.php?url=$url"

Wie erhält man Proxy Einstellungen mit PowerShell?
Get-ItemProperty -Path HKCU:"Software\Microsoft\Windows\CurrentVersion\Internet Settings"

DNS

Wie überprüft man den DNS Cache auf einem lokalen Computer?
ipconfig.exe /displaydns
Get-DnsClientCache #Windows 8 and 2012

Wie säubert man den DNS Cache auf dem lokalem Computer?
ipconfig.exe /flushdns
Start-Process -FilePath ipconfig -ArgumentList /flushdns -WindowStyle Hidden
Clear-DnsClientCache #Windows 8 and 2012

Wie säubert man den DNS Cache auf einem Remotecomputer?
Invoke-Command -ScriptBlock {Clear-DnsClientCache} -ComputerName computer01, computer02

Wie liest man die Hosts Datei aus?
Get-Content -Path 'C:\Windows\system32\drivers\etc\hosts'

Up


Password

Wie generiert man ein zufälliges Passwort mit PowerShell?
[Reflection.Assembly]::LoadWithPartialName('System.Web')
[System.Web.Security.Membership]::GeneratePassword(30,2)

Wie ändert man das lokale Passwort für das Administrator-Konto auf einem Remotecomputer?
$admin = [ADSI]('WinNT://server01/administrator,user')
$admin.SetPassword($password)
$admin.SetInfo()

Wie findet man das Ablaufdatum des Passworts für ein Benutzerkonto heraus?

Up


Printers

Wie listet man alle Drucker für einen spezifischen Server auf?
Get-WmiObject -Query 'Select * From Win32_Printer' -ComputerName $computer

Wie listet man alle Ports für einen spezifischen Server auf?
Get-WmiObject -Class Win32_TCPIPPrinterPort -Namespace 'root\CIMV2' -ComputerName $computer

Wie ändert man den Kommentar / den Ort eines Druckers?

Wie bricht man alle Druckaufträge eines Druckers ab?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.CancelAllJobs()

Wie druckt man eine Testseite aus?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.PrintTestPage()

Wie erhält man die Druckauftragsliste für bestimmte Drucker?

Up


Regedit

Read

Wie listet man die Eintragungsstöcke (Registry) auf?
Get-ChildItem -Path Registry::

Wie erhält man Registry Werte und Datentypen mit PowerShell?

Wie listet man Registry Schlüssel / Unterschlüssel auf?

Wie listet man Registry Schlüssel / Unterschlüssel rekursiv auf?
Get-ChildItem -Path 'HKLM:\SYSTEM' -Recurse -ErrorAction SilentlyContinue

Wie findet man Unterschlüssel mit einem spezifischen Name?
Get-ChildItem -Path 'HKLM:\SOFTWARE' -Include *Plugin* -Recurse -ErrorAction SilentlyContinue

Wie erhält man nur die Namen von Registry Unterschlüsseln?
(Get-ChildItem -Path 'HKLM:\SYSTEM').Name # Return HKEY_LOCAL_MACHINE\SYSTEM\ControlSet
Get-ChildItem -Path 'HKLM:\SYSTEM' -Name # Return ControlSet

Wie listet man Registry Werte mit PowerShell auf?
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'

Wie liest man einen spezfischen Registry Wert aus?
(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ProductName

Wie liest man einen spezfischen Registry Wert auf einem Remotecomputer aus?

Write

Wie erstellt man einen Registry Schlüssel mit PowerShell?
New-Item -Path 'HKCU:\Software\MyApplication'

Wie erstellt man einen Registry Wert mit PowerShell?
New-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '1.0'

Wie verändert man einen existierenden Registry Wert mit PowerShell?
Set-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '2.0'

Delete

Wie löscht man einen Registry Wert mit PowerShell?
Remove-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version'

Wie löscht man einen Registry Schlüssel mit PowerShell?
Remove-Item -Path 'HKCU:\Software\MyApplication' -Force

Test

Wie testet man ob ein Registry Schlüssel existiert?
Test-Path -Path 'HKCU:\Software\MyApplication'

Wie testet man ob ein Registry Wert existiert?
(Get-Item -Path 'HKCU:\Software\MyApplication').GetValueNames() -contains 'Version'

Up


Strings

Wie entfernt man Leerzeichen am Anfang eines Strings?
$string = ' PowershellGuru'
$string = $string.TrimStart()

Wie entfernt man Leerzeichen am Ende eines Strings?
$string = 'PowershellGuru '
$string = $string.TrimEnd()

Wie entfernt man Leerzeichen am Anfang und Ende eines Strings?
$string = ' PowershellGuru '
$string = $string.Trim()

Wie konvertiert man einen String zu Großbuchstaben?
$string = 'powershellguru'
$string = $string.ToUpper()

Wie konvertiert man einen String zu Kleinbuchstaben?
$string = 'POWERSHELLGURU'
$string = $string.ToLower()

Wie wählt man den Unterstring “PowerShell” aus dem String “PowerShellGuru” aus?
$string.Substring(0,10)

Wie wählt man den Unterstring “Guru” aus dem String “PowerShellGuru” aus?
$string.Substring(10)

Wie selektiert man die Nummer “123” aus “PowerShell123Guru”?
$string = 'Powershell123Guru'
[regex]::match($string,'(\d+)').value

Wie bekommt man den null-basierten Index aus “Guru” aus dem String “PowerShellGuru”?
$string.IndexOf('Guru') # 10

Wie überprüft man ob ein String den Wert “NULL” hat oder leer ist?
$string = $null
$string = ''
[string]::IsNullOrEmpty($string)

Wie überprüft man ob ein String den Wert “NULL” hat, leer ist oder nur aus Leerzeichen besteht?
$string = $null
$string = ''
$string = ' '
[string]::IsNullOrWhiteSpace($string)

Wie überprüft man ob ein String einen bestimmten Buchstaben enthält?
$string = 'PowershellGuru'
$string.Contains('s')
[regex]::match($string,'s').Success

Wie gibt man die Länge eines Strings mit PowerShell wieder?
$string.Length

Wie verkettet man zwei Strings miteinander?

Wie “matched” man einen String für eine oder mehrere eckige Klammern “[]”?
$string = '[PowershellGuru]'
$string -match '\[' # Only 1
$string -match '\[(.*)\]' # Several

Wie “matched” man einen String für eine oder mehrere Klammern “()”?
$string = '(PowershellGuru)'
$string -match '\(' # Only 1
$string -match '\((.*)\)' # Several

Wie “matched” man einen String für eine oder mehrere geschwungene Klammern “{}”?
$string = '{PowershellGuru}'
$string -match '\{' # Only 1
$string -match '\{(.*)\}' # Several

Wie “matched” man einen String für eine oder mehrere spitze Klammern “<>”?
$string = ''
$string -match '\<' # Only 1
$string -match "\<(.*)\>" # Several

Wie “matched” man einen String für alle Kleinbuchstaben (abc)?
$string = 'POWERSHELLGURU'
$string -cmatch "^[a-z]*$" #False

Wie “matched” man einen String für alle Großbuchstaben (ABC)?
$string = 'powershellguru'
$string -cmatch "^[A-Z]*$" #False

Wie “matched” man einen String für “[p” (p Kleinbuchstabe)?
$string = '[powershellGuru]'
$string -cmatch '\[[a-z]\w+' #True

Wie “matched” man einen String für “[P” (P Großbuchstabe)
$string = '[PowershellGuru]'
$string -cmatch '\[[A-Z]\w+' #True

Wie ersetzt man eine Zeile mit einer anderen mit PowerShell?
$a = 'Line A'
$b = 'Line B'
$a = $a -replace $a, $b

Wie konvertiert man eine Division-Operation in einen String?
(1/2).ToString('P')

Wie sortiert man Strings mit Zahlen?

Wie selektiert man das letzte Wort eines Satzes mit PowerShell?
$sentence = 'My name is Steve Renard'
$sentence.Split(' ')[-1] # Returns Renard

Wie erhält man das längste Wort eines Satzes?
$sentence = 'My name is Steve Renard'
$sentence.Split(' ') | Sort-Object -Property Length | Select-Object -Last 1 # Returns Renard

Wie erhält man die Anzahl, wie oft ein String in einem Satz auftaucht?
$sentence = 'steve steve steve renard'
[regex]::Matches($sentence, 'steve').Count # Returns 3

Wie kopiert man jedes Zeichen eines Strings in ein Zeichen-Array?

Wie konvertiert man den ersten Buchstaben eines Strings zu einem Großbuchstaben?

Wie kann man einen String nach links oder rechts “padden”?

Wie kann man einen String zu Base64 enkodieren und dekodieren?

Wie konvertiert man eine Zahl in und aus Binär?

Wie gibt man nur den letzten übergeordneten Ordner im Pfad aus?

Wie gibt man nur das letzte Objekt im Pfad aus?

Up


Math

Wie listet man alle Methoden der System.Math Klasse?
[System.Math] | Get-Member -Static -MemberType Method

Wie gibt man den absoluten Wert mit PowerShell aus?
[Math]::Abs(-12) #Returns 12
[Math]::Abs(-12.5) # Returns 12.5

Wie gibt man den Winkel des spezifischen Sinus aus?
[Math]::ASin(1) #Returns 1,5707963267949

Wie gibt man das aufgerundete aus?
[Math]::Ceiling(1.4) #Returns 2
[Math]::Ceiling(1.9) #Returns 2

Wie gibt man das abgerundete aus?
[Math]::Floor(1.4) #Returns 1
[Math]::Floor(1.9) #Returns 1

Wie gibt man den natürlichen Logarithmus (Basis e) einer bestimmten Zahl aus?
[Math]::Log(4) #Returns 1,38629436111989

Wie gibt man den Logarithmus mit Basis 10 einer bestimmten Zahl aus?
[Math]::Log10(4) #Returns 0,602059991327962

Wie gibt man das Maximum zweier Werte aus?
[Math]::Max(2,4) #Returns 4
[Math]::Max(-2,-4) #Returns -2

Wie gibt man das Minimum zweier Werte aus?
[Math]::Min(2,4) #Returns 2
[Math]::Max(-2,-4) #Returns -4

Wie gibt man eine Potenz aus?
[Math]::Pow(2,4) #Returns 16

Wie erhält man den nächsten Integralwert eines Dezimalwertes?
[Math]::Round(3.111,2) #Returns 3,11
[Math]::Round(3.999,2) #Returns 4

Wie erhält man den Integralteil einer spezifischen Dezimalzahl?
[Math]::Truncate(3.111) #Returns 3
[Math]::Truncate(3.999) #Returns 3

Wie erhält man die Quadratwurzel einer bestimmten Zahl?
[Math]::Sqrt(16) #Returns 4

Wie erhält man die PI Konstante mit PowerShell?
[Math]::Pi #Returns 3,14159265358979

Wie erhalt man die Basis des natürlichen Logarithmus (e Konstante)?
[Math]::E #Returns 2,71828182845905

Wie überprüft man ob eine Zahl gerade oder ungerade ist?
[bool]($number%2)

Up


Hashtables

Wie erstellt man eine leere Hashtabelle mit PowerShell?
$hashtable = @{}
$hashtable = New-Object -TypeName System.Collections.Hashtable

Wie erstellt man eine Hashtabelle mit Objekten?

Wie erstellt man eine Hashtabelle mit Objekten der nach Schlüssel / Name (Alphabetisch) geordnet ist?

Wie fügt man Objekte (Schlüssel-Wert-Paare) zu einer Hashtabelle hinzu?
$hashtable.Add('Key4', 'Value4')

Wie erhält man einen spezifischen Wert einer Hashtabelle?

Wie erhält man den minimalen Wert einer Hashtabelle?

Wie erhält man den maximalen Wert einer Hashtabelle?

Wie kann man Objekte in Hashtabellen modifizieren?
$hashtable.Set_Item('Key1', 'Value1Updated')

Wie entfernt man Objekte in einer Hastabelle?
$hashtable.Remove('Key1')

Wie säubert man eine Hashtabelle?
$hashtable.Clear()

Wie überprüft man ob ein bestimmter Schlüssel/Wert in einer Hashtabelle vorhanden ist?
$hashtable.ContainsKey('Key3')
$hashtable.ContainsValue('Value3')

Wie sortiert man eine Hashtabelle nach Schlüssel/Wert?
$hashtable.GetEnumerator() | Sort-Object -Property Name
$hashtable.GetEnumerator() | Sort-Object -Property Value -Descending

Up


Arrays

Wie erstellt man ein leeres Array?
$array = @()
$array = [System.Collections.ArrayList]@()

Wie erstellt man ein Array mit Objekten?
$array = @('A', 'B', 'C')
$array = 'A', 'B', 'C'
$array = 'a,b,c'.Split(',')
$array = .{$args} a b c
$array = echo a b c

Wie fügt man Objekte zu Arrays hinzu?
$array += 'D'
[void]$array.Add('D')

Wie ändert man ein Objekt in einem Array?
$array[0] = 'Z' # 1st item[0]

Wie überprüft man die Größe eines Arrays?
$array = 'A', 'B', 'C'
$array.Length # Returns 3

Wie erhält man ein Objekt / mehrere / alle Objekte aus einem Array?
$array = @('A', 'B', 'C')
$array[0] # One item (A)
$array[0] + $array[2] # Several items (A,C)
$array # All items (A,B,C)

Wie entfernt man leere Objekte eines Arrays?
$array = @('A', 'B', 'C', '')
$array = $array.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) | Sort-Object # A,B,C

Wie überprüft man ob ein Objekt in einem Array existiert?
$array = @('A', 'B', 'C')
'A' | ForEach-Object -Process {$array.Contains($_)} # Returns True
'D' | ForEach-Object -Process {$array.Contains($_)} # Returns False

Wie findet man die Index Nummer eines Objektes in einem Array?
$array = @('A', 'B', 'C')
[array]::IndexOf($array,'A') # Returns 0

Wie kehrt man die Ordnung von Objekten in einem Array um?
$array = @('A', 'B', 'C')
[array]::Reverse($array) # C,B,A

Wie generiert man zufällige Objekte aus einem Array?
$array | Get-Random

Wie sortiert man ein Array aufsteigend / absteigend?
$array = @('A', 'B', 'C')
$array | Sort-Object # A,B,C
$array | Sort-Object -Descending # C,B,A

Wie zählt man die Anzahl der Objekte in einem Array?
$array.Count

Wie fügt man ein Array zu einem anderen Array hinzu?
$array1 = 'A', 'B', 'C'
$array2 = 'D', 'E', 'F'
$array3 = $array1 + $array2 # A,B,C,D,E,F

Wie findet man Duplikate eines Arrays?
$array = 'A', 'B', 'C', 'C'
($array | Group-Object | Where-Object -FilterScript {$_.Count -gt 1}).Values # Returns C

Wie entfernt man Duplikate eines Arrays?
$array = 'A', 'B', 'C', 'C'
$array = $array | Select-Object -Unique
$array # Returns A,B,C

Wie erstellt man ein Array mit Objekten, die mit einem Prefix beginnen (“user01″,”user02″,…,”user10”)?
$array = 1..10 | ForEach-Object -Process { "user$_" }

Up


ACL

Wie listet man ACL eines AD Benutzers auf?
(Get-Acl -Path "AD:\$dn").Access

Wie listet man ACL eines Ordners auf?
(Get-Acl -Path C:\scripts).Access

Wie listet man spezifische ACL Erlaubniseinträge (Benutzer oder Gruppen) eines AD Benutzers?

Up


Variables

Was sind die gebräuchlichsten Datentypen in PowerShell?

Wie findet man die minimalen und maximalen Werte für einen bestimmten Typ von Variablen?

Wie testet man den Datentyp mit PowerShell?

Wie erstellt man eine Here-String Variable?

Wie erstellt man eine Variable mit PowerShell?
$powershellGuru = 'Hello'

Wie erstellt man eine konstante Variable?
Set-Variable -Name powershellGuru -Value 2015 -Option Constant

Wie erstellt man eine globale Variable?
$Global:powershellGuru = 'Hello' # Note : creating global variables is not recommended

Wie liest man eine Variable aus?
$powershellGuru = 'Hello' # Create
$powershellGuru # Read
Get-Variable -Name powershellGuru -ValueOnly # Read

Wie überprüft man den Typ einer Variable?
$powershellGuru.GetType()

Wie findet man Variablen in globaler Reichweiter?
Get-Variable -Scope Global

Wie erhält man spezifische Variablen anhand von Namen?
Get-Variable -Include *Preference -Exclude W*

Wie weist man einer Variable einen bestimmten Datentyp zu?
[int64]$variable = 100
[string]$variable = 'PowershellGuru'

Wie initialisiert man mehrere Variable zu dem selben Wert?
$a = $b = $c = $d = $e = 0

Was ist der Alias für die Variable “$_”?
Get-Process | Where-Object -FilterScript {$_.Handles -gt 1000} # Using $_
Get-Process | Where-Object -FilterScript {$PSItem.Handles -gt 1000} # Using $PSItem (since version 3)

Wie entfernt man Variablen deren Name mit “count” beginnt?
Remove-Variable -Name count*

Wie erhält man die lokalen Umgebungsvariablen mit PowerShell?
Get-ChildItem -Path Env:

Wie erhält man die Pfad Umgebungsvariable Zeile für Zeile?
($env:Path) -replace(';', "`n")
[Environment]::GetEnvironmentVariable('Path') -replace(';', "`n")

Wie fügt man einen neuen Pfad (bsp.: C:\SysinternalsSuite) zu der Pfad Umgebungsvariable hinzu?
$env:Path += ';C:\SysinternalsSuite'
$env:Path = $env:Path + ';C:\SysinternalsSuite'

Wie verkettet man Variablen mit PowerShell?
$a = 'Powershell'
$b = '- Guru'
$c = $a + $b

Wie benutzt man die ErrorVariable?
Get-Process -Name abcde -ErrorAction SilentlyContinue -ErrorVariable AccessDenied
$AccessDenied | Select-Object -Property Exception
$AccessDenied | Select-Object -Property TargetObject

Wie aktiviert / deaktiviert man das Äquivalent der “Option Explicit” (VBScript: erfordert das eine Variable erklärt ist)?

Up


Static .NET Methods

Wie erhält man statische Mitglieder mit PowerShell?
[DateTime] | Get-Member -Static

Up


Sounds

Wie spielt man den “Beep” Ton mit PowerShell ab?
[System.Console]::Beep()

Wie spielt man den “Asterisk” Ton mit PowerShell ab?
[System.Media.SystemSounds]::Asterisk.Play()

Wie spielt man den “Exclamation” Ton mit PowerShell ab?
[System.Media.SystemSounds]::Exclamation.Play()

Wie erhält man alle verfügbaren Töne?
[System.Media.SystemSounds] | Get-Member -Static

Wie spielt man WAV Töne mit PowerShell ab?
$soundPlayer = New-Object -TypeName System.Media.SoundPlayer -ArgumentList "$env:windir\Media\Ringout.wav"
$soundPlayer.Play()
oder
$soundPlayer.PlayLooping()
$soundPlayer.Stop()

Wie lässt man geschrieben Text vorlesen?
Add-Type -AssemblyName System.Speech
$speech = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$speech.Speak('Hello PowershellGuru')

Up


XML

Wie liest man eine XML Datei mit PowerShell aus?
[xml]$sitemap = Get-Content -Path .\sitemap.xml
$sitemap.urlset.url

Wie exportiert man Daten als XML Datei?
Get-Process | Export-Clixml -Path C:\scripts\processes.xml

Wie importiert man Daten aus einer CLIXML Datei?
$importProcesses = Import-Clixml -Path C:\scripts\processes.xml

Up


GUI

Wie erstellt man ein Basis GUI (Fenster Formen)?

Up


Characters

Wie konvertiert man ASCII Werte in ein Zeichen?
[char]64

Wie konvertiert man ein Zeichen zu einem ASCII Wert?
[int][char]'@'

Wie generiert man das (englische) Alphabet?
[char[]](97..122)

Up


Compare

Wie vergleicht man 2 Arrays?