Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ralf Feest Director Enterprise Services AddOn (Schweiz) AG, Zürich.

Ähnliche Präsentationen


Präsentation zum Thema: "Ralf Feest Director Enterprise Services AddOn (Schweiz) AG, Zürich."—  Präsentation transkript:

1 Ralf Feest Director Enterprise Services AddOn (Schweiz) AG, Zürich

2 PowerShell-Anfänger abholen & begeistern PowerShell-Nutzern Tipps & Tricks sowie einen Ausblick auf die V 2.0 zeigen Den richtigen Mix aus Theorie & LiveDemo präsentieren

3 Erweiterung der bekannten cmd.exe unterstützt/integriert das.NET Objektmodell Schnittstellen zu.NET Framework ADSIWMIXML

4 .NET Framework 2.0 Unterstützte Betriebssysteme Einstieg mit Webcasts, Doku etc. unter Windows XP Service Pack 2Windows Server 2003 Service Pack 1Windows VistaWindows Server 2008 Installation via Servermanager als Feature Keine Unterstützung innerhalb von ServerCore vor Erscheinen von R2!

5 cmdlet (sprich: commandlet) = Befehl, der nur innerhalb einer PS ausgeführt werden kann Beispiel: get-Process | select-Object Name,StartTime Verb Subjekt Pipe-Symbol zum objektorientierten (!) Verketten zweier cmdlets Attribute Auswahl

6 Übersicht der cmdlets: get-command Liste der Kurzkommandos (Alias): get-alias z. B. ps steht für Get-Process oder dir steht für Get-Childitem Syntax eines Befehls abrufen: get-help get-process get-help get-process -detailed get-help get-process -full

7

8 Welche Datei-Endungen kommen wie häufig in einer Verzeichnisstruktur vor? Get-ChildItem -recurse | group-object extension | sort -property Count -descending

9 Zugriff auf die Registry Wert aus der Registry abfragen get-itemproperty -path "HKCU:\Software\AddOn\Snake -name Highscore Wert in der Registry neu setzen set-itemproperty -path "HKCU:\Software\AddOn\Snake -name Highscore –value 1740

10

11 Erweiterung für die PowerShell Import-Module ActiveDirectory Voraussetzungen mind. ein Windows 2008 R2 DC.NET Framework Client: W2008 R2 oder Windows 7

12

13

14

15 Add-ADComputerServiceAccount Add-ADDomainControllerPasswordReplicationPolicy Add-ADFineGrainedPasswordPolicySubject Add-ADGroupMember Add-ADPrincipalGroupMembership Clear-ADAccountExpiration Disable-ADAccount Disable-ADOptionalFeature Enable-ADAccount Enable-ADOptionalFeature Get-ADAccountAuthorizationGroup Get-ADAccountResultantPasswordReplicationPolicy Get-ADComputer Get-ADComputerServiceAccount Get-ADDefaultDomainPasswordPolicy Get-ADDomain Get-ADDomainController Get-ADDomainControllerPasswordReplicationPolicy Get-ADDomainControllerPasswordReplicationPolicyUsage Get-ADFineGrainedPasswordPolicy Get-ADFineGrainedPasswordPolicySubject Get-ADForest Get-ADGroup Get-ADGroupMember Get-ADObject Get-ADOptionalFeature Get-ADOrganizationalUnit Get-ADPrincipalGroupMembership Get-ADRootDSE Get-ADServiceAccount Get-ADUser Get-ADUserResultantPasswordPolicy Install-ADServiceAccount Move-ADDirectoryServer Move-ADDirectoryServerOperationMasterRole Move-ADObject New-ADComputer New-ADFineGrainedPasswordPolicy New-ADGroup New-ADObject New-ADOrganizationalUnit New-ADServiceAccount New-ADUser Remove-ADComputer Remove-ADComputerServiceAccount Remove-ADDomainControllerPasswordReplicationPolicy Remove-ADFineGrainedPasswordPolicy Remove-ADFineGrainedPasswordPolicySubject Remove-ADGroup Remove-ADGroupMember Remove-ADObject Remove-ADOrganizationalUnit Remove-ADPrincipalGroupMembership Remove-ADServiceAccount Remove-ADUser Rename-ADObject Reset-ADServiceAccountPassword Restore-ADObject Search-ADAccount Set-ADAccountControl Set-ADAccountExpiration Set-ADAccountPassword Set-ADComputer Set-ADDefaultDomainPasswordPolicy Set-ADDomain Set-ADDomainMode Set-ADFineGrainedPasswordPolicy Set-ADForest Set-ADForestMode Set-ADGroup Set-ADObject Set-ADOrganizationalUnit Set-ADServiceAccount Set-ADUser Uninstall-ADServiceAccount Unlock-ADAccount

