+ All Categories
Home > Documents > Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware....

Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware....

Date post: 27-Jul-2018
Category:
Upload: vanlien
View: 237 times
Download: 0 times
Share this document with a friend
145
Automa’sierung der VMware vSphere Administra’on Dennis Zimmer, CEO, [email protected] Allgemein, VMware
Transcript
Page 1: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

Automa'sierung  der  VMware  vSphere  Administra'on  

 

             

Dennis  Zimmer,  CEO,  [email protected]  

Allgemein, VMware

Page 2: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

Copyright © 2013 opvizor GmbH 2 Dennis Zimmer

•  10:00 Uhr Begrüßung

•  10:15 Uhr: vSphere-Administration im Handumdrehen erledigen •  PowerCLI als Administrationswerkzeug nutzen •  Aufspüren und Beheben von VMware Performance-Limits •  Finden und Entfernen von Snapshots •  Automatisierung des VMware Tools-Upgrade & VMware Hardware-

Upgrade •  Mini-Healthcheck per E-Mail

•  12:15 Mittagspause

•  13:30 Uhr: vSphere-Administration im Handumdrehen erledigen

•  Dokumentation der Ressourcennutzung •  Dokumentation der Konfigurationen (vCPU-Verteilung, Memory-

Verteilung, RDM-Nutzung) •  Multipathing global konfigurieren •  Und vieles mehr…

•  Ende gegen 17:00 Uhr.

Page 3: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Vorstellungsrunde  –  Name?  –  Job  /  Aufgabengebiet  /  Projekte?  –  Erfahrungen?  

•  Virtualisierung?  •  Automa'sierung?  •  Scrip'ng?  •  PowerShell?  

– Warum  dieser  Kurs?  –  Ziele  /  Wünsche  /  Befürchtungen  für  diese  Woche?  –  Themenschwerpunkte?  

Copyright © 2013 opvizor GmbH 3 Dennis Zimmer

Page 4: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Was  ist  die  PowerShell?  •  Umgang  mit  der  PowerShell?  •  Was  ist  ein  Objekt?  •  Variablen,  Filter,  Schleifen  •  Basisbefehle  •  Zer'fikate,  Skriptzugriff  

1. Teil

4 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 5: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VMware  PowerCLI?  •  Connect-­‐VIServer  •  Host  Administra'on  •  VM  Administra'on  •  Netzwerk  Administra'on  •  Storage  Administra'on  •  Repor'ng  •  Tasks  &  Events  •  Invoke-­‐VMscript  •  VMware  SDK  -­‐  Get-­‐View  •  Get-­‐PSDrive  

2. Teil

5 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 6: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Fragen  ?  

Copyright © 2013 opvizor GmbH 6 Dennis Zimmer

Page 7: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Was  ist  die  PowerShell?  •  Umgang  mit  der  PowerShell?  •  Variablen,  Filter,  Schleifen  •  Basisbefehle  •  Zer'fikate,  Skriptzugriff  

1. Teil

7 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 8: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Was  ist  die  PowerShell?  –  Kommandozeilen  Shell  mit  Fokus  auf  Administra'on  –  interak'v  und  kombinierbar  wie  Linux  Shell  (BASH)  –  einfach  und  zielorien'ert  =  produk'onsorien'ert  

•  Welche  Unterstützung  ist  vorhanden?  –  MS  Betriebssysteme  (XP,  Vista,  W2K3,  W2K8)  –  WMI,  COM  …  –  MS  Applika'onen  (Exchange  2007,  SQL  2008,  SCOM,  SCVMM,  DPM)  –  offene  Integra'onsmöglichkeiten  (z.  B.  VMware,  Citrix)  

Microsoft PowerShell

8 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 9: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Basisfunk'onalität  –  Dateisystem  Naviga'on  (Dir,  LS,  MD)  –  Registry  Naviga'on  (cd  HKLM:  )  –  Naviga'on  Zer'fikatsspeicher  (cd  cert:  )  

•  basiert  auf:  –  .Net  –  viele  CmdLets  –  vorgefer'gte  Funk'onen  

•  Handhabung  vergleichbar  mit:  –  Batch/Shell  Programmierung  –  Linux  Kommandozeile  –  .Net  Objektorien'erung  –  enlernt  Perl  

Microsoft PowerShell

9 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 10: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  Aumau  –  Hilfesystem  (get-­‐help)  –  Namensrichtlinien  (“verb-­‐noun”  Prinzip)  –  Aliases  –  CmdLets  –  Func'ons  –  Naviga'on,  Tab-­‐Autocomple'on  –  Objektorien'erung  (kein  pures  Textparsing)  –  Pipelining  Möglichkeiten  

•  und  weiter?  –  WMI,  COM  Implemen'erung  –  Remote  Command  in  Entwicklung  –  Vielzahl  an  freien  und  kommerziellen  CmdLets  für  Grafiken,  Reports,  AD  

Administra'on  …  

10

Microsoft PowerShell

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 11: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  –  Version1:  hqp://support.microsor.com/kb/926139  –  V2:  hqp://support.microsor.com/kb/968929  –  set-­‐execu'onpolicy  RemoteSigned  

•  VMware  PowerCLI  –  hqp://www.vmware.com/go/powercli  –  Community  Extension  (V2):  hqp://www.codeplex.com/vitoolkitextensions  

•  PowerGUI  –  hqp://www.powergui.org  

11

Microsoft PowerShell - Installation

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 12: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  Anwendergruppe  –  www.powershell-­‐ag.de  

•  sons'ges  –  hqp://thepowershellguy.com  –  hqp://blogs.msdn.com/  –  hqp://dmitrysotnikov.wordpress.com/  –  hqp://www.powershell.com  –  www.icomasor.com  –  www.vmachine.de  –  hqp://technet.microsor.com/en-­‐us/library/hh848797  

12

Microsoft PowerShell – gute Hilfeseiten

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 13: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  hqp://www.microsor.com/technet/scriptcenter/scripts/msh/default.mspx?mfr=true  

•  hqp://www.codeplex.com/PsObject    •  hqp://www.myilorum.com/myITWiki/Default.aspx?

Page=WPScripts&AspxAutoDetectCookieSupport=1  •  hqp://poshcode.org/  •  hqp://pshscripts.blogspot.com/    

13

Script Repository

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 14: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  Ebook:  hqp://powershell.com/cs/blogs/ebook/  •  PowerShell  Scrip'ng  für  Administratoren  

–  Tobias  Weltner,  Microsor  Press  –  ISBN  978-­‐3-­‐86645-­‐635-­‐8  

•  Scrip'ng  mit  Windows  PowerShell  –  Tobias  Weltner,  Microsor  Press  –  ISBN  978-­‐3-­‐86645-­‐620-­‐4  

•  PowerShell  in  Prac'ce  –  Richard  Siddaway,  Manning  –  ISBN  978-­‐1-­‐93518-­‐200-­‐9  

•  Windows  PowerShell  in  Ac'on  –  Bruce  Payeqe,  Manning  –  ISBN  193-­‐2394-­‐90-­‐7  

•  VMware  vSphere  PowerCLI  Reference!  –  ISBN  978-­‐0470890790  

14

Microsoft PowerShell - Bücherempfehlung

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 15: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  powershell.exe  –  Startmenü  –  Start-­‐>  Ausführen  (Windows  Taste  +  R)  –  powershell.exe  –command  in  cmd.exe  –  Scheduler  Task  –  Unterschiede  32  Bit,  64  Bit!!  

•  Sicherheit  –  Unter  Vista/Win7  für  Konfigura'onsänderungen  -­‐>  Adminberech'gungen  –  Sicherheitseinstellungen  Zer'fikat  kann  PSSnapins  und  Skripte  verhindern  

•  Aufnahme  von  Sessions:  –  Start-­‐transcript  -­‐path  c:\temp\transcript0.txt  –  Stop-­‐transcript  

15

Microsoft PowerShell – 1. Start

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 16: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Basis  –  get-­‐command  –  get-­‐help  –  get-­‐psdrive  –  get-­‐member  (get-­‐process  |  get-­‐member)  

•  Argumente  –  set-­‐alias  mygps  get-­‐process  –  set-­‐alias  mygc  get-­‐command  –  Wildcards:  get-­‐process  w*  –  Teilparameter:  connect-­‐viserver  –user  administrator  –  Selbsterkennung:  connect-­‐viserver  192.168.1.1  staq  –server  192.168.1.1  

•  Kommentar  –  #  

•  Zeilen  zusammenfassen  –  ;    z.  B.  :  $a=1;$b=3;$c=9  

16

Microsoft PowerShell - Einführung

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 17: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Kommentar  –  #  –  #  Dies  ist  ein  Kommentar  

•  Zeilen  zusammenfassen  –  ;      –  $a=1;$b=3;$c=9  

17

