Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Die PowerShell ist ein .NET-basiertes Command Line Interface (CLI) zur Steuerung von Windows

Die Windows PowerShell ist Microsoft neue Lösung für die kommandozeilenbasierte Administration und Scripting in Windows. Erstmals kann sich eine Windows-Shell mit den Unix-Shells messen und ist ihnen durch das typisierte Pipelining (Objekt-Pipelining) überlegen

Frühere Namen: Microsoft Shell (MSH), Microsoft Command Shell
Codename: Monad

Versionen



Version 1.0 erschienen am: 6.11.2006 verfügbar für: Windows XP und höher
Version 2.0 erschienen am: 22.7.2009 verfügbar für: Windows XP und höher
Version 3.0 erschienen am: 15.8.2012 verfügbar für: Windows 7/Windows Server 2008 und höher; enthalten in Windows 8 / Windows Server 2012
Version 4.0 erscheint am: Oktober 2013 verfügbar für: Windows 7/Windows Server 2008 und höher; enthalten in Windows 8.1 / Windows Server 2012 R2

Kernfunktionen


Die Kernfunktionen der PowerShell sind:
- Zahlreiche eingebaute Befehle, die "Commandlets" genannt werden.
- Zugang zu allen Systemobjekten, die durch COM-Bibliotheken, das .NET Framework und die Windows Management Instrumentation (WMI) bereitgestellt werden.
- Robuster Datenaustausch zwischen Commandlets durch Pipelines basierend auf typisierten Objekten.
- Ein einheitliches Navigationsparadigma für verschiedene Speicher (z.B. Dateisystem, Registrierungsdatenbank, Zertifikatsspeicher, Active Directory und Umgebungsvariablen).
- Eine einfach zu erlernende, aber mächtige Skriptsprache mit wahlweise schwacher oder starker Typisierung.
- Ein Sicherheitsmodell, das die Ausführung unerwünschter Skripte unterbindet.
- Integrierte Funktionen für Ablaufverfolgung und Debugging.
- Die PowerShell kann um eigene Befehle erweitert werden.
- Die PowerShell kann in eigene Anwendungen integriert werden (Hosting).

Beispiele


- Beende alle Prozesse durch Aufruf der Methode Kill(), die „iexplore“ heißen, wobei die Groß-/Kleinschreibung des Prozessnamens irrelevant ist.

Get-Process | where { $_.processname -ieq "iexplore" } | foreach { $_.Kill() }

- Sortiere die Prozesse, die das Wort „iexplore“ im Namen tragen, gemäß ihrer CPU-Nutzung und beende den Prozess, der in der aufsteigenden Liste der CPU-Nutzung am weitesten unten steht (also am meisten Rechenleistung verbraucht).

Get-Process | where { $_.processname -ilike "*iexplore*" } | Sort-Object –p cpu | Select-Object -last 1 | foreach { $_.Kill() }

- Gib die Summe der Speichernutzung aller Prozesse aus.

Ps | Measure-Object workingset

- Gruppiere die Einträge im System-Ereignisprotokoll nach Benutzernamen.

Get-Ereignisprotokoll -logname system | Group-Object username

- Zeige die letzten zehn Einträge im System-Ereignisprotokoll.

Get-Ereignisprotokoll -logname system | Select-Object –last 10

- Zeige für die letzten zehn Einträge im System-Ereignisprotokoll die Quelle an.

Get-Ereignisprotokoll -logname system | Select-Object –first 10 | Select-Object -p source

- Importiere die Textdatei test.txt, wobei die Textdatei als eine CSV-Datei mit dem Semikolon als Trennzeichen zu interpretieren ist und die erste Zeile die Spaltennamen enthalten muss. Zeige daraus die Spalten ID und Url.

Import-Csv d:\_work\test.txt -delimiter ";" | Select-Object -p ID,Url

- Ermittle aus dem Verzeichnis System32 alle Dateien, die mit dem Buchstaben „a“ beginnen. Beschränke die Menge auf diejenigen Dateien, die größer als 40.000 Byte sind, und gruppiere die Ergebnismenge nach Dateinamenerweiterungen. Sortiere die gruppierte Menge nach dem Namen der Dateierweiterung.

Get-ChildItem c:\windows\system32 -filter a*.* | Where-Object {$_.Length –gt 40000} | Group-Object Erweiterung | Sort-Object name | Format-Table

- Ermittle aus dem Verzeichnis System32 alle Dateien, die mit dem Buchstaben „b“ beginnen. Beschränke die Menge auf diejenigen Dateien, die größer als 40.000 Byte sind, und gruppiere die Ergebnismenge nach Dateierweiterungen. Sortiere die Gruppen nach der Anzahl der Einträge absteigend und beschränke die Menge auf das oberste Element. Gib für alle Mitglieder dieser Gruppe die Attribute Name und Length aus.
Get-ChildItem c:\windows\system32 -filter b*.* | Where-Object {$_.Length –gt 40000} | Group-Object Erweiterung | Sort-Object count -desc | Select-Object -first 1 | Select-Object group | foreach {$_.group} |

Select-Object name,length | Format-Table

Weitere Informationen finden Sie in diesen Beiträgen:
AppFabric
Exchange Management Shell
Microsoft Assistance Markup Language
Microsoft Shell
Microsoft SQL Server 2008
Monad
NuGet Library Package Manager
Objekt-Pipelining
Powershell
PowerShell Community Extensions
Visual Studio 2008 Shell
Windows Management Framework
Windows Management Instrumentation Version 2
Windows PowerShell 2.0
Windows PowerShell 3.0
Windows PowerShell 4.0
Windows PowerShell Remoting Protocol
Windows PowerShell Web Access
Windows Remote Management
Windows Server 2012