Bei der VHS Braunschweig findet eine Systembetreuer-Schulung zum Thema
"Powershell und Tools für Admins" statt
Die halbjährliche Veranstaltung führt in die Praxis der modernen Befehlszeile
Powershell und in diverse Rettungsszenarien in Form von optischen Medien und USB-Speichern ein.
Ort: VHS Braunschweig, Raum 2.01
Zeiten: 6 Donnerstag-Abende; jeweils 19.00 - 21.15 Uhr
Achtung Terminänderung:
Do. 03.12.09 fällt aus - verlegt auf Do. 10.12.09 ab 16.30 Uhr!
Wie immer viel Spaß an unseren Seminaren - Ihr Trainer Joe Brandes
Hier die Inhalte - der "Rote Faden":
Do, 12.11.2009, 19.00 - 21.15 Uhr
- Powershell ist keine Sammlung von Programmen, sondern:
Objektorientiert, abhängig von .NET Techniken
- Powershell Versionen 1.0 und 2.0
Empfehlung: 2.0 ermöglichen (also: für .NET 3.5 sorgen!)
Native bei Windows 7, Server 2008 R2
bei anderen Win-OS: Download des Windows Remote Framework 2.0 (PS 2.0 und Co)
- Interaktiv (vs. Skripting)
nächste Zeile mit `
Vervollständigung mit TAB (sowohle Pfade/Dateiname als auch Aufrufe und Attribute/Parameter)
Funktionstasten F5 und F7 (für Zusatzfenster)
Cursortasten (History der Befehlszeile)
eigenes Profil mit $profile
Mathe und Co (2+3 , "hello"*3)
ping www.bahn.de (Standardprogramme der alten Shell)
notepad (Aufruf von Standarprogrammen in der Konsole)
- Technik-Nachfolger von:
Eingabeaufforderung (cmd - Shell)
Batchdateien (*.bat, *.cmd)
Windows Script Host (WSH)
Makrosprachen in Anwendungen
- commandlets (236 in PS 2.0)
Keine Programme (!) sondern .NET-Klassen
Syntax: Verb-Substantiv [-Parameter] (engl.: verb-noun)
nicht case-sensitive - keine Groß-/Kleinschreibung
- Standardparameter:
-whatif ("Was wäre wenn" - Ausführung simulieren)
-confirm (intelligente Bestätigungen)
-verbose (Ausführlichere Infos über Durchführung)
-force (Erzwingen, z.B. Anzeige versteckter Systemdateien)
- Beispiel-cmdlets (Praxis):
get-process (Anzeige der Prozessliste)
get-service (Anzeige der Dienste)
get-hotfix (Anzeige der Updates/Hotfixes)
get-ComputerRestorePoint (Anzeige Wiederherstellungspunkte - Hier: Admin-Berechtigung!)
get-childitem
get-childitem *.exe
get-childitem c:\programme *.exe -recurse
weitere cmdlets: stop-process, get-command, revmove-item
dir (als Alias für get-childitem)
get-alias d* (get-alias l*)
set-location c:\ (Alias cd) - Hilfen mit get-help
get-help get-process
get-help get-process -detailled
get-help get-process -full
get-help get-process -examples
Do, 19.11.2009, 19.00 - 21.15 Uhr
- Pipelining (oder auch kurz Piping)
Aneinanderhängen von Shellaufrufen, Ausgaben werden weitergegeben
hier das Besondere: Objekte! (siehe hier get-member)
Beispiel:
get-service | where-object{$_.status -eq "running"} | out-file c:\windows\temp\lfddienste.txt - spezielle Objekte:
get-process | file-table name, company, product
hier: company als ScriptProperty - Übungen Pipelining mit besonderen Objekt-Behandlungen
get-service | sort-object status
get-service | group-object status
get-service | out-gridview
Anm.: letzteres cmdlet out-gridview nur PS 2.0 (und auch .NET 3.5 nötig) - Übungen mit 3* Wordpad (start wordpad)
get-process wordpad
get-process wordpad | sort-object ws -desc
get-process wordpad | sort-object ws -desc | select-object -first 1 | get-member (Anm.:immer noch NET-Klassen)
get-process wordpad | sort-object ws -desc | select-object -first 1 | foreach-object {$_.kill()}
get-process wordpad | sort-object ws -desc | select-object -first 1 | stop-process - Provider für die Powershell
Filesystem, Registry, Zertifikatsspeicher, Alias, Environment, Function Variablen (Standard-Provider)
get-PSProvider
set-location HKLM: - Erweiterung der PS mit weiteren Schnittstellen (WMI, .NET, COM)
commandlets decken nur Teil der OS-Aufrufsmöglichkeiten und Techniken ab!
Zusätzliche Aufrufe mittels Get-WmiObject und New-Object für
WMI (Windows Management Interface)
get-wmiobject Klasse
.NET (Dot.NET-Bibliotheken)
$o = new-object Klasse
[Klasse]::Name (hier: statische Klassen - keine Erzeugung)
COM (Component Object Model)
$wsh = new-object -com "Klasse" - Beispiele WMI:
get-wmiobject win32_processor
get-wmiobject win32_networkadapter
get-wmiobject win32_account
get-wmiobject -list (Anm.: statt der MSDN Dokumentation)
get-wmiobject -list | measure-object (Anm.: nur Standard Namensraum Root\CIMV2)
get-wmiobject -list -namespace root\securitycenter
z.B. in Win7 über 7000 Klassen (und das ohne Zusatzprodukte wie Office) - Beispiel .NET:
Anm.: .Net 3.5 ca. 10.000 Klassen plus Zusatz-Server SQL, ...
$wc = new-object System.Net.WebClient
$wc | get-member
$wc.DownloadString("http://www.vhs-braunschweig.de")
$wc.DownloadString("http://www.vhs-braunschweig.de") | out-file c:\temp\website.htm
statische Klassen:
[System.Environment]::UserName
[System.Environment]::MachineName - Neue Objekt erstellen:
new-item -itemtype file test.txt
new-item -itemtype directory test - $PROFILE
aufrufen und checken mit
test-path $profile (Anm.: ergibt TRUE oder FALSE)
in einem Rutsch erstellen: New-Item -Path $PROFILE -type file -Force
Achtung: bei Versuch $profile zu nutzen kommt Fehlermeldung weil: - ExecutionPolicy muss konfiguriert werden
Skripte *.ps1 dürfen nur bei ausreichender Richtlinie ausgeführt werden!
Befehle: Get-ExecutionPolicy, Set-ExecutionPolicy
Do, 26.11.2009, 19.00 - 21.15 Uhr
- Problem: Termin "Abend 04" am nä Do 03.12.2009 muss ausfallen
Lösung: Termin "Abend 05" am Do 10.12.09 als Doppel-Abend ab 16.30 - 21.15 Uhr - ExecutionPolicy analysieren (get-help)
Modi unterscheiden nach "lokal - remote" und "signiert - nicht signiert"
4 Hauptmodi: Restricted, Unrestricted, AllSigned, RemoteSigned - $profile aufmotzen:
set-location
set-alias (z. B. set-alias d get-date)
Temporäre Wirkung - siehe Schließen der Powershell-Fenster - Aliase (importieren und exportieren)
export-alias -path .\skripts\aliase.txt
import-alias -path .\skripts\aliase.txt
Hinweis: besser spezielle Aliase benennen mit joebd, joebe, ... - export-alias joeb* -path ... - Funktionen: (in $profile ablegen!)
Hier ein Beispiel für COM-Nutzung:
function cdd { $shell = New-Object -comObject "Shell.Application" $options = 0x51 # Nur Dateisystem-Ordner $loc = $shell.BrowseForFolder(0, "Wohin soll es gehen?", $options) if($loc) {Set-Location $loc.Self.Path} }
- net-Services Befehle (Hauptbefehl net)
net view (aktuelle/eigene Workgroup/Domain)
Bsp.: net view d:/dom-wg
net use (Netzlaufwerk/Netzdrucker verbinden/trennen)
Bsp.: net use z: \\iserv\public\__powershell_tools - net use z: /delete
siehe Hilfe für Nutzung von Benutzername und Passwort, wenn Authentifizierung nötig
net share (Freigaben anzeigen)
net user (Benutzer auflisten und konfigurieren)
net accounts (Kontenberechtigungen auflisten und konfigurieren) - Netzwerk-Analyse/Konfiguration in der Shell
ipconfig /all - ipconfig /renew
ping www.domname.tld (wichtig: neue Parameter -4 und -6 für IP und IPv6)
tracert www.domname.tld
pathping www.domname.tld (Kombination ping und tracert)
arp -a (Adress Resolution Protocol - Auflösung MAC und IP Adressen)
netstat -a - netstat -an (Protokollstatistik: Port, TCP/UDP, Routen) - netsh (Spezial-Shell für Netzwerkkonfiguration)
interaktive Shell, nach Aufruf siehe help und Navigation mit .. durch Kontexte
Sicherung der Netzkonfiguration: netsh i i d > c:\temp\ipconfig.dump
Langer Aufruf: netsh interface ip dump > c:\temp\ipconfig.dump
Rücksicherung: netsh -f c:\temp\ipconfig.dump
Hinweis: möglichst Dateierweiterung txt vermeiden (hier *.dump), da MS-OS anscheinend spezielle Header einfügen für "deren" Textformat, bei meinen System funzt es allerdings immer, also mit beliebigen Dateierweiterungen!
Do, 10.12.2009, 16.30 - 21.15 Uhr
- Hinweis: Doppelveranstaltung wegen Ausfall am 03.12.09
- Rekapitulation zu Powershell und CMD-Befehlen (spez. Netzwerk mit nslookup s.u.)
- Powershell 2.0 Technik zwischen Win7 und Server 2008 R2
Einrichten/Aktivieren der Remote-Technik: Enable-PSSession
Aufrufen der Remote-Sitzung: Enter-PSSession
Modul für AD-Verwaltung bereitstellen (PSProvider AD): Import-Module ActiveDirectory - Praxis mit NSLOOKUP
Aufrufe und interaktive Shell (server, set querytype=ANY) - "Systemwerkzeuge für Windows" (siehe C't 2009 Heft 24)
Highlights: Total Commander (Norton Commander Clone), SyncToy (Microsoft), Standard-SW (CDBurnerXP, 7-Zip, ...), Virtualisierung (VMware Player und Server, Sun VirtualBox, Virtual Clone Drive) - Sysinternals Suite (heute Microsoft, früher Firma Wininternals.com)
Highlights: Autoruns, ProcessExplorer, ProcessMonitor, AccessChk und natürlich BGInfo ;-) - "Systemanalyse" (siehe C't 2009 Heft 24)
Highlights: HWInfo32, Sisoft Sandra, CPU-Z, GPU-Z, HD-Toolserie C't, BlueScree-View - "Schrauberkiste" (PC Magazin 8/2009 - Autor: Thomas Joos)
Ausführliche Erläuterung der Sysinternals-Suite, Autor auch deutschsprache Ausgabe MS Press "Server 2008 - Das Handbuch" und der Nachfolger "Server 2008 R2 - Das Handbuch" - Slipstreaming Technik (Tools: AutoStreamer, nlite)
klassische Aktualisierung von Pre-Vista-Medien
siehe Artikel ZDNET.de (spez. Booten bei MS) - Boot-Management von optischen Medien (Standard: El Torito)
Speziell: Booten von USB-Medien (Tools)
Do, 10.12.2009, 19.00 - 21.15 Uhr
- Rekapitulation - Fortsetzung Rettungsmedien / Unterlagen
- Rettungsmedien im Einsatz - hier die wichtigsten Medien
- Knoppix (aktuell 6.2 - das Original der Live-CDs)
http://www.knopper.net
http://www.knoppixforum.de - System Rescue CD (1.3.3)
http://www.sysresccd.org/Main_Page - GRML
http://grml.org - Ultimate Boot CD (4.1.1)
http://www.ultimatebootcd.de - PE Builder von Bart Lagerweij
Nachbau der WindowsPE (Preliminary Environment)
http://www.nu2.nu - Ultimate Boot CD 4 Win (3.5)
http://www.ubcd4win.com - Für URL (Internet-Links) siehe auch Links in den Menüs dieser Website
- Booten von USB (siehe Kopien)
- Feedback
TN-Bescheinigungen folgen
Vielen Dank für Ihr freundliches Feedback - bleiben Sie unseren Seminaren auch 2010 treu ;-)
Ihr Trainer Joe Brandes