Microsoft PowerShell - Einführung

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 18: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  installieren  •  Windows  Kommandos  in  der  PowerShell  testen  •  Get-­‐command  testen  •  Tabulatoren  (Autocomple'on)  testen  •  Verhalten  der  PowerShell  ausprobieren  

•  Abbruch  von  Befehlen:  STRG  +  C  •  Löschen  der  aktuellen  Zeile:  ESC  •  Löschen  der  Kommandozeile:  clear  •  Letzter  Befehl:  Cursor  Pfeil-­‐Oben  •  >>  deutet  auf  einen  nicht  vollständigen  Befehl  hin  •  F7  =  History  

18

Übung 1

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 19: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerShell  Befehle  produzieren  Objekte  –  Objektmanipula'on  staq  Text  möglich  –  Dynamische  Ausgabe  von  Standard-­‐Textansicht  der  Objekte  –  Objeklorma'erung  zwecks  Ausgabe  oder  Pipelining  möglich  –  get-­‐member  zur  Auswertung  des  Objekts  (mygps  |  get-­‐member)  

19

Microsoft PowerShell - Objekte

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 20: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Ein  Objekt  ist  etwas  (Bezeichner)  •  Ein  Objekt  hat  etwas  (Aqribute)  •  Ein  Objekt  kann  etwas  (Methode)  

20

Microsoft PowerShell – Was ist ein Objekt

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 21: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

Beispiel:  „Text“  •  Ein  Objekt  ist  etwas  (Bezeichner)  

–  Zeichen  

•  Ein  Objekt  hat  etwas  (Aqribute)  –  Länge  

•  Ein  Objekt  kann  etwas  (Methode)  –  alles  großschreiben  

21

Microsoft PowerShell – Was ist ein Objekt (2)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 22: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Ein  Objekt  ist  etwas  (Bezeichner)  –  $var.geqype()  

•  Ein  Objekt  hat  etwas  (Aqribute)  –  $var  |  get-­‐member  -­‐MemberType  property  –  Aqribut  auslesen:  $var.Aqribut  

•  Ein  Objekt  kann  etwas  (Methode)  –  $var  |  get-­‐member  -­‐MemberType  method  –  Methodenaufruf:  $var.Methode()  

22

Microsoft PowerShell – Was ist ein Objekt (8)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 23: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

Beispiel:  „Text“  •  Ein  Objekt  ist  etwas  (Bezeichner)  

–  $var.geqype()  

•  Ein  Objekt  hat  etwas  (Aqribute)  –  $var  |  get-­‐member  -­‐MemberType  property  –  Aqribut  auslesen:  $var.length,  $var  

•  Ein  Objekt  kann  etwas  (Methode)  –  $var  |  get-­‐member  -­‐MemberType  method  –  Methodenaufruf:  $var.toupper(),  $var.replace(„x“,“s“)  

23

Microsoft PowerShell – Was ist ein Objekt (9)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 24: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Übergabe  von  Objekten  an  Funk'onen  (Pipe)  –  direkter  Bezug:  get-­‐process  calc*  |    stop-­‐process  –  Objektauswahl:  get-­‐process  |  where  {$_.Handles  –ge  500}  |  group  company  |  sort  –  Eigene  Funk'onen  oder  CmdLets  –  Umwandlung  von  Objekten:  

•  “String”  =  String  •  “123”  =  String  •  123  =  int32  •  123.23  =  double  •  [int64]123  =  int64  

24

Microsoft PowerShell - Objekte

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 25: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Direkte  Manipula'on  –  (get-­‐process  calc).Workingset/1kb  –  genutzte  phys.  RAM  Seiten  –  (get-­‐process  calc).WaitForExit()  –  “abc”.ToUpper()  

•  Objekte  –  $d  =  New-­‐Object  -­‐Type  System.DateTime  2006,12,25  –  $d.get_DayOfWeek()  –  $d.geqype()  

•  Klammern  –  Klammern  werden  immer  zuerst  ausgewertet    

25

Microsoft PowerShell - Objekte

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 26: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

26

Microsoft PowerShell - Pipelining

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 27: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Execu'on  Policy  auf  RemoteSigned  umstellen  •  Calc.exe  starten  •  Skript  auf  Beendigung  warten  •  Calc.exe  beenden  •  Gestriger  Wochentag  anzeigen  (Datumsobjekt  durch  get-­‐date)  

27

Übung 2

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 28: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Variablen  –  $zahl  =  “123”  –  [int]$i  =  5  –  $zeichen  =  “abc”  –  $myobject  =  get-­‐process  calc  –  Zahlen:  [int],  [long],  [double],  [decimal],  [float],  [single],  [byte]  –  Zeichen:  [string],  [char]  –  $global:i  =  5  (außerhalb  des  Skript);  $script:i  =  5;  $local:i  =  5  (Bereich  und  Funk'onen  

im  Bereich);  $private:I  =  5  (nur  Funk'on)  

•  Konstanten  –  Set-­‐Variable  –name  b  –value  3.142  –op'on  constant  

•  Variablentausch  –  $var1,  $var2  =  $var2,  $var1  

28

Microsoft PowerShell Variablen und Konstanten

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 29: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Arrays  –  $a  =  ,  1  #  Array  1  Element  –  $a  =  1,2,3  #  Array  3  Elemente  –  $a  +=  ,  4      #  Array  um  ein  Element  erweitern    

–  $a[0]    #  1.  Element  des  Arrays  anzeigen  –  $a[2]    #  3.  Element  des  Arrays  anzeigen  –  $a[$i]  #  Element  an  Stelle  $i  anzeigen  –  $a[-­‐1]  #  letztes  Element  –  $a[0,-­‐2]  #  erstes  und  vorletztes  Element  –  $a[2]  =  $null  #  Arrayelement  löschen  –  $t  =  $a[0,1  +  3..($a.length  -­‐  1)]  #  Arraykopie  bis  auf  Element  2  

–  $result  =  @(  …  )  #  $result  ist  immer  ein  Array  

29

Microsoft PowerShell - Arrays

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 30: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Hashtable  anlegen  –  $liste  =  @{Land  =  “Deutschland”;  Hauptstadt  =  “Berlin”}  –  $Werte  =  @{Wert  =  99;  Wert2  =  1,2,3,4}  

•  Hashtable  auslesen  –  $liste[„Land“]      –  $liste[„Land“,  „Hauptstadt“]  

•  Hashtable    erweitern  –  $liste.Feld2  =  „weiteres  Feld“  –  $liste.Feld3  =  „Feld3“  

•  Hashtable  leeren  oder  ini'alisieren  –  $hash  =  @{}  –  $liste.remove(„Feld3“)  -­‐>  Hasheintrag  löschen  

•  Hashtable  ändern  –  $liste.Feld2  =  „Feld2“  

30

Microsoft PowerShell - Hashtables

Copyright © 2013 opvizor GmbH Dennis Zimmer

•  Hashtable  messen  -  $Werte  |  Measure-­‐Object  -  $Werte.GetEnumerator()  |  Measure-­‐Object  

Page 31: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Rechnen  –  $i  =  $i  +1  –  $i  +=  1  –  $i++  –  “abc”  +  “def”  –  +,  -­‐,  *,  /  –  5%4.5  =  0,5  

•  Einheiten  –  $i  =  4gb  /640mb  –  1mb  –  12  +  0xBF  –  “{0:x}”  –f  15  –  $a  =  $Null  

31

Microsoft PowerShell - Rechenoperatoren

•  Boolean  –  $bool  =  5  –ge  4  –  $i  =  $true  –  $i  =  $false  

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 32: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Vergleichen  –  $i  –eq  123  –  $i  –ne  5  –  $i  –le  5  –  $i  –lt  5  –  $i  –ge  5  –  $i  –gt  5  –  „abc“  –like  „a*“  –  „abc“  –Notlike  „a*“  –  "book"  -­‐match  "[iou]"  –  -­‐notmatch  –  "Get-­‐Process"  -­‐replace  "Get",  "Stop"  

32

Microsoft PowerShell – Vergleichsoperatoren

•  Vergleichen  –  -­‐contains  (array)  –  -­‐notcontains  –  -­‐or  –  -­‐and  –  -­‐not  

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 33: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Carriage  Return  –  `r  

•  Tabulator  –  `t  

•  Line  Feed  –  `n    –  $a  =  “Ein  Zweizeiliger`nText”  

•  Seitenvorschub  –  `f  

•  Alarm  –  `a  

33

Microsoft PowerShell – Text Erstellen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 34: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Zeichen  ($a)-­‐,  Zahl($i)-­‐  und  Boolean  ($b)  Variable  mit  Werten  anlegen  –  $a  =  “Test”  –  $i  =  123  –  $b  =  $true  

•  Array  anlegen  $arr  –  Werte  1,  2,  3,  4  –  Array  kompleq  ausgeben  –  1.  Array  Element  ausgeben  –  2.  Array  Element  ausgeben  

•  mit  $i  rechnen  –  Addi'on  –  Mul'plika'on  

34

Übung 3

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 35: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

35

Microsoft PowerShell – Wild Cards

Wild  Card   Beschreibung  

*   Beliebiges  Zeichen,  keine  Limi'erung  

?   Beliebiges  Zeichen,  ein  Vorkommen  

[a-­‐c]   Zeichen  a-­‐c,  ein  Vorkommen  

[ajz]   Zeichen  a,j,z  dürfen  einmal  vorkommen  

Get-Help about_Wildcard

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 36: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Mehrere  Zeilen  –  $text  =  @”  –  Dieser  Text  kann    –  mehrzeilig  und  beliebig  –  lang  sein  –  “@  

•  Umgang  mit  Sonderzeichen  –  “Text  mit  “”Anführungszeichen””!”    –  “Text  mit  `”Anführungszeichen`”!”  –  ‘Text  mit  “Anführungszeichen”!’  –  “Gib  Variable  `$a  aus:  $a”  

•  Variablen  im  Text  –  “Variable  a  hat  den  Inhalt:  $a”  –  “Berechnung  von  5  +  7  =  $(5+7)”  –  “Das  heu'ge  Datum:  “  +  (get-­‐date)  

36

Microsoft PowerShell – Text Erstellen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 37: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

37

Microsoft PowerShell – Ausgabe formatieren

Copyright © 2009 icomasoft ag Dennis Zimmer

Operator   Beschreibung  

{0}   Element  der  Ausgabe,  z.  B.  „{0:d}  {1:x}  

{0:x}   Hexadezimaldarstellung  

{0:X}   Hexadezimaldarstellung  –  Großschreibung  

{0:dn}   Linksbündige  Zahl  mit  n  Nullen  führend  

{0:p}   Prozentzahl  

{0:c}   Währung  

{0,n}   n  Leerzeichen,  linksbündig  

{0,-­‐n}   n  Leerzeichen,  rechtsbündig  

{0:hh}  ,  {0:mm}     Stunden  bzw.  Minuten  eines  Datum  

{0:C}   Währung  des  aktuellen  Systems  anzeigen  

Syntax: (<index>[,<alignment>][:<formatString>]) Aufruf: "{0:d8}" -f 3 oder "{0:hh}:{0:mm}" -f (Get-Date) Mehrfachelemente: "{0,0:10C} {1,0:1C}" -f (5/100),(6/100) Weitere Infos: http://msdn.microsoft.com/en-us/library/26etazsy(VS.71).aspx

Page 38: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  If  if  (condi'on)  {…}  elseif  (condi'on)  {…}  else  {…}  –  if  (($i  –ge  5)  –and  ($i  –le  7))  {…}  

•  Switch  switch  (expression)  {  Value1  {…}  Value2  {…}  default  {…}  }  

38

Microsoft PowerShell - Bedingungen

Copyright © 2013 opvizor GmbH Dennis Zimmer

$a = 5 switch ($a) { 1 {"The color is red."} 2 {"The color is blue."} 3 {"The color is green."} 4 {"The color is yellow."}

default {“white on white"} }

Page 39: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Schleife  solange  Bedingung  erfüllt  ist  –  $a=1  –  Do  {$a;  $a++}  –  While  ($a  –lt  10)  

•  Schleife  bis  Bedingung  erfüllt  ist  –  $a=1  –  Do  {$a;  $a++}  –  Un'l  ($a  –gt  10)  

39

Microsoft PowerShell - Schleifen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 40: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  While  while  (expression)  {…}  while  ($i  –le  5)  {…}  

•  for  for([ini'alizer];  [condi'on];  [iterator])  {  …}  for($i  =  1;  $i  –le  10;  $i++)  {  …}  

40

Microsoft PowerShell - Schleifen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 41: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Foreach  (alias  foreach-­‐object)  foreach(iden'fier  in  Collec'on)  {…}    Foreach  ($i  in  Get-­‐Childitem  c:\windows)  {$i.name;  $i.crea'on'me}    foreach($vm  in  get-­‐vm)  {stop-­‐vm  $vm}  foreach($host  in  $mul')  {$host.name}  

 •  Abkürzung  

–  %  –  (Get-­‐Childitem  c:\windows)  |  %{$_.name;  $_.creaFonFme}  

 41

Microsoft PowerShell – Array Schleifen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 42: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  If  Bedingung  –  Wenn  $a  =  “Test”  gib  wahr  aus,  ansonsten  falsch  –  Bedingung  

•  If  Ausgabe  =  kleiner/gleich  10  •  Elseif  Ausgabe  =  kleiner/gleich  20  •  Else  größer/gleich  20  

•  Get-­‐Process  Array  kompleq  durchlaufen  –  Array  erstellen  mit  Get-­‐Process  –  Ausgabe  generell  –  Ausgabe  der  Process  IDs  mit  Titel  

42

Übung 4

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 43: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Where  (alias  Where-­‐Object)  –  Get-­‐Process  |  Where-­‐Object{$_.Handles  -­‐gt  500}  –  Get-­‐Service  |  Where{$_.Name  -­‐like  "WM*"  -­‐and  $_.Status  -­‐eq  "Stopped"}  

 •  Abkürzung  

–  ?  –  Get-­‐process|?{$_.Handles-­‐gt500}|%{$_.Name}    

 

43

Microsoft PowerShell – Filter

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 44: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Select  (alias  Select-­‐Object)  –  Get-­‐Process  |  select  processname,  company,  id  

 •  Process  Run'me  

–  $now  =  Get-­‐Date  –  Get-­‐Process  |  Where-­‐Object{$_.StartTime}  |  Select  Name,  @{Name="Run  Time";  

Expression={[int]($now  -­‐  $_.StartTime).TotalMinutes}}  |  Sort  "Run  Time"  -­‐Descending  |  Format-­‐Table  –AutoSize  

•  Select-­‐String  (ähnlich  Linux  grep)  –  Get-­‐Process  |  select  processname,  id,  company  |    Select-­‐String  Microso\  

44

Microsoft PowerShell – Filter

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 45: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Sort  (alias  Sort-­‐Object)  –  Get-­‐Process  |  sort  processname  

•  Group  (alias  Group-­‐Object)  –  Get-­‐Process  |  group  company  

•  Measure  (alias  Measure-­‐Object)  –  Get-­‐process  |  measure  

•  Measure-­‐command  –  Measure-­‐command  –expression  {get-­‐service}]  

•  FT  (alias  Format-­‐Table)  –  Get-­‐service|  r  *  –  Get-­‐process  |  r  *  

•  FL  (alias  Format-­‐List)  –  Get-­‐service|  fl  

 45

Microsoft PowerShell – Sort, Group, Measure, …

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 46: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Func'on    func'on  name  ([string]$parameter1,  [int]$parameter2,  …)  {  …  }    func'on  listvm([string]$vm)  {      $vms  =  Get-­‐VM  $vm      return  $vms  }  $vms  =  listvm("testbackup")  

46

Microsoft PowerShell – Funktionen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 47: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐process  Filter  –  Select  Handles,  Paged  Memory,  Process  Name,  CPU  Nutzung,  Hersteller  –  Zurückschreiben  in  Array  –  Nur  Objekte  anzeigen  mit  Handles  größer  500  

•  Sort  –  Filter  Array  nach  Process  Name  sor'eren  

•  Group  –  Filter  Array  nach  Hersteller  gruppieren  

•  Measure  –  Elemente  der  Array  Ausgabe  auswerten  

47

Übung 5

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 48: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  CmdLet  Aumau  –  cmdlet  –parameter1  –parameter#  arg1  arg2  –  get-­‐eventlog  –logname  applica'on  

•  CmdLet  Hilfe  –  get-­‐command  get-­‐eventlog  –  get-­‐help  get-­‐eventlog  –  get-­‐help  get-­‐eventlog  -­‐full    –  get-­‐help  get-­‐eventlog  –examples  –  get-­‐help  about_*  –  get-­‐help  about_core_commands  –  Get-­‐process  |  get-­‐member  –  Get-­‐command  –module  vmware.vimautoma'on.core  –type  CmdLet  

48

Microsoft PowerShell – CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 49: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  CmdLet  Pipe  –  get-­‐service  |  select-­‐object  -­‐property  name,  status  |  sort-­‐object  -­‐property  name  |  

export-­‐csv  -­‐path  „c:\services.csv“  

•  mögliche  Ausgaben  auflisten  –  get-­‐vm  |  get-­‐member  

•  Ausgaben  auswählen  –  get-­‐service  |  where-­‐object  {  $_.status  -­‐eq  „stopped“  }  

49

Microsoft PowerShell – CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 50: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Browser  starten    –  $ie  =  New-­‐Object  -­‐ComObject  "InternetExplorer.ApplicaCon"  –  $ie  |  Get-­‐Member  –MemberType  Method  –  $ie.Navigate("hqp://www.opvizor.com")  –  $ie.Visible  =  $true  

 

•  Ordnerauswahl  –  $ui  =  New-­‐Object  –ComObject  "Shell.ApplicaFon"  –  $path  =  $ui.BrowseForFolder(0,  "Biqe  Ordner  auswählen",  0,0)  

50

Microsoft PowerShell – Com Object

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 51: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Kurzfassung  –  powershell.exe  „&  c:\beispiel.ps1“  –  powershell.exe  „.  c:\beispiel.ps1“  –  “.”  und  “&”  beschreiben  den  Sichtbarkeitsbereich  von  Variablen  

in  diesem  Fall  uninteressant  

•  Langfassung  –  powershell.exe  -­‐command  „&  c:\beispiel.ps1“  –  powershell.exe  -­‐command  „.  c:\beispiel.ps1“  

51

Microsoft PowerShell – Skripte starten

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 52: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Skriptstart  aus  der  Shell  –  “.”  +  Skriptname  =  aktueller  Scope  (Variablen  des  aufrufenden  Skripts  vorhanden)  –  “&”  +  Skriptname  =  neuer  Scope  (keine  Variablennutzung)  

•  Argumente  bei  Skriptstart  –  myscript.ps1  server1  user  

•  Argumente  aus  dem  $args  Array  auslesen  –  $servername  =  $args[0]  –  $username  =  $args[1]  

52

Microsoft PowerShell – Skripte starten

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 53: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Hilfe  der  CmdLets  anzeigen  –  Get-­‐process  –  Get-­‐service  

•  PowerShell  Skript  starten  –  Skript  in  Datei  schreiben  und  aufrufen  

•  Browser  starten  mit  Webseitenaufruf  

53

Übung 6

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 54: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Read-­‐host  –  $eingabe  =  read-­‐host  –  $a  =  Read-­‐Host  “Enter  your  name”  

•  Get-­‐creden'al  –  $cred  =  get-­‐creden'al  –  $cred  =  get-­‐creden'al  domain\administrator  

54

Microsoft PowerShell Eingabe

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 55: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Datei  –  $a  =  Get-­‐Content  "c:\temp\servers.txt"  –  foreach  ($i  in  $a)  –  {$i}  –  Get-­‐content  “Datei”  –delimiter  “:”  –  Get-­‐content  “Datei”  -­‐wait  

•  CSV  /  XML  –  import-­‐csv  –  import-­‐clixml    

55

Microsoft PowerShell Eingabe

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 56: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  $variable  –  $a  

•  Letzter  Error  Code  –  $?  

•  write-­‐host  –  Write-­‐Host  $a  –foregroundcolor  “green”  

56

Microsoft PowerShell Ausgabe

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 57: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  out-­‐file  –  $a  =  “Zeile  1"  –  $a  |  out-­‐file  datei.txt  

•  oder  Ausgabe  in  Datei  mit  >  umleiten  –  .\test.ps1  >  datei.txt  

•  HTML  –  $a  =  Get-­‐Process  –  $a  |  Converqo-­‐Html  -­‐property  Name,Path,Company  >  test.htm  

57

Microsoft PowerShell Ausgabe

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 58: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Gridview  –  out-­‐gridview  (.net  Framework  3.5)  –  Get-­‐process  |  out-­‐gridview  

•  CSV  /  XML  –  export-­‐csv  –  Get-­‐process  |  Select-­‐Object  Name,Path,Company  |  Export-­‐Csv  -­‐path  test.csv  –  export-­‐clixml  

58

Microsoft PowerShell Ausgabe

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 59: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Dir  env:  •  $env  

–  $env:windir  –  ${env:temp}    –  ${env:path}  –  $env:appdata  –  $env:username  –  [io.path]::GetFullPath($env:temp)  

•  $home  •  Dir  Variable:  •  $host  

–  $host.version  –  $host.ui.rawui.Foregroundcolor  =  “yellow”  –  $host.ui.rawui.window'tle  =  “meine  PowerShell  Konsole”  

59

Microsoft PowerShell Basisvariablen

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 60: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Read-­‐Host  und  Get-­‐Creden'als  testen  –  Summe  von  2  Eingaben  –  Creden'als  in  Variable  schreiben  

•  Ausgabe  der  Werte  testen  –  Export-­‐CSV  –  Out-­‐file  

•  Umgebungsvariablen  ausgeben  –  Path  –  AppData  

•  PowerShell  anpassen  –  Schrirfarbe  auf  Gelb  umstellen  

•  $host.UI.RawUI.ForegroundColor="yellow“  

•  PowerShell  Skript  starten  –  Skript  miqels  Windows  Scheduler  aufrufen  und  Ergebnis  in  Datei  schreiben  –  powershell  -­‐command  "&  'MyScript.ps1'  "  

60

Übung 7

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 61: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  .split  –  $array  =  (“abc-­‐def-­‐xyz”).split(“-­‐”)  –  Aurrennen  eines  Strings  (Delimiter)  in  ein  Array    

•  .replace  –  (“abc-­‐def-­‐xyz”).replace(“-­‐”,  “..”)  –  Ersetzen  von  Zeichen  

•  .trim  –  (“      abc-­‐def-­‐xyz      ”).trim  –  Enlernen  der  Leerzeichen  zu  Anfang  des  Strings  

61

String Functions

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 62: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Quest  PowerGUI:  hqp://www.powergui.org  •  Idera  PowerShell  Plus:  hqp://www.idera.com  •  Sapien  Primalscript:  hqp://www.sapien.com  •  AdminScriptEditor:  hqp://www.adminscripteditor.com  •  Sapien  PrimalForms:  

hqp://www.primaltools.com/downloads/communitytools    

62

PowerShell Editoren

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 63: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

63

Basisbefehle  

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 64: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  ipconfig  •  arp  •  nslookup  •  netstat  •  Tracert  •  Cmd  /c  help  •  …  sämtliche  Windows  Befehle  

64

Microsoft PowerShell Basic – Windows Befehle

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 65: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Command  –Commandtype  CmdLet  get*  

•  Get-­‐alias  •  Get-­‐childitem  •  Get-­‐date  •  Get-­‐Eventlog  •  Get-­‐History  •  Get-­‐loca'on  •  Get-­‐Pssnapin  •  Get-­‐psdrive  •  Get-­‐service  

–  Get-­‐service  [a-­‐f]*  –  Get-­‐service  w*  

65

Microsoft PowerShell Basic – CmdLets 1

Copyright © 2013 opvizor GmbH Dennis Zimmer

$a = New-Object System.Globalization.CultureInfo("de-DE") $b = Get-Date $b.ToString("d", $a)

Page 66: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Skript  erstellen:  –  Auslesen  der  Server  aus  Textdatei  –  Erstellung  Liste  Hostname,  IP  Adresse,  Macadresse  –  Befehle  ipconfig,  ping,  arp  

•  Basic  Cmdlets  testen  und  Verwendung  beschreiben  –  Test  mit  Variablenbelegung  –  Debugging  von  Schleifen  

66

Übung 9

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 67: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Command  –Commandtype  CmdLet  set*  

•  Set-­‐Acl  •  Set-­‐Alias  •  Set-­‐Date  •  Set-­‐Execu'onPolicy  •  Set-­‐Item  •  Set-­‐Loca'on  •  Set-­‐Service  •  Set-­‐Variable  

67

Microsoft PowerShell Basic - CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 68: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Set-­‐CmdLets  (get-­‐help  Cmdlet  –examples)  –  Set-­‐Alias  –  Set-­‐Date  –  Set-­‐Execu'onPolicy  –  Set-­‐Item  –  Set-­‐Loca'on  –  Set-­‐Service  –  Set-­‐Variable  

68

Übung 10

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 69: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Command  –Commandtype  CmdLet  invoke*  

•  Invoke-­‐Command  (Befehl  –>  lokal  oder  Remote)  •  Invoke-­‐Expression  (String  als  Befehl  ausführen)  •  Invoke-­‐History  (Befehl  Session  History)  

69

Microsoft PowerShell Basic - CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 70: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VMware  PowerCLI?  •  Connect-­‐VIServer  •  Host  Administra'on  •  VM  Administra'on  •  Netzwerk  Administra'on  •  Storage  Administra'on  •  Repor'ng  •  Tasks  &  Events  •  Invoke-­‐VMscript  •  VMware  SDK  -­‐  Get-­‐View  •  Get-­‐PSDrive  •  VI  PowerScripter  

2. Teil

70 Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 71: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Setup  Rou'ne  –  hqp://www.vmware.com/go/powercli  

•  Installa'on  –  Set-­‐Execu'onPolicy  RemoteSigned  

•  Start  in  der  PowerShell  –  Add-­‐pssnapin  vmware.vimautoma'on.core  

71

VMware PowerCLI

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 72: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  PowerCLI  Community  –  www.vmware.com/go/powercli  

•  sons'ges  –  www.lucd.info  –  www.virtu-­‐al.net  –  www.vmachine.de/PowerCLI  –  www.icomasor.com  

72

VMware PowerCLI – gute Hilfeseiten

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 73: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Über  200  CmdLets  –  C:\Program  Files\VMware\Infrastructure\vSphere  PowerCLI  –  vSphere  PowerCLI  Cmdlets  Reference.chm  

•  Community  Extension  mit  knapp  40  Funk'onen  –  Community  Extension  (CTP2):  hqp://www.codeplex.com/vitoolkitextensions  –  import-­‐module  vitoolkitextension.psm1  –  PowerShell  v2  wird  benoe'gt    

73

VMware PowerCLI

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 74: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Trennen  von  CD-­‐ROM  und  Floppy  Laufwerken  (VMo'on/DRS)  

manuell: 1 Minute / VM Zeitverschwendung!

74

VMworld Präsentation Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 75: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Setup  Rou'ne  –  hqp://www.vmware.com/go/powercli  –  Set-­‐Execu'onPolicy  RemoteSigned  –  Add-­‐pssnapin  vmware.vimautoma'on.core  

 •  Community  Extension  installieren  und  impor'eren  

–  Community  Extension  (CTP3):  hqp://www.codeplex.com/vitoolkitextensions  –  import-­‐module  vitoolkitextension.psm1  

75

Übung 1

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 76: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  connect-­‐viserver    connect-­‐viserver  [-­‐Server]  <String[]>  [-­‐Port  <Int32>]  [-­‐Protocol  <String>]  [-­‐Creden'al  

<PSCreden'al>]  [-­‐User  <String>]  [-­‐Password  <String>]  [-­‐Session  <String>]      connect-­‐viserver  vc.test.test  –user  admin  –pass  vmware    Verbindung  zu  mehreren  vCenter  oder  ESX  Servern  $vccon  +=  connect-­‐viserver  vc.test.test  –user  admin  –pass  vmware  $vccon  +=  connect-­‐viserver  vc2.test.test  –user  admin  –pass  vmware  

•  disconnect-­‐viserver    disconnect-­‐viserver  disconnect-­‐viserver  $vccon[0]    

76

VMware PowerCLI - Verbindung

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 77: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Anmeldung  vCenter  –  Einfache  Anmeldung  

•  Connect-­‐viserver  192.168.1.250  •  Connect-­‐viserver  192.168.1.250  –user  Benutzer  –pass  Passwort  •  Connect-­‐viserver  192.168.1.250  –creden'al  (get-­‐creden'al)  

–  Mul'anmeldung  •  $vccon  +=  connect-­‐viserver  vc.test.test  –user  admin  –pass  vmware  •  $vccon  +=  connect-­‐viserver  vc2.test.test  –user  admin  –pass  vmware  

–  Abmeldung  •  disconnect-­‐viserver  –confirm:$false  

•  Anmeldung  ESX  Server  –  Einfache  Anmeldung  

•  Connect-­‐viserver  192.168.1.10  •  Connect-­‐viserver  192.168.1.10  –user  Benutzer  –pass  Passwort  •  Connect-­‐viserver  192.168.1.10  –creden'al  (get-­‐creden'al)  

77

Übung 2

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 78: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  hqp://www.virtu-­‐al.net/vcheck-­‐pluginsheaders/vcheck/  

78

vCheck

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 79: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Datacenter  •  Get-­‐VMhost  •  Get-­‐Cluster  

•  Get-­‐VM  •  Get-­‐Folder  •  Get-­‐ResourcePool  

•  Get-­‐Datastore  •  Get-­‐VirtualSwitch  •  Get-­‐VirtualPortgroup  

79

VMware PowerCLI – Basis Objekte

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 80: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Auslesen  aller  VMware  Cmdlets  –  Get-­‐command  –module  vmware.vimautoma'on.core  –  commandtype  CmdLet  

•  Auslesen  aller  Hosts  CmdLets  –  Get-­‐command  –module  vmware.vimautoma'on.core    *host*  

•  Beispiele  in  Textdateien  schreiben  Get-­‐command  –module  vmware.vimautoma'on.core  –  commandtype  CmdLet  |  %  {get-­‐help  $_  -­‐examples  |  out-­‐file  “c:\temp\$_.txt”}  

80

Übung 3

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 81: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Add-­‐VMHost  •  Add-­‐VmHostNtpServer  •  Apply-­‐VMHostProfile  •  Export-­‐VMHostProfile  •  Get-­‐VMHost  •  Get-­‐VMHostAccount  •  Get-­‐VMHostAdvancedConfigura'on  •  Get-­‐VMHostAvailableTimeZone  •  Get-­‐VMHostDiagnos'cPar''on  •  Get-­‐VMHostFirewallDefaultPolicy  •  Get-­‐VMHostFirewallExcep'on  •  Get-­‐VMHostFirmware  •  Get-­‐VMHostHba  •  Get-­‐VMHostModule  •  Get-­‐VMHostNetwork  

81

VMware PowerCLI – Host CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 82: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐VMHostNetworkAdapter  •  Get-­‐VMHostNtpServer  •  Get-­‐VMHostProfile  •  Get-­‐VMHostService  •  Get-­‐VMHostSnmp  •  Get-­‐VMHostStartPolicy  •  Get-­‐VMHostStorage  •  Get-­‐VMHostSysLogServer  •  Import-­‐VMHostProfile  •  Install-­‐VMHostPatch  •  Move-­‐VMHost  •  New-­‐VMHostAccount  •  New-­‐VMHostNetworkAdapter  •  New-­‐VMHostProfile  

82

VMware PowerCLI – Host CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 83: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Remove-­‐VMHost  •  Remove-­‐VMHostAccount  •  Remove-­‐VMHostNetworkAdapter  •  Remove-­‐VMHostNtpServer  •  Remove-­‐VMHostProfile  •  Restart-­‐VMHost  •  Restart-­‐VMHostService  •  Set-­‐VMHost  •  Set-­‐VMHostAccount  •  Set-­‐VMHostAdvancedConfigura'on  •  Set-­‐VMHostDiagnos'cPar''on  •  Set-­‐VMHostFirewallDefaultPolicy  •  Set-­‐VMHostFirewallExcep'on  •  Set-­‐VMHostFirmware  •  Set-­‐VMHostHba  

83

VMware PowerCLI – Host CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 84: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Set-­‐VMHostModule  •  Set-­‐VMHostNetwork  •  Set-­‐VMHostNetworkAdapter  •  Set-­‐VMHostProfile  •  Set-­‐VMHostService  •  Set-­‐VMHostSnmp  •  Set-­‐VMHostStartPolicy  •  Set-­‐VMHostStorage  •  Set-­‐VMHostSysLogServer  •  Start-­‐VMHost  •  Start-­‐VMHostService  •  Stop-­‐VMHost  •  Stop-­‐VMHostService  •  Suspend-­‐VMHost  •  Test-­‐VMHostProfileCompliance  •  Test-­‐VMHostSnmp  

84

VMware PowerCLI – Host CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 85: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Benutzer  auslesen  –  Get-­‐VMHostAccount  

•  Benutzer/Gruppe  anlegen  –  New-­‐VMHostAccount  -­‐ID  User1  -­‐Password  pass  –UserAccount  –GrantShellAccess    –  New-­‐VMHostAccount  -­‐Id  Group1  -­‐GroupAccount  -­‐AssignUsers  User1  

•  Benutzer/Gruppe  anpassen  $userAccount  =  New-­‐VMHostAccount  -­‐ID  User1  -­‐Password  pass  –UserAccount  $groupAccount  =  New-­‐VMHostAccount  -­‐ID  Group1  -­‐GroupAccount  -­‐AssignUsers  User1  Set-­‐VMHostAccount  -­‐UserAccount  $userAccount  -­‐UnassignGroups  Group1  

•  Benutzer  löschen  –  Get-­‐VMHostAccount  -­‐Group  -­‐ID  user  |  Remove-­‐VMHostAccount  -­‐Confirm  

85

VMware PowerCLI – ESX Host Benutzer Übung 4

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 86: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Benutzer  mit  Shell  Zugriff  –  Get-­‐View  func'on  Create-­‐ShellUser  {  param($id,  $password=$null,  $descrip'on=$null,  $posixId=$null)    $si  =  get-­‐view  serviceinstance    $accountManager  =  get-­‐view  $si.Content.AccountManager    $as  =  new-­‐object  VMware.Vim.HostPosixAccountSpec    $as.id  =  $id  $as.password  =  $password    $as.descrip'on  =  $descrip'on    $as.shellAccess  =  $true    $as.posixId  =  $posixId    $accountManager.CreateUser($as)  }  

86

VMware PowerCLI – ESX Host Benutzer Übung 4

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 87: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Host  Objekte  auslesen  –  Get-­‐VMHost  

•  Host  VC  hinzufügen  –  Add-­‐VMHost  10.23.113.24  –Loca'on  (Get-­‐Datacenter  Main)  -­‐User  root  -­‐Password  MyPass  

•  Host  aus  VC  Inventar  löschen  –  Get-­‐VMHost  ESX1|  Remove-­‐VMHost  

•  Host  im  Inventar  verschieben  –  Move-­‐VMHost  (Get-­‐VMHost  ESX1)  -­‐Des'na'on  (Get-­‐Datacenter  MyDC)  

•  Status  des  Hosts  anpassen  –  Set-­‐VmHost  -­‐VmHost  (Get-­‐VmHost  –Name  „ESX1")  -­‐State  "Disconnected„  –  Set-­‐VMHost  -­‐State  maintenance    –  Set-­‐VMHost  –State  connected  

87

VMware PowerCLI – VI Host Beispiele – Übung 5

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 88: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Advanced  Se�ngs  $VMSummaries  =  @()  foreach  ($VMHost  in    Get-­‐VMHost)    {    

$VMSummary  =  ""  |  Select  HostName,  TCPIPHeapMax,  TCPIPHeapSize,  HeartbeatFrequency,  HeartbeatMaxFailures,  MaxVolumes    $VMSummary.HostName  =  $VMHost.Name    $VMSummary.TCPIPHeapMax  =  (Get-­‐VMHostAdvancedConfigura'on  -­‐VMHost  ($VMhost)  -­‐Name  Net.TcpipHeapMax).Values    $VMSummary.TCPIPHeapSize  =  (Get-­‐VMHostAdvancedConfigura'on  -­‐VMHost  ($VMhost)  -­‐Name  Net.TcpipHeapSize).Values    $VMSummary.HeartbeatFrequency  =  (Get-­‐VMHostAdvancedConfigura'on  -­‐VMHost  ($VMhost)  -­‐Name  NFS.HeartbeatFrequency).Values    $VMSummary.HeartbeatMaxFailures=  (Get-­‐VMHostAdvancedConfigura'on  -­‐VMHost  ($VMhost)  -­‐Name  NFS.HeartbeatMaxFailures).Values    $VMSummary.MaxVolumes  =  (Get-­‐VMHostAdvancedConfigura'on  -­‐VMHost  ($VMhost)  -­‐Name  NFS.MaxVolumes).Values    $VMSummaries  +=  $VMSummary    

}    $VMSummaries  |  Format-­‐Table  

88

VMware PowerCLI – VI Host Beispiele

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 89: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐CDDrive  •  Get-­‐FloppyDrive  •  New-­‐CDDrive  •  New-­‐FloppyDrive  •  Remove-­‐CDDrive  •  Remove-­‐FloppyDrive  •  Set-­‐CDDrive  •  Set-­‐FloppyDrive  •  Copy-­‐HardDisk  •  Get-­‐HardDisk  •  New-­‐HardDisk  •  Remove-­‐HardDisk  •  Set-­‐HardDisk  

89

VMware PowerCLI – VM Medien CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 90: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐VMGuestRoute  •  Remove-­‐VMGuestRoute  •  Set-­‐VMGuestRoute  •  Get-­‐NetworkAdapter  •  Get-­‐VMGuestNetworkInterface  •  New-­‐NetworkAdapter  •  Remove-­‐NetworkAdapter  •  Set-­‐NetworkAdapter  •  Set-­‐VMGuestNetworkInterface  

90

VMware PowerCLI – VM Netzwerk CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 91: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Copy-­‐VMGuestFile  •  Get-­‐VM  •  Get-­‐VMGuest  •  Get-­‐VMQues'on  •  Get-­‐VMResourceConfigura'on  •  Get-­‐VMStartPolicy  •  Remove-­‐VM  •  Restart-­‐VM  •  Restart-­‐VMGuest  •  Restart-­‐VM  •  Restart-­‐VMGuest  •  Set-­‐VM  •  Set-­‐VMQues'on  

91

VMware PowerCLI – VM CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 92: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Set-­‐VMResourceConfigura'on  •  Set-­‐VMStartPolicy  •  Shutdown-­‐VMGuest  •  Start-­‐VM  •  Stop-­‐VM  •  Suspend-­‐VM  •  Suspend-­‐VMGuest  •  Dismount-­‐Tools  •  Mount-­‐Tools  •  Update-­‐Tools  

92

VMware PowerCLI – VM CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 93: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  hqp://www.warmetal.nl/powerclivmupgrade  

93

VMware PowerCLI – Upgrade VMware Tools & HW

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 94: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VM  auslesen  –  Get-­‐VM  

•  Neue  VM  –  New-­‐VM  -­‐Name  XPVM  -­‐VMHost  (Get-­‐VMHost  ESX1)  -­‐DiskMB  4000  -­‐MemoryMB  256  

•  VM  löschen  –  Remove-­‐VM  (  Get-­‐VM  “myVM”  )  –DeleteFromDisk  

•  VM  verschieben  (Cold,  Hot,  Storage):  –  Get-­‐VM  -­‐Name  XP_VC_Tech  |  Move-­‐VM  -­‐DesVnaVon  (Get-­‐VMHost  ESX1)  –  Get-­‐VM  –datastore  DS1  |  move-­‐vm  –datastore  DS2  

•  VM  Konfigura'on  anpassen:  –  Set-­‐VM  -­‐VM  (Get-­‐VM  -­‐Name  "Win  XP  SP1“)  -­‐Name  "Win  XP  SP2"  –GuestId  "winXPProGuest"  -­‐DescripVon  „VM  

konfiguriert“  

•  VM  starten  –  Get-­‐VM  „Test“  |  Start-­‐VM  

94

VMware PowerCLI – VM Beispiele – Übung 6

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 95: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VM  Ressource  Management  –  Get-­‐VM  |  Get-­‐VMResourceConfiguraFon  |  Where-­‐Object  {$_.MemLimitMB  -­‐ne  ‘-­‐1‘}  |  Set-­‐

VMResourceConfiguraFon  -­‐MemLimitMB  $null  –  Get-­‐VM  |  Get-­‐VMResourceConfiguraFon  |  Where-­‐Object  {$_.CpuLimitMhz  -­‐ne  ‘-­‐1‘}  |  Set-­‐

VMResourceConfiguraFon  -­‐CPULimitMhz  $null  

•  Get  VM  by  MAC  Address  –  Get-­‐vm  |  Select  Name,  @{N=“Network“;E={$_  |  Get-­‐networkAdapter  |  ?  {$_.macaddress  -­‐

eq  “00:50:56:A1:50:54“}}}  |Where  {$_.Network-­‐ne  “”}  

•  VMs  and  Disk  Sizes  –  foreach  ($vm  in  (get-­‐vm  |  get-­‐view))  {($VM.Guest.Disk  |  Select  @{N="Name";E={$VM.Name}},DiskPath,  

@{N="Capacity(MB)";E={[math]::Round($_.Capacity/  1MB)}},  @{N="Free  Space(MB)";E={[math]::Round($_.FreeSpace  /  1MB)}},  @{N="Free  Space  %";E={[math]::Round(((100  *  ($_.FreeSpace))/  ($_.Capacity)),0)}})  |  Format-­‐Table}  

95

VMware PowerCLI – VM Beispiele – Übung 7

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 96: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VMs  with  RDMs  $report  =  @()$vms  =  Get-­‐VM  |  Get-­‐View  foreach($vm  in  $vms)  {    foreach($dev  in  $vm.Config.Hardware.Device)  {    if(($dev.geqype()).Name  -­‐eq  "VirtualDisk„){    if($dev.Backing.Compa'bilityMode  -­‐eq  "physicalMode"){    

$row  =  ""  |  select  VMName,  HDDeviceName,  HDFileName    $row.VMName  =  $vm.Name    $row.HDDeviceName  =$dev.Backing.DeviceName    $row.HDFileName  =  $dev.Backing.FileName    $report  +=  $row  }    

}  }  }  $report  

 

96

VMware PowerCLI – VM Beispiele

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 97: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Template  •  Move-­‐Template  •  New-­‐Template  •  Remove-­‐Template  •  Set-­‐Template  •  Get-­‐OSCustomiza'onNicMapping  •  Get-­‐OSCustomiza'onSpec  •  New-­‐OSCustomiza'onNicMapping  •  New-­‐OSCustomiza'onSpec  •  Remove-­‐OSCustomiza'onNicMapping  •  Remove-­‐OSCustomiza'onSpec  •  Set-­‐OSCustomiza'onNicMapping  •  Set-­‐OSCustomiza'onSpec  

97

VMware PowerCLI – Template CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 98: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Templates  auslesen  –  Get-­‐Template  

•  Template  aus  VM  erstellen  –  Get-­‐VM  VM1  |  New-­‐Template  –Name  „VM-­‐Template“  –RunAsync  –  Loca'on  (Get-­‐Vmhost  192.168.1.10)  

•  VMs  aus  Template  erstellen  –  New-­‐VM  –Name  „VM123“  –Template  (Get-­‐Template  „VM-­‐Template“)  –Vmhost  192.168.1.10  -­‐RunAsync  

•  10  VMs  aus  Template  erstellen:  –  1..10  |  %  {New-­‐VM  –Name  „VM$_“  –Template  (Get-­‐Template  „VM-­‐Template“)  –Vmhost  192.168.1.10  –RunAsync}  

•  VM  zum  Template  konver'eren:  –  (Get-­‐VM  VM123  |  Get-­‐View).markastemplate()  

•  VM  mit  Guest  Customiza'on  erstellen  –  New-­‐VM  –Name  „VM123“  –Template  (Get-­‐Template  „VM-­‐Template“)    -­‐OSCustomiza'onSpec  (Get-­‐

OSCustomiza'onSpec  „WinSpec“)–Vmhost  192.168.1.10  -­‐RunAsync  

98

VMware PowerCLI – Template Beispiele – Übung 8

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 99: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Snapshot  •  New-­‐Snapshot  •  Remove-­‐Snapshot  •  Set-­‐Snapshot  

99

VMware PowerCLI – Snapshot CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 100: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Snapshots  einer  VM  auslesen  –  Get-­‐VM  |  Get-­‐Snapshot  

•  Snapshots  älter  14  Tage  auslesen  –  Get-­‐VM  |    Get-­‐Snapshot    |  ?  {$_.Created  –le  (Get-­‐Date).AddDays(-­‐14)}    

•  Snapshot  anlegen    –  New-­‐Snapshot  –  New-­‐Snapshot  –VM  (Get-­‐VM  -­‐Name  „VM1")  -­‐Name  BeforePatch  

•  To  remove  a  snapshot  –  Remove-­‐Snapshot  –  Get-­‐VM  |  Get-­‐Snapshot  |  Remove-­‐Snapshot    –RemoveChildren  

•  Snapshot  ändern  –  Set-­‐Snapshot  –  Set-­‐Snapshot  -­‐Snapshot  $snapshot  -­‐Name  'BeforePatch'  -­‐Descrip'on  "Before  windows  update"  

100

VMware PowerCLI – Snapshot CmdLets – Übung 9

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 101: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Copy-­‐DatastoreItem  •  Get-­‐Datastore  •  New-­‐Datastore  •  Remove-­‐Datastore  •  Set-­‐Datastore  

101

VMware PowerCLI – Datastore CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 102: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  DataStores  auslesen  –  Get-­‐Datastore  –  $ds  =  Get-­‐datastore    „DSName“  

•  DataStore  anlegen  –  New-­‐Datastore  –  New-­‐Datastore  -­‐Nfs  -­‐VMHost  $host  -­‐Name  DS1  -­‐Path  $remotePath  -­‐NfsHost  $remoteH  ost  

•  Datastore  löschen  –  Get-­‐Datastore  „DS1“  |  Remove-­‐Datastore  –  Remove-­‐Datastore  -­‐Datastore  (Get-­‐Datastore  -­‐Name  DS1)  -­‐VMHost  (Get-­‐VMHost  ESX1)  -­‐Confirm:$false  

•  DataStore  Konfigura'on  –  Set-­‐Datastore  –  Get-­‐Datastore  -­‐Name  "Storage1"  |Set-­‐Datastore  -­‐Name  Storage1:Local  

•  Mul'pathing  Policies  –  Get-­‐ScsiLun  -­‐VmHost  ESX345|  Get-­‐ScsiLunPath  

102

VMware PowerCLI – Datastore CmdLets – Übung 10

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 103: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐IScsiHbaTarget  •  Get-­‐ScsiLun  •  Get-­‐ScsiLunPath  •  New-­‐IScsiHbaTarget  •  Remove-­‐IScsiHbaTarget  •  Set-­‐IScsiHbaTarget  •  Set-­‐ScsiLun  •  Set-­‐ScsiLunPath  

103

VMware PowerCLI – SCSI & HBA CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 104: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐VirtualSwitch  •  New-­‐VirtualSwitch  •  Remove-­‐VirtualSwitch  •  Set-­‐VirtualSwitch  •  Get-­‐VirtualPortGroup  •  New-­‐VirtualPortGroup  •  Remove-­‐VirtualPortGroup  •  Set-­‐VirtualPortGroup  

104

VMware PowerCLI – vNetzwerk CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 105: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Auslesen  der  virtuellen  Switche  –  Get-­‐VirtualSwitch  –  Get-­‐VirtualSwitch  -­‐VM  (Get-­‐VM  –Name  „VM1")  

•  Erstellung  virtueller  Switch:  –  New-­‐VirtualSwitch  –  New-­‐VirtualSwitch  -­‐VMHost  (Get-­‐VMHost  -­‐Name  ESX1)  -­‐Name  vSwitch02  

•  Löschen  eines  virtuellen  Switch:  –  Remove-­‐VirtualSwitch  –  Get-­‐VirtualSwitch  -­‐VMHost  (Get-­‐VMHost  -­‐Name  ESX1)  -­‐Name  vSwitch01  |  Remove-­‐VirtualSwitch  

•  Konfigura'on  eines  vSwitch  ändern:  –  Set-­‐VirtualSwitch  –  Get-­‐VirtualSwitch  -­‐VMHost  (Get-­‐VMHost  -­‐Name  ESX1)  -­‐Name  vSwitch01  |  Set-­‐VirtualSwitch  -­‐MTU  2500  

105

VMware PowerCLI – vSwitch CmdLets – Übung 11

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 106: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  vSwitch  auslesen  –  $vs  =  Get-­‐VirtualSwitch  -­‐VMHost  (Get-­‐VMHost  -­‐Name  ESX1)  –Name  vSwitch02  

•  Portgruppe  auslesen  –  Get-­‐VirtualPortGroup  –  $vpg  =  Get-­‐VirtualPortGroup  –VirtualSwitch  $vs  

•  Portgruppe  erstellen  –  New-­‐VirtualPortGroup  –  New-­‐VirtualPortGroup  -­‐VirtualSwitch  $vs  –Name  VLAN1  

•  Portgruppe  Löschen  –  Remove-­‐VirtualPortGroup  –  Remove-­‐VirtualPortGroup  $vpg  

•  Portgruppe  konfigurieren  –  Set-­‐VirtualPortGroup  –  Set-­‐VirtualPortGroup  -­‐VirtualPortGroup  $vpg  -­‐VLanId  1  

106

VMware PowerCLI – Portgroup CmdLets – Übung 11

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 107: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Cluster  •  Move-­‐Cluster  •  New-­‐Cluster  •  Remove-­‐Cluster  •  Set-­‐Cluster  

107

VMware PowerCLI – Cluster CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 108: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Auslesen  der  Cluster:  –  Get-­‐Cluster  

•  Cluster  erstellen:  –  New-­‐Cluster  [-­‐HARestartPriority  <HARestartPriority>]  [-­‐HAIsola'onResponse  <HAIsola'onResponse>]  [-­‐

VMSwapfilePolicy  <VMSwapfilePolicy>]  [-­‐Name]  <String>  -­‐Loca'on  <VIContainer>  [-­‐HAEnabled]  [-­‐HAAdmissionControlEnabled]  [-­‐HAFailoverLevel  <Int32>]  [-­‐DrsEnabled]  [-­‐DrsMode  <DrsMode>]  [-­‐DrsAutoma'onLevel  <DrsAutoma'onLevel>]  

–  New-­‐Cluster  -­‐Name  MyCluster  -­‐DRSEnabled  -­‐DRSMode  FullyAutomated  

•  Cluster  verschieben  –  Move-­‐Cluster  

•  Cluster  löschen  –  Remove-­‐Cluster  

•  Cluster  konfigurieren  –  Set-­‐Cluster  

•  DRS  –  Get-­‐DrsRule  –  New-­‐DrsRule  –  Remove-­‐DrsRule  –  Set-­‐DrsRule  

108

VMware PowerCLI – Cluster CmdLets – Übung 12

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 109: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Letzen  10  VMs,  die  erstellt,  kopiert  oder  impor'ert  wurden:  –  Get-­‐VIEvent  -­‐maxsamples  10000  |where  {$_.Geqype().Name-­‐eq  "VmCreatedEvent"  -­‐or

$_.Geqype().Name-­‐eq  "VmBeingClonedEvent"  -­‐or  $_.Geqype().Name-­‐eq"VmBeingDeployedEvent"}  |Sort  CreatedTime  -­‐Descending  |Select  CreatedTime,  UserName,FullformaqedMessage  -­‐First  10      

•  Letzten  5  VMs  die  gelöscht  wurden:  –  Get-­‐VIEvent  -­‐maxsamples  10000  |  where  {$_.Geqype().Name  -­‐eq  "VmRemovedEvent"}  |  

SortCreatedTime  -­‐Descending  |  Select  CreatedTime,  UserName,  FullformaqedMessage  -­‐First  19  

•  VMs  die  in  den  letzten  14  Tagen  erstellt  wurden:  –  Get-­‐VIEvent  -­‐maxsamples  10000  -­‐Start  (Get-­‐Date).AddDays(-­‐14)  |  where{$_.Geqype().Name-­‐

eq  "VmCreatedEvent"  -­‐or  $_.Geqype().Name-­‐eq  "VmBeingClonedEvent"  -­‐or  $_.Geqype().Name-­‐eq  "VmBeingDeployedEvent"}  |Sort  CreatedTime  -­‐Descending  |SelectCreatedTime,  UserName,FullformaqedMessage  

•  VMs  die  in  den  letzten  14  Tagen  gelöscht  wurden:  –  Get-­‐VIEvent  -­‐maxsamples  10000  -­‐Start  (Get-­‐Date).AddDays(-­‐14)  |where{$_.Geqype().Name-­‐

eq  "VmRemovedEvent"}  |Sort  CreatedTime  -­‐Descending  |SelectCreatedTime,  UserName,FullformaqedMessage    

109

VMware PowerCLI – Event CmdLets – Übung 14

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 110: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Log  •  Get-­‐LogType  

•  Get-­‐VMHostSysLogServer  •  Set-­‐VMHostSysLogServer  

110

VMware PowerCLI – Protokoll Dateien CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 111: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Welche  Protokolldateien  exis'eren?  –  Get-­‐LogType  –  Get-­‐VMHost    ESX01|Get-­‐LogType  

•  Auslesen  der  VMkernel  Protokolldateien  –  $esx  =  Get-­‐VMHost  myhost  

$log  =  Get-­‐Log  -­‐Key  “vmkernel”  -­‐VMhost  $esx  $log.entries  >  c:\logs.txt  

•  Augabe  Vmkernel  Warning  Einträge  –  (Get-­‐Log  -­‐VMHost  (Get-­‐VMHost  ESX01)  vmkernel).Entries  |  Where  {$_  -­‐like“*WARNING*“}  

•  vCenter  Protokoll  –  $log  =  Get-­‐LogType  |  ?  {  $_.key  -­‐match  "vpxd"  }  |  %  {  Get-­‐Log  -­‐Key  $_.Key  }  

$log[0].Entries  |  select  -­‐first  10  

111

VMware PowerCLI – Protokoll Dateien CmdLets – Übung 15

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 112: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Folder  •  Move-­‐Folder  •  New-­‐Folder  •  Remove-­‐Folder  •  Set-­‐Folder  

•  Get-­‐ResourcePool  •  New-­‐ResourcePool  •  Move-­‐ResourcePool  •  Remove-­‐ResourcePool  •  Set-­‐ResourcePool  

112

VMware PowerCLI – Folder & ResourcePool CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 113: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐Stat  •  Get-­‐StatInterval  •  Get-­‐StatType  •  New-­‐StatInterval  •  Remove-­‐StatInterval  •  Set-­‐StatInterval  

113

VMware PowerCLI – Statistic CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 114: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Verfügbare  Sta's'ken  pro  VM:    Get-­‐VM  VM  |  Get-­‐Stat  –  MaxSamples  1  |  r  -­‐autosize  

 

•  Verfügbare  Sta's'ken  pro  VM  (Memory  und  CPU):    Get-­‐VM  VM  |  Get-­‐Stat  –  MaxSamples  1  –Memory  -­‐CPU    

•  Verfügbare  VM  Sta's'ken  mit  Beschreibung  anzeigen:    Get-­‐VM  VM  |  Get-­‐Stat  –Max  1  |  Select  MetricID,  Descrip'on  |  r  –wrap  -­‐autosize    

•  ESX  CPU  Sta's'ken  auslesen:    Get-­‐VMHost  |  Get-­‐Stat    -­‐Stat  cpu.usage.average  –MaxSamples  1  |  Format-­‐List  

 

•  VM  CPU  Sta's'ken  ab  5.10.09  auslesen:    Get-­‐VM  VM  |  Get-­‐Stat    -­‐Stat  cpu.usage.average  –Start  10/5/09  –MaxSamples  3    

114

VMware PowerCLI – Statistiken – Übung 17

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 115: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  VM  CPU  Sta's'ken  der  letzten  2  Tage  auslesen:    Get-­‐VM  VM  |  Get-­‐Stat    -­‐Stat  cpu.usage.average  –Start  (Get-­‐Date).AddDays(-­‐2)    

•  VM  CPU  Sta's'ken  der  letzten  2  Tage  auslesen  –  Wert  alle  2  Stunden:    Get-­‐VM  VM  |  Get-­‐Stat    -­‐Stat  cpu.usage.average  –Start  (Get-­‐Date).AddDays(-­‐2)  –IntervalMins  120  

•  VM  Disk  Sta's'ken  in  Echtzeit  auslesen:    Get-­‐VM  VM  |  Get-­‐Stat    -­‐Stat  disk.write.average  –MaxSamples  3  –  Real'me  |  r  -­‐autosize  

•  CPU  Sta's'ken  eines  Clusters  auslesen:    Get-­‐Cluster  CL  |  Get-­‐Stat    -­‐Stat  cpu.usagemhz.average  –MaxSamples  3  

 

115

VMware PowerCLI – Statistiken – Übung 17

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 116: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Get-­‐VIObjectByVIView  •  Get-­‐PowerCLIConfigura'on  •  Get-­‐PowerCLIVersion  •  Set-­‐PowerCLIConfigura'on  •  ….  

116

VMware PowerCLI – der Rest …

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 117: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

117

VMware PowerCLI – -ErrorAction

•  ErrorAction stop-process 13 –ErrorAction SilentlyContinue stop-process 13 -EA 0

 

•  http://blogs.msdn.com/powershell/archive/2006/11/03/erroraction-and-errorvariable.aspx

•  http://blogs.msdn.com/powershell/archive/2008/03/29/erroraction-silentlycontinue-ea-0.aspx

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 118: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Starten  aller  VMs  im  Cluster:    Get-­‐Cluster  “Cluster”  |  Get-­‐VM  |  Start-­‐VM  

 

•  Snapshot  aller  VMs:    Get-­‐VM  |  New-­‐Snapshot  –Name  “Skript-­‐Snapshot”    

•  Alle  Snapshots  älter  7  Tage  anzeigen:    Get-­‐VM  |  Get-­‐Snapshot  |Where  {  $_.Created  –lt  (Get-­‐Date).adddays(-­‐7)  }    

•  Rescan  aller  HBA´s  aller  Hosts:    Get-­‐VMHost  |  Get-­‐VMHostStorage  –RescanAllHba  

 

•  Restart  an  unresponsive  VirtualCenter  agent:    Get-­‐VMHost  badhost  |  Get-­‐VMHostService  |Where  {  $_.key  –eq  “vmware-­‐vpxa”  }  |Restart-­‐VMHostService  

118

VMware PowerCLI – Übung 19

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 119: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

119

Übung  

•  Installa'on  aller  PowerShell  Komponenten  •  Enlernen  aller  Medien  der  VMs  •  ESX  Host  virtuelle  Switche  auslesen  •  Stoppen  aller  VMs  im  Cluster  •  Host  in  Maintenance  Modus  setzen  (Set-­‐Vmhost)  •  VMs  migrieren  

–  get-­‐vmhost  esxhost  |  get-­‐vm  |  move-­‐vm  -­‐Des'na'on  (Get-­‐vmhost  toesxhost)  –  Get-­‐vm  –datastore  DS1  |  move-­‐vm  –datastore  DS2  

•  RAM  virtuelle  Maschinen  um  50  MB  erhöhen  

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 120: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

120

VMware PowerCLI – VM Details

$report = @() get-vm | Sort Name -Descending | % { $vm = Get-View $_.ID $vms = "" | Select-Object VMName, GuestVersion $vms.VMName = $vm.Name

$vms.GuestVersion = $vm.guest.guestfullname $report += $vms }

$report | Export-Csv "C:\vm_GuestVersion.csv" -NoTypeInformation

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 121: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

121

VMware PowerCLI – VM SCSI Controller

$hostinfo=get-datacenter "DATACENTER" | get-vmhost $hostinfo | % { $hostview = get-view $_.id

$hostview.config.storagedevice.scsilun | % { ` $lunname=$_.canonicalname $vendor=$_.vendor "" | select @{name="LunName"; expression={$lunname}}, @{name="Vendor";

expression={$vendor}} }

}

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 122: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