16 Kennen Sie noch den subst-Befehl? New-PSDrive -name X –psprovider FileSystem -root c:\scripts New-PSDrive -name Y -psprovider Registry -root HKCU:\Software\Microsoft\Windows\CurrentVersion SQL Server 2008 mit eigenem PSdrive cd SQLSERVER:\SQL\localhost\DEFAULT\Databases\Sales\Tables Get-ChildItem | where {$_.Schema -eq "Sales"} 3rd Party Provider downloadbar MSDN-Artikel "Creating a Windows PowerShell Drive Provider"

17 Welche Ereignislogs gibt es? get-eventlog –list Ereignisliste eines bestimmten Log abfragen: get-eventlog –LogName Application Die fünf jüngsten Einträge abrufen: get-eventlog –LogName Application –newest 5 Alle Attribute eines einzelnen Eintrags abrufen: get-eventlog -LogName Application | where-object {$_.index -eq 17015} | select-object *

18 Ausgabe als Liste format-list (Objekte einzeln untereinander) Ausgabe in Tabelle format-table Ausgabe in eine Datei CSV Get-ChildItem Brief.pdf | export-csv -path test.csv XML Get-ChildItem Brief.pdf | export-Clixml -path test.xml

19 Protokollierung start-transcript –path stop-transcript Ausgabe einer Datei auf dem Bildschirm type log.txt get-content log.txt Druckausgabe an den Standarddrucker out-printer –name an einen bestimmten Netzwerkdrucker out-printer -name "\\Server01\Prt-6B Color"

20 Default: Nur signierte PowerShell Skripte dürfen ausgeführt werden! Ausführungsrichtlinie abfragen: Get-ExecutionPolicy setzen: Set-ExecutionPolicy -ExecutionPolicy unrestricted (einmal durch Administrator) Skript aufrufen: Die Datei "C:\Users\rfeest\Desktop\ralf.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist.

21 eingebaute Variablen z. B. $PWD, $HOME, $PROFILE etc. Liste abfragbar mit dir variable: | sort name Umgebungsvariablen mit dir env: | sort name Eigene Variablen Keine Deklaration notwendig, einfach verwenden $netto= 270 $brutto= $netto * "Der Rechnungsbetrag beträgt $brutto CHF."

22 Alternative: Variable mit New-Variable anlegen: new-Variable Mehrwertsteuer 0.19 –option ReadOnly Typ der Variablen abfragen: $Mehrwertsteuer.GetType() $Mehrwertsteuer.GetType().Name ohne Dollarzeichen! Wertzuweisung Zusatzoptionen

23 Beispiel: Quadratzahlen 1, 4, 9, 16, … 100 #Skript zur Berechnung von Quadratzahlen $Quadrat=1 while ($Quadrat -le 10) { write-host ($Quadrat * $Quadrat) $Quadrat +=1 } while(expression) { … } while(expression) { … } for([initializer];[condition];[iterator]{…} do { … } until/while(expression) do { … } until/while(expression) foreach-object(identifier in collection){…}

24 1.$ie= new-object -com "InternetExplorer.Application" 2.$ie.Visible= $true 3.$ie.navigate("http://www.denver.com") 4.$ie |get-member 5.$ie.StatusText 6.$ie.document | get-member 7.$ie.document.title 8.$ie.document.documentElement.innerHTML 9.$ie.document.documentElement.innertext 10.$ie.document.documentElement.innertext.indexOf("IIS") 11.$ie.document.documentElement.innertext.substring(110,7) 12.$ie.quit()

25 Zugriff per WMI get-Wmiobject -class Win32_LogicalDisk | ft Name,VolumeName,Size,FreeSpace Zugriff auf Office-Applikationen Beispiel: Anzahl Mails im Posteingang und Auflisten der Absender aller Mails $Outlook= new-object -comobject Outlook.Application $Posteingang= $Outlook.Session.GetDefaultFolder(6) write-host $Posteingang.Items.Count foreach ($Mail in $Posteingang.Items) {$Mail.SenderName}

26 $u= [ADSI]LDAP://cn=Ralf Feest,ou=Training,dc=denver,dc=com Abfragen der Beschreibung eines Benutzers $u.description Ändern der Telefonnummer eines Benutzers $u.TelephoneNumber= $u.SetInfo() Auflisten aller Computerkonten der Domäne $ad=[ADSI]"LDAP://dc=denver,dc=com $ds= new-object System.DirectoryServices.DirectorySearcher $ds.SearchRoot= $ad $ds.Filter="(objectCategory=computer)" $Ergebnisse= $ds.FindAll() foreach ($PC in $Ergebnisse) {write-host $PC.Properties.name}.Net Framework

27 $MA = [xml]" Meier (0123)4567 Schuster (0987)6543 " write-host $MA.Mitarbeiter.Person[1].Name write-host $MA.Mitarbeiter.Person[1].Tel

28 Exchange 2007 Administration per PowerShell nur auf dem Exchange Server direkt per RDP-Session remote Exchange-Remote-Admin z. B. von VISTA aus: PowerShell V1 installieren Exchange 2007 Administrationstools installieren

29 $maildb= get-mailboxDatabase $pwd= convertto-securestring -string ".ServerSummit2008" -asplaintext -force new-mailbox -name "Hans Dampf" -alias hdampf -organizationalUnit "contoso.com/Training" -userPrincipalName -samAccountName hdampf -FirstName Hans -LastName Dampf -password $pwd -ResetPasswordOnNextLogon $false -Database $maildb $maildb= get-mailboxDatabase $pwd= convertto-securestring -string ".ServerSummit2008" -asplaintext -force new-mailbox -name "Hans Dampf" -alias hdampf -organizationalUnit "contoso.com/Training" -userPrincipalName -samAccountName hdampf -FirstName Hans -LastName Dampf -password $pwd -ResetPasswordOnNextLogon $false -Database $maildb

30 Remote Admin via WMI Beispiel: $PCs= $("BBN25", "BBS12", "BBS5") Get-WmiObject Win32_OperatingSystem -computer $PCs SystemDirectory : C:\Windows\system32 Organization : BuildNumber : 6001 RegisteredUser : Ralf SerialNumber : Version : SystemDirectory : C:\WINDOWS\system32 Organization : AddOn BuildNumber : 3790 RegisteredUser : AddOn SerialNumber : Version : SystemDirectory : C:\WINDOWS\system32 Organization : addon BuildNumber : 3790 RegisteredUser : ctec SerialNumber : Version : SystemDirectory : C:\Windows\system32 Organization : BuildNumber : 6001 RegisteredUser : Ralf SerialNumber : Version : SystemDirectory : C:\WINDOWS\system32 Organization : AddOn BuildNumber : 3790 RegisteredUser : AddOn SerialNumber : Version : SystemDirectory : C:\WINDOWS\system32 Organization : addon BuildNumber : 3790 RegisteredUser : ctec SerialNumber : Version :

31 Momentan Beta-/CTP-Status *), connect.microsoft.com installierbar auf ca. 60 neue cmdlets Bessere Unterstützung für remote Administration Windows Management Instrumentation (WMI) Windows Remote Management (WinRM) built-in bei Vista SP1 und Windows 2008, Download für Windows 2003 und XP (in CTP noch nicht unterstützt) Abfrage von mehreren Systemen oder Ausführung mehrere Aufgaben können mit Hilfe von Background Threads parallelisiert werden! grafische Entwicklungsoberfläche *) Community Technology Preview V2 included

32 WS-Management Protocol Invoke-Command–computername FileSrv02 –scriptblock {get-process} verschlüsselter Datentransfer technische Voraussetzungen: WinRM Dienst muss laufen Enable-PSremoting muss einmal aufgerufen werden Noch keine Unterstützung für Windows 2003 und Vista bisher (könnte aber kommen)

33 Mit RunSpaces (jetzt: PSsessions) können PowerShell cmdlets auf remote Computer initiiert werden temporärer RunSpace: Persistenter RunSpace: Invoke-Command–computername DC –scriptblock {ps winlogon} $dc= New-PSsession –Computername DC –Credential Invoke-Command –session $dc –scriptblock {ps winlogon} Invoke-Command –session $dc –scriptblock {get-Psdrive} get-PSsession remove-PSsession –session $dc $dc= New-PSsession –Computername DC –Credential Invoke-Command –session $dc –scriptblock {ps winlogon} Invoke-Command –session $dc –scriptblock {get-Psdrive} get-PSsession remove-PSsession –session $dc

34 Start-job -scriptblock {get-process} führt die Kommandos im Hintergrund aus Prompt kommt sofort zurück Get-Job zeigt eine Übersicht der Background-Prozesse an Gezielte Stausabfrage eines Prozesses möglich Wait-Job –id gibt einen Prompt zurück, wenn Job fertig Receive-Job –id ermittelt die Ergebnisse der Background-Prozesse

35

36

37 Presentations TechDays: MSDN Events: MSDN Webcasts: MSDN Events MSDN Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp://www.microsoft.com/switzerland/msdn/de/events/default.mspx MSDN Flash (our by weekly newsletter) Subscribe: MSDN Team Blog RSS: Developer User Groups & Communities Mobile Devices: Microsoft Solutions User Group Switzerland: Managed User Group of Switzerland: FoxPro User Group Switzerland:

38 Presentations TechDays: TechNet Events TechNet Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp://technet.microsoft.com/de-ch/bb aspx TechNet Flash (our by weekly newsletter) Subscribe: Schweizer IT Professional und TechNet Blog RSS: IT Professional User Groups & Communities SwissITPro User Group: NT Anwendergruppe Schweiz: PASS (Professional Association for SQL Server):

39 7. – 8. April 2010 Congress Center Basel

40 Classic Sponsoring Partners Media Partner Premium Sponsoring Partners

41


Herunterladen ppt "Ralf Feest Director Enterprise Services AddOn (Schweiz) AG, Zürich."

Ähnliche Präsentationen


Google-Anzeigen