Powershell Leitfaden für Anfänger
Da ja immer mal wieder die Frage nach Powershell-Lektüre von Neulingen in der Materie aufkommt, habe ich die wichtigsten Kapitel und Ressourcen zu den Grundlagen in diesem Tipp für euch zusammengestellt. Habt ihr eigene Listen oder sonstige Links,Lektüre,Blogs, etc. zum Thema Powershell die Ihr ergänzen möchtet, könnt ihr diese gerne unter den Beitrag in die Kommentare schreiben, dann haben wir das hier als kompakte Zusammenstellung auf die zukünftig von euch in Beiträgen verwiesen werden kann.
Mastering PowerShell (Tobias Weltner) [pdf
Deutschsprachige Powershell Bücher
PowerShell 5.0 - Windows-Automation für Einsteiger und Profis
O'Reilly - Windows Powershell
Playlist: Learn Powershell in a Month of lunches
Viel Spaß beim Lernen, Ihr werdet es definitiv nicht bereuen!
Gruß @colinardo
p.s. Links neigen ja dazu mit der Zeit ungültig zu werden, sollte mit der Zeit ein Link nicht mehr auf das verweisen was man erwartet und euch das auffallen, gerne eine kurze PN mit einem Hinweis darauf schicken, dann werde ich diesen korrigieren/ergänzen sofern noch möglich.
Powershell Leitfaden für Anfänger
Pflichtlektüre
- Kapitel 1: Erste Schritte mit PowerShell
- Kapitel 2: Das Hilfesystem
- Kapitel 3: Entdecken von Objekten, Eigenschaften und Methoden
- Kapitel 4: Einzeiler und die Pipeline
- Kapitel 5: Formatierung, Aliase, Anbieter, Vergleich
- Kapitel 6: Flusssteuerung
- Kapitel 7: Arbeiten mit WMI
- Kapitel 8: PowerShell-Remoting
- Kapitel 9: Funktionen
- Kapitel 10: Skriptmodule
- Anhang A: Hilfesyntax
Erweiterte Grundlagen
- Informationen zur Zeichenkodierung in Skripten (about_Character_Encoding)
- about_Pages - Wichtige Informationen zu diversen Powershell Konzepten
- Alles, was Sie schon immer über Arrays wissen wollten
- Alles, was Sie schon immer über Hashtabellen wissen wollten
- Was Sie schon immer über PSCustomObject wissen wollten
- Alles, was Sie schon immer über die Variablenersetzung in Zeichenfolgen wissen wollten
- Alles, was Sie schon immer über die IF-Anweisung wissen wollten
- Alles, was Sie schon immer über die switch-Anweisung wissen wollten
- Alles, was Sie schon immer über Ausnahmen wissen wollten
- Alles, was Sie schon immer über $null wissen wollten
- Alles, was Sie schon immer über ShouldProcess wissen wollten
- Verwenden von Erweiterung mit der TAB-TASTE
Zusätzliche Ressourcen
- Microsoft Official product documentation for PowerShell
- Microsoft PowerShell-Lernressourcen
- PowerShell-Modulbrowser / CMDLet Reference
- API-Referenz für PowerShell SDK
- Reguläre Ausdrücke in .NET (Regular Expressions)
- Powershell (MSXFAQ)
- PowerShell for Runaways - Part I
- PowerShell for Runaways - Part II
- SID-500.COM Blog PowerShell . Microsoft 365 . Azure . Automation . Cyber Security (MVP Patrick Gruenauer)
- PowerShell Rip tutorial
- Alternative zum veralteten CMDLet Send-MailMessage mit der Mailkit-Bibliothek
- Powershell Skripte direkt in Notepad++ mit Tastenkombination ausführen und testen (Dank an @TK1987)
- tio.run : PowerShell Skripte online testen/ausführen
- Erste Schritte mit PowerShell-KI
Bücher/eBooks
Mastering PowerShell (Tobias Weltner) [pdf
Deutschsprachige Powershell Bücher
PowerShell 5.0 - Windows-Automation für Einsteiger und Profis
O'Reilly - Windows Powershell
Videos
Playlist: Learn Powershell in a Month of lunches
Viel Spaß beim Lernen, Ihr werdet es definitiv nicht bereuen!
Gruß @colinardo
p.s. Links neigen ja dazu mit der Zeit ungültig zu werden, sollte mit der Zeit ein Link nicht mehr auf das verweisen was man erwartet und euch das auffallen, gerne eine kurze PN mit einem Hinweis darauf schicken, dann werde ich diesen korrigieren/ergänzen sofern noch möglich.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 768927593
Url: https://administrator.de/contentid/768927593
Ausgedruckt am: 08.11.2024 um 21:11 Uhr
34 Kommentare
Neuester Kommentar
@colinardo
Es macht immer wieder Spaß solches Wissen mitgeteilt zu bekommen.
ich beschäftige mich auch grade etwas mehr mit PowerShell. Habe mir dazu die Bücher und e-Books von Tobias Weltner und Holger Schwichtenberg gekauft. Grade als e-Books (PDF und epup) finde ich die Büxcher hilfreich. So hat man die Lektüre und kann parallel dazu am Rechner übern.
Frage: Es gibt von Tobias Weltner Mastering PowerShell als PDF. kann man den Link dazu hier posten?
Im Internet wird man fündig.
Gruss Penny.
Es macht immer wieder Spaß solches Wissen mitgeteilt zu bekommen.
ich beschäftige mich auch grade etwas mehr mit PowerShell. Habe mir dazu die Bücher und e-Books von Tobias Weltner und Holger Schwichtenberg gekauft. Grade als e-Books (PDF und epup) finde ich die Büxcher hilfreich. So hat man die Lektüre und kann parallel dazu am Rechner übern.
Frage: Es gibt von Tobias Weltner Mastering PowerShell als PDF. kann man den Link dazu hier posten?
Im Internet wird man fündig.
Gruss Penny.
Ich wollte nur sichergehen, daß niXX verbotenes kommt. Urheberrechtgesetz.
Und bitte den Link in Deinem Beitrag hinzufügen.
Und noch eine Quelle.
Mastering PowerShell
Ich hatte mir das schon vor längerer zeit runtergeladen und gespeichert.
Mal schauen, was ich von REXX nach PowerShell übernehmen bzw. übernehmen kann. Mit VBScript habe ich mal angefangen und dann abgebrochen, weil es inkonsistent war / ist. Und mit Perl habe ich auch sehr lange nicht mehr zu tun gehabt.
Derzeit kann ich bei meinem Arbeitgeber und meinen Projekten die Skripte noch mit REXX durchführen.
Gruss Penny.
Und bitte den Link in Deinem Beitrag hinzufügen.
Und noch eine Quelle.
Mastering PowerShell
Ich hatte mir das schon vor längerer zeit runtergeladen und gespeichert.
Mal schauen, was ich von REXX nach PowerShell übernehmen bzw. übernehmen kann. Mit VBScript habe ich mal angefangen und dann abgebrochen, weil es inkonsistent war / ist. Und mit Perl habe ich auch sehr lange nicht mehr zu tun gehabt.
Derzeit kann ich bei meinem Arbeitgeber und meinen Projekten die Skripte noch mit REXX durchführen.
Gruss Penny.
Guten Morgen
Auch von meiner Seite ..... ein riesengroßes Danke.
Auch auf diesen beiden Seiten habe ich einiges gelernt:
https://sid-500.com/
https://www.powershell.co.at/
Auch von meiner Seite ..... ein riesengroßes Danke.
Auch auf diesen beiden Seiten habe ich einiges gelernt:
https://sid-500.com/
https://www.powershell.co.at/
Hallo @colinardo
Super Zusammenfassung - Danke!
Vielleicht noch ergänzen um riptutorials mit Begrenzung auf Powershell
https://riptutorial.com/topic?q=powershell&submit=Search
Gruß
karl-heinz
Super Zusammenfassung - Danke!
Vielleicht noch ergänzen um riptutorials mit Begrenzung auf Powershell
https://riptutorial.com/topic?q=powershell&submit=Search
Gruß
karl-heinz
@colinardo
zusätzlich auf englisch noch onlineprogrammingbooks
https://www.onlineprogrammingbooks.com/search/?q=powershell
zusätzlich auf englisch noch onlineprogrammingbooks
https://www.onlineprogrammingbooks.com/search/?q=powershell
@colinardo:
Geile Sammlung Leider führt der Link zum eBook von Tobias Weltner ins Nirwana:
"Die Website ist nicht erreichbar
Die Server-IP-Adresse von www.bonusbits.com wurde nicht gefunden."
Gibt's da vllt. eine Aktualisierungsmöglichkeit?
Besten Dank!
Edit: korrekten Bezug zum eBook hinzugefügt
Geile Sammlung Leider führt der Link zum eBook von Tobias Weltner ins Nirwana:
"Die Website ist nicht erreichbar
Die Server-IP-Adresse von www.bonusbits.com wurde nicht gefunden."
Gibt's da vllt. eine Aktualisierungsmöglichkeit?
Besten Dank!
Edit: korrekten Bezug zum eBook hinzugefügt
Der Link zu Mastering Powershell funktioniert noch. grade eben getestet.
Siehe hier: Powershell Leitfaden für Anfänger
Gruss Penny.
Siehe hier: Powershell Leitfaden für Anfänger
Gruss Penny.
Moin Uwe,
vielleich wäre es noch ganz nützlich für Anfänger zu Wissen, dass man sich in Notepad++ unter
"Ausführen > Externes Programm ausführen" folgenden Befehl abspeichern und mit einer Tastenkombination versehen kann, um die Powershell-Skripte direkt damit ausführen und testen zu können:
(Vorraussetzung ist, dass das jeweilige Skript vor der Ausführung gespeichert wurde).
Gruß Thomas
vielleich wäre es noch ganz nützlich für Anfänger zu Wissen, dass man sich in Notepad++ unter
"Ausführen > Externes Programm ausführen" folgenden Befehl abspeichern und mit einer Tastenkombination versehen kann, um die Powershell-Skripte direkt damit ausführen und testen zu können:
powershell -NoExit -EP ByPass -Command "cd -LiteralPath '$(CURRENT_DIRECTORY)';. '.\$(FILE_NAME)'"
Gruß Thomas
Klasse Zusammenstellung. Danke!
Ganz nette Einführung ist die Playlist: Learn Powershell in a Month of lunches
Gruß Stephan
Ganz nette Einführung ist die Playlist: Learn Powershell in a Month of lunches
Gruß Stephan
Ich steuere mal https://www.cbtnuggets.com/it-training/microsoft/powershell bei..
Kein überflüssiges Gelaber sondern guter Content!
Ansonsten noch ein Tipp für die Anzeige der dauerhaften Powershell-Historie.
So kann man jederzeit F7 drücken und sich die Historie (auch die vergangener Sitzungen!) anzeigen lassen!
Unheimlich praktisch ist auch, dass direkt gefiltert wird, wenn ich nur den ersten Teil eines Befehls eingebe!
Besteht aus 2 Teilen:
Kein überflüssiges Gelaber sondern guter Content!
Ansonsten noch ein Tipp für die Anzeige der dauerhaften Powershell-Historie.
So kann man jederzeit F7 drücken und sich die Historie (auch die vergangener Sitzungen!) anzeigen lassen!
Unheimlich praktisch ist auch, dass direkt gefiltert wird, wenn ich nur den ersten Teil eines Befehls eingebe!
Besteht aus 2 Teilen:
if (!(Test-Path (Split-Path $profile))) { mkdir (Split-Path $profile) } ; if (!(Test-Path $profile)) { New-Item $profile -ItemType file } ; notepad $profile
function MyHistory()
{
Set-PSReadlineKeyHandler -Key F7 -BriefDescription "History" -LongDescription "Show command history" -ScriptBlock {
$pattern = $null
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref] $pattern, [ref] $null)
if ( $pattern ) {
$pattern = [Regex]::Escape($pattern)
}
$history = [System.Collections.ArrayList] @(
$last = ""
$lines = ""
foreach ( $line in [System.IO.File]::ReadLines((Get-PSReadlineOption).HistorySavePath) )
{
if ( $line.EndsWith('`') ) {
$line = $line.Substring(0, $line.Length - 1)
$lines = if ( $lines ) { "$lines`n$line" } else { $line }
continue
}
if ( $lines ) {
$line = "$lines`n$line"
$lines = ""
}
if ( ($line -cne $last) -and ((-not $pattern) -or ($line -match $pattern)) ) {
$last = $line
$line
}
}
)
$command = $history | Out-GridView -Title History -PassThru
if ( $command ) {
[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
[Microsoft.PowerShell.PSConsoleReadLine]::Insert(($command -join "`n"))
}
}
}
MyHistory
Write-Host "Press F7 for command history
"
Zitat von @Knorkator:
So kann man jederzeit F7 drücken und sich die Historie (auch die vergangener Sitzungen!) anzeigen lassen!
So kann man jederzeit F7 drücken und sich die Historie (auch die vergangener Sitzungen!) anzeigen lassen!
Hallo knorkator
Powershell verfügt über zwei Verlaufsanbieter:
- intern (MS Learn)
- "PSReadLine" wird mit PS 7.x ausgeliefert.
F7 funktioniert bei mir unter PS 5.x nicht. Die anderen Befehle jedoch schon.
Sowohl in Terminal als auch direkt in Powershell.
PSReadline in PS 5 installiert. Unverändert. F7 hat keinen Effekt
Beste Grüsse
Salü Uwe
A: das der Verlauf <> Null sein muss, habe ich mir gedacht. D.h. ein paar Befehle wie gci / get-acl / etc. eingegeben
B: Wer nutzt noch ISE? Das ist der Ford-T unter den PS Terminals
C: NB hat Win 10 / Desktop Win 11 derselbe Effekt. D.h. das es da einen Sachverhalt gibt, den auch andere erleben. Die Historie funktioniert. D.h. mit den Pfeiltasten und den Befehlen aus dem CMDLET kann ich arbeiten. Nur F7 ist tot
Kein Beinbruch. Die restlichen Möglichkeiten sind völlig ausreichend.
Beste Grüsse
Peter
A: das der Verlauf <> Null sein muss, habe ich mir gedacht. D.h. ein paar Befehle wie gci / get-acl / etc. eingegeben
B: Wer nutzt noch ISE? Das ist der Ford-T unter den PS Terminals
C: NB hat Win 10 / Desktop Win 11 derselbe Effekt. D.h. das es da einen Sachverhalt gibt, den auch andere erleben. Die Historie funktioniert. D.h. mit den Pfeiltasten und den Befehlen aus dem CMDLET kann ich arbeiten. Nur F7 ist tot
Kein Beinbruch. Die restlichen Möglichkeiten sind völlig ausreichend.
Beste Grüsse
Peter
Haha! Lieber einen Ford T der laüft als einen Testla mit defektem Akku. Da könnte man auch fragen: " Wozu PS7 wenn man es erst mal installieren muss...
Die ISE macht ihren Dienst wesentlich zuverlässiger als Code, aber das ist nur meine bescheidene Meinung nach 16 Jahren Powershell und vielen Entwicklungsumgebungen.
Zitat von @PeterGyger:
Bevor die HC "ISE for Ever" Group mich auf dem Scheiterhaufen bruzelt, ziehe ich meine Aussage zurück
Bevor die HC "ISE for Ever" Group mich auf dem Scheiterhaufen bruzelt, ziehe ich meine Aussage zurück
Es geht nicht darum dich zu brutzeln weil du die ISE nicht magst, Aber du scheinst die Vorteile eines stabilen Board-Mittels nicht zu schätzen. Das wollte ich korrigieren. Für meine Arbeit z.B. ist das sehr wichtig.
Was PS7 angeht:
- Für das Verwalten von vielen 1000 Clients via SCCM, unmöglich. Mit PS7 bekäme ich 100% Errors zurück, weil in allen Enterprise-Tools wie z.B. SCCM immer noch PS 5.x der Standard ist.
- Auch auf Windows-OS ist PS 5.x Standard (siehe).
- PS7 wird viel zu stark weiterentwickelt. Keine Zeit herausgefallene oder geänderte Funktionen in den Verwaltungstools nachzuziehen...
- Für mich ist PS7 als Insellösung ganz passabel, sobald es aber integrativ verwendet werden soll, fällt es raus.
PS:
"Wer Terminal nicht kennt, der pennt" :-p
Ja! Terminal ist eh nett 😉. Für die, die auf ihrer Firmen-Maschine machen dürfen was sie wollen 🤷♂️😜"Wer Terminal nicht kennt, der pennt" :-p
Grüße!
Zitat von @colinardo:
Bitte in diesem Thread jetzt keine Grundsatzdiskussionen über Editoren beginnen, da hat jeder seine eigenen Preferenzen und jeder seine Daseinsberechtigung. Merci.
Bitte in diesem Thread jetzt keine Grundsatzdiskussionen über Editoren beginnen, da hat jeder seine eigenen Preferenzen und jeder seine Daseinsberechtigung. Merci.
Hast recht! Alles Klar!
Hallo mayhoo33
Microsoft hatte immer viel Geduld mit dem Ablösen von Legacy Produkten.
Ich schätze bewährte Onboard Tools. Wenn ich in CMD "schnell" etwas erledigen kann, wechsle ich nicht die Win-PS und tippe einen Bandwurm.
Powershell (7) und Windows Powershell sind nicht dasselbe.
Das frustriert dann die PS Benutzer, wenn es in GitHub heisst: "Sorry das ist Sache des Betriebssystemes"
Die Schnittstelle zu den Enterprise Tools ist sicher ein starkes Argument, dass für Microsoft zieht.
Aber Fakt ist, dass irgendwann Windows Powershell aufgegeben wird. Strategige
Das war vor Jahren der Grund mich zu zwingen mit Win PS zu arbeiten. GCI statt Dir.
Edlin mit seinem Ebenen Modus alle VI ist nett. Edit.com war besser. Notepad++ noch immer mein Liebling
Aber Visual Studio Code bietet unglaubliche Möglichkeiten und deckt einen weiten Bereich an Möglichkeiten ab. U.a. Powershell Skripte zu erstellen. Oder Python, welches MS für Excel entdeckt hat.
Terminal ist wie VSC so unglaublich vielseitig. Von MS Subsystemen, Shells kann ich so gut wie alles machen und mit JSON ist es schnell konfiguriert.
Gegenargument ist sicher Komplexität. Die Unix Welt Philosophie hat einiges für sich: "Ein Tool macht eine Sache". Aber genauso wie Bash und andere Vertreter der analogen Welt ist das 21. Jahrhundert objektorientiert. Ich hätte es gerne "einfacher", aber ich muss zugeben das die neuen "Hoover Boards" nach ein paar Büchern mit Aspirin aufregend sind...
Last but not least:
Jedem sei gewünscht, dass er nach seiner Facon selig werden kann!
Beste Grüsse
Microsoft hatte immer viel Geduld mit dem Ablösen von Legacy Produkten.
Ich schätze bewährte Onboard Tools. Wenn ich in CMD "schnell" etwas erledigen kann, wechsle ich nicht die Win-PS und tippe einen Bandwurm.
Powershell (7) und Windows Powershell sind nicht dasselbe.
Das frustriert dann die PS Benutzer, wenn es in GitHub heisst: "Sorry das ist Sache des Betriebssystemes"
Die Schnittstelle zu den Enterprise Tools ist sicher ein starkes Argument, dass für Microsoft zieht.
Aber Fakt ist, dass irgendwann Windows Powershell aufgegeben wird. Strategige
Das war vor Jahren der Grund mich zu zwingen mit Win PS zu arbeiten. GCI statt Dir.
Edlin mit seinem Ebenen Modus alle VI ist nett. Edit.com war besser. Notepad++ noch immer mein Liebling
Aber Visual Studio Code bietet unglaubliche Möglichkeiten und deckt einen weiten Bereich an Möglichkeiten ab. U.a. Powershell Skripte zu erstellen. Oder Python, welches MS für Excel entdeckt hat.
Terminal ist wie VSC so unglaublich vielseitig. Von MS Subsystemen, Shells kann ich so gut wie alles machen und mit JSON ist es schnell konfiguriert.
Gegenargument ist sicher Komplexität. Die Unix Welt Philosophie hat einiges für sich: "Ein Tool macht eine Sache". Aber genauso wie Bash und andere Vertreter der analogen Welt ist das 21. Jahrhundert objektorientiert. Ich hätte es gerne "einfacher", aber ich muss zugeben das die neuen "Hoover Boards" nach ein paar Büchern mit Aspirin aufregend sind...
Last but not least:
Jedem sei gewünscht, dass er nach seiner Facon selig werden kann!
Beste Grüsse