122

VMware PowerCLI – Snapshots

Find VCB Snapshots Get-VM | Get-Snapshot | ` Where-Object {$_.Name -eq "_VCB-BACKUP_"} | `

Select Name, @{Name="VM Name" ; ` Expression={$_.VM.Name}}

Report Snapshots get-vm | get-snapshot | Select-Object VM, Name, Description, PowerState, Created, @{Name="Host"; Expression = {(Get-VM $_.VM).Host.Name}} | ft -auto

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 123: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

123

VMware PowerCLI – HA/DRS Status of Cluster Hosts

Get-Cluster | Get-View | %{ Write-Host $_.name foreach($ref in $_.Host){ $h = Get-VIObjectByVIView -MORef $ref |Get-View Write-Host $h.name Write-Host "`tDRS enabled : " $_.Configuration.DRSConfig.Enabled Write-Host "`tHA enabled : " $_.Configuration.DasConfig.Enabled } Write-Host "`n" }

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 124: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

124

VMware PowerCLI – count VM per Cluster

$clusters = get-cluster foreach ($cluster in $clusters) { foreach ($vmhost in ($cluster | get-vmhost)) { $vmhost | get-vm | Select-Object @{Name="Cluster"; Expression={$cluster.name}},` Name } }

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 125: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

125

VMware PowerCLI – Datastore information

$clusters = get-cluster foreach ($cluster in $clusters) { $vmhosts = $cluster | get-vmhost $firsthost = $vmhosts[0] $datastores = $firsthost | get-datastore | % {(Get-View $_.ID).summary} foreach ($datastore in $datastores) { $datastore | select-object @{Name = "Date"; Expression = {get-date}}, @{Name = "Cluster"; Expression = {$cluster.name}}, URL, Name, Freespace, Capacity } }

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 126: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

126

VMware PowerCLI – VM Diskspace information

foreach ($vm in (get-vm | get-view)) {($VM.Guest.Disk | Select @{N="Name";E={$VM.Name}},DiskPath, @{N="Capacity(MB)";E={[math]::Round($_.Capacity/ 1MB)}}, @{N="Free Space(MB)";E={[math]::Round($_.FreeSpace / 1MB)}}, @{N="Free Space %";E={[math]::Round(((100 * ($_.FreeSpace))/ ($_.Capacity)),0)}}) | Format-Table}

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 127: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

127

http://www.lucd.info/2010/03/23/yadr-a-vdisk-reporter/

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 128: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

128

VMware PowerCLI – Get CPU/Core information

Get-VMHost | %{Get-View $_.ID} | %{ $name = $_.name $esx = "" | select NumCpuPackages, NumCpuCores, Hz, Memory $esx.NumCpuPackages = $_.Hardware.CpuInfo.NumCpuPackages $esx.NumCpuCores = $_.Hardware.CpuInfo.NumCpuCores $esx | select-object @{Name = "Name"; Expression = {$name}}, @{Name = "Sockets"; Expression = {$esx.NumCpuPackages}}, @{Name = "Cores"; Expression = {$esx.NumCpuCores}} }

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 129: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

129

VMware PowerCLI – Compare VM Display/Guest Name

$VMs = Get-VM foreach ($VM in $VMs){

$VM = Get-View $VM.ID $nm = $VM.name $hn = $VM.guest.hostname $vm | select @{Name = "Name"; Expression = {$nm}}, @{Name = "Hostname"; Expression = {$hn}}

}

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 130: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

130

VMware PowerCLI – Skript Cluster Report $report = @() $cluster = Get-Cluster <cluster-name> | Get-View $clusterCPU = $cluster.Summary.EffectiveCpu $clusterMem = $cluster.Summary.EffectiveMemory * 1Mb $from = [Datetime]"03/05/2009 00:00" $to = [Datetime]"03/05/2009 23:59" Get-VM | % {

$cpu = $_ | Get-Stat -Stat cpu.usagemhz.average -IntervalMins 5 -Start $from -Finish $to $mem = $_ | Get-Stat -Stat mem.consumed.average -IntervalMins 5 -Start $from -Finish $to for($i=0; $i -lt $cpu.Count; $i++){ $row = "" | select VM, Timestamp, CPUperc, Memperc $row.VM = $cpu[$i].Entity.Name $row.Timestamp = $cpu[$i].Timestamp $row.CPUperc = "{0:N2}" -f ($cpu[$i].Value / $clusterCPU * 100) $row.Memperc = "{0:N4}" -f ($mem[$i].Value / $clusterMem * 100) $report += $row }

} $report

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 131: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Voraussetzung  –  PowerShell  im  Gast  installiert  –  Administrator  Gast-­‐OS  –  Root  Benutzer  ESX  Host  

•  Befehl  –  Invoke-­‐VMScript  [-­‐ScriptText]  <String>  [-­‐VM]  <VirtualMachine[]>  [-­‐HostCreden'al  <PSCreden'al>]  [-­‐HostUser  

<String>]  [-­‐HostPassword  <SecureString>]  [-­‐GuestCreden'al  <PSCreden'al>]  [-­‐GuestUser  <String>]  [-­‐GuestPassword  <SecureString>]  [-­‐ToolsWaitSecs  <Int32>]  

–  Invoke-­‐VMScript  -­‐VM  (Get-­‐VM  myVM)  -­‐ScriptText  "dir"  -­‐HostUser  root  -­‐HostPassword  mypass  –GuestUser  administrator  -­‐GuestPassword  mypass  

•  KombinaVon  mit  WASP  zur  Fernsteuerung  von  ApplikaVonen  möglich:  –  hhp://www.codeplex.com/WASP  

131

VMware PowerCLI – Invoke-VMscript

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 132: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Hintergrund  –  Miqels  Get-­‐View  lassen  sich  die  .Net  Eigenscharen  der  VI  Objekte  auslesen,  wodurch  

fehlende  Informa'onen  und  Ak'onen  der  PowerShell  ergänzt  werden  –  Setzt  direkt  auf  der  vSphere  API  auf  

•  Beispiele  –  Run'me  Info  eines  Hosts  einer  bes'mmten  VM  

$allvms  =  Get-­‐View  –ViewType  VirtualMachine  $vm  =  Get-­‐View  –ViewType  VirtualMachine  -­‐Filter  @{"Name"  =  „VM1"}  $hostView  =  Get-­‐View  –ID    $vm.Run'me.Host  $hostView.Summary.Run'me  

–  VMo'on  Netzwerkkarte  konfigurieren  (Get-­‐View  (Get-­‐Host  'ESX1'  |  getview).ConfigManager.Vmo'onSystem).SelectVnic('vmk0')  

–  SC  RAM  auslesen  (Get-­‐View  (Get-­‐View  -­‐VIObject  (Get-­‐VmHost  ESX1)).ConfigManager.MemoryManager).ConsoleReserva'onInfo    

–  SC  RAM  konfigurieren  (Get-­‐View  (Get-­‐View  -­‐VIObject  (Get-­‐VmHost  ESX1)).ConfigManager.MemoryManager).ReconfigureServiceConsoleReserva'on(512mb)  

132

VMware PowerCLI – Get-View (.Net Objects)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 133: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Arbeiten  mit  Get-­‐View  Objekten  –  $vm  =  Get-­‐View  -­‐ViewType  VirtualMachine  -­‐Filter  @{"Name"  =  “VM1"  }  –  $hostView  =  Get-­‐View  -­‐ID  $vm.Run'me.Host  –  $hostView.Summary.Run'me  

•  Andere  Objekte  auslesen  –  $ESX  =  Get-­‐View  -­‐ViewType  "HostSystem"  -­‐Filter  @{"Name"  =  "ESXSERVER"}  –  $DC  =  Get-­‐View  –ViewType  “DataCenter”  –  $DS  =  Get-­‐View  –ViewType  “DataStore”    –  $Folder  =  Get-­‐View  –ViewType  “Folder”  –  $Cluster  =  Get-­‐View  -­‐ViewType  "ClusterComputeResource"  –  $Network  =  Get-­‐View  -­‐ViewType  “Network“  –  $VCInstance  =  Get-­‐View  serviceinstance  –  $ESXStorage  =  Get-­‐VMHostStorage  –VMHost  “ESX1”  |  Get-­‐View  

133

VMware PowerCLI – Get-View (.Net Objects)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 134: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Storage  –  $ESXView  =  Get-­‐VMHost  “ESX1”  |  Get-­‐View  –  $Storage  =  Get-­‐View  $ESXView.ConfigManager.StorageSystem  

•  Netzwerk  –  $ESXView  =  Get-­‐VMHost  “ESX1”  |  Get-­‐View  –  $Network  =  Get-­‐View  $ESXView.ConfigManager.NetworkSystem  

•  Firewall  –  $ESXView  =  Get-­‐VMHost  “ESX1”  |  Get-­‐View  –  $Firewall  =  Get-­‐View  $ESXView.ConfigManager.FirewallSystem  –  $FWRules  =  $Firewall.FirewallInfo.Ruleset  

•  NTP  –  $ESXView  =  Get-­‐VMHost  “ESX1”  |  Get-­‐View  –  $NTP  =  Get-­‐View  $ESXView.ConfigManager.DateTimeSystem  

134

VMware PowerCLI – Get-View (Mehrfach-View)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 135: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Suchbereich  filtern  –  $esx  =  Get-­‐View  -­‐ViewType  "HostSystem"  -­‐Filter  @{"Name"  =  "ESXSERVER"}  –  $vm  =  Get-­‐View  –SearchRoot  $esx.moref  -­‐ViewType  VirtualMachine    

•  ID  angeben  –  $ESX  =  Get-­‐View  –ID  “HostSystem-­‐host-­‐2360”    #Case  sensi've  

•  VIObject  Umgang  –  Get-­‐VM  “VM1”  |  Get-­‐View  –  Get-­‐View  –ViObject  (Get-­‐VM  “VM1”)  

•  Get-­‐VIObjectbyVIView  –  der  Weg  zurück  –  .Net  Objekte  zu  PowerCLI  Objekten    konver'eren  

$vm  =  Get-­‐VIObjectByVIView  $vmView  

135

VMware PowerCLI – Get-View (.Net Objects)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 136: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  ESX  Host  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.VMHostImpl]  

•  Virtuelle  Maschine  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.VirtualMachineImpl]  

•  Virtuelle  Maschine  Gast  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.VMGuestImpl]  

•  DataStore  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.DataStoreImpl]  

•  Netzwerk  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.VirtualSwitchImpl]  –  $VM  –isnot  [Vmware.VimAutoma'on.Client20.VirtualPortGroupImpl]  

136

VMware PowerCLI – Get-View (auf Objekttyp prüfen)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 137: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Geschwindigkeitsunterschied  testen  (measure-­‐command)  –  Get-­‐VM  

•  Get-­‐VM  VM1  

–  Get-­‐View  •  Get-­‐View  –ViewType  “VirtualMachine”  –filter  @{“Name”=“VM1”}  

–  Get-­‐VM  |  Get-­‐View  •  Get-­‐VM  VM1  |  Get-­‐View  

•  Vergleich  Performance  –  Measure-­‐Command  –Expression  {Befehl}  

•  Ausgabe  –  $variable  =  Befehl  

137

VMware PowerCLI – Get-View (.Net Objects)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 138: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Vergleich  Get-­‐VM  mit  Get-­‐VM  |  Get-­‐View  •  Vergleich  Get-­‐VMHost  mit  Get-­‐VMHost  |  Get-­‐View  •  Vergleich  Get-­‐Datastore  mit  Get-­‐Datastore  |  Get-­‐View    •  Auflistung  der  VMFS  Datastore  mit  Informa'on  zur  VMFS  Version  

138

VMware PowerCLI – Get-View – Übung 20

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 139: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Links  –  vSphere  API:  hqp://www.vmware.com/support/developer/vc-­‐sdk/visdk400pubs/ReferenceGuide/index.html  –  Exploring  VMware's  API:  hqp://tech.zsoldier.com/2009/09/exploring-­‐vmware-­‐api-­‐using-­‐powercli-­‐get.html  –  PowerCLI  Mastery:  hqp://vinternals.com/powercli-­‐mastery/  –  Set  dvSwitch:  hqp://poshcode.org/1373  

139

VMware PowerCLI – Get-View (.Net Objects)

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 140: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Object  staq  Name  –  falsch  $vm  =  Get-­‐VM  VM1  Get-­‐harddisk  –vm  $vm.name  –  besser  $vm  =  Get-­‐VM  VM1  Get-­‐Harddisk  –vm  $vm  

•  Get-­‐View  staq  CmdLet  get-­‐vm  -­‐name  VM1  =  2  minutes  get-­‐view  –viewtype  virtualmachine  -­‐filter  @{”Name”  =  “VM1″₺}  =  5  seconds    Wird  allerdings  von  PowerCLI  Version  zu  Version  verbessert  

140

VMware PowerCLI – Beschleunigung von CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 141: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Beispiel  1  –  Langsam  –  35  Stunden  bei  1200  VMs  $tempvm.vlan  =  (Get-­‐View  -­‐Id  $vm.network).name  –  Besser  –  2  Minuten  15  Sekunden  bei  1200  VMs  foreach  ($device  in  ($myvm.config.hardware.device))  {if  ($device.backing.devicename  -­‐like  “VLAN*”)  {$tempvm.vlan=$device.backing.devicename}}  

•  Beispiel  2  –  Langsam  

get-­‐harddisk  -­‐VM  $vm.name  |  foreach-­‐object  -­‐process  {$tempvm.diskGB  +=  $_.CapacityKB}          $tempvm.diskGB  =  [math]::round(($tempvm.diskGB  /  1048576),0)          if  ($tempvm.diskGB  -­‐eq  0)          {                  $tempvm.diskGB  =  “N-­‐A”          }  –  Besser  foreach  ($device  in  ($vm.config.hardware.device))  {if  ($device.backing.filename  -­‐like  “*vmdk”){$tempvm.diskGB  +=  $device.capacityinKB}}  

141

VMware PowerCLI – Beschleunigung von CmdLets

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 142: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

Einfache  Mail  $smtp  =  new-­‐object  Net.Mail.SmtpClient(”Server”)    $smtp.Send(”[email protected]”,  “[email protected]”,  “subject  here”,  “body  here”)    Komplexe  Mail        hqp://mspowershell.blogspot.com/2007/12/cmdlet-­‐like-­‐email-­‐script.html  $filename  =  “Protokolldatei”          #  nur  bei  Aqachment  $smtpServer  =  “Server”    $msg  =  new-­‐object  Net.Mail.MailMessage  $aq  =  new-­‐object  Net.Mail.Aqachment($filename)    #  Aqachment,  wenn  gewünscht  $smtp  =  new-­‐object  Net.Mail.SmtpClient($smtpServer)    $msg.From  =  “[email protected]”  $msg.To.Add(”[email protected]”)  $msg.Subject  =  “Nightly  Log  File”  $msg.Body  =  “The  nightly  log  file  is  aqached”  $msg.Aqachments.Add($aq)  $smtp.Send($msg)            #  Mailversand  $aj.Dispose()              #  Aqachment  freigeben    

142

VMware PowerCLI – Mail versenden

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 143: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Mail  mit  dem  Windows  Eventlog  versenden  

$sys  =  Get-­‐Eventlog  -­‐list  |  Foreach-­‐Object  -­‐process{Get-­‐Eventlog  $_.Log}  |    ?{$_.TimeGenerated  -­‐gt  [DateTime]::Now.AddDays(-­‐1)}  |    ConvertTo-­‐Html    $msg  =  New-­‐Object  Net.Mail.MailMessage("[email protected]",  "[email protected]",  "Daily  Eventlog  summary",  $sys)  $msg.IsBodyHTML  =  $true  $smtp  =  New-­‐Object  NetMail.SmtpClient("mailserver.my.mail")  $smtp.Send($msg)      

Aufgabe:  Wie  sieht  das  unter  VMware  mit  der  PowerCLI  aus?  

143

VMware PowerCLI – Mail versenden

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 144: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  Hot-­‐Remove  Harddisk  $vmName  =  „VM1"    $hdName  =  "Hard  disk  3"    $vm  =  Get-­‐VM  $vmName  |  Get-­‐View    $tgtdev  =  $vm.Config.Hardware.Device  |  where  {$_.DeviceInfo.Label  -­‐eq  $hdName}      $dev  =  New-­‐Object  VMware.Vim.VirtualDeviceConfigSpec    $dev.opera'on  =  "remove"    $dev.device  =  $tgtdev    $spec  =  New-­‐Object  VMware.Vim.VirtualMachineConfigSpec    $spec.DeviceChange  +=  $dev      $vm.ReconfigVM($spec)    

144

VMware PowerCLI – VM Hot-Remove Disk

Copyright © 2013 opvizor GmbH Dennis Zimmer

Page 145: Automasierung.der. VMware. vSphere.Administraon. · Automasierung.der. VMware. vSphere.Administraon.!!!!! Dennis.Zimmer,.CEO,.dzimmer@opvizor.com. Allgemein, VMware

•  hqp://blogs.vmware.com/vipowershell/  •  hqp://communi'es.vmware.com/community/developer/windows_toolkit  •  hqp://www.ntpro.nl/blog/categories/10-­‐VMware-­‐PowerShell  •  hqp://www.virtu-­‐al.net/  •  hqp://www.peetersonline.nl/  •  hqp://www.vmwarescrip'ng.com    

 

145

Links

Copyright © 2013 opvizor GmbH Dennis Zimmer


Recommended