Ich beschäftige mich nun schon eine ganze Weile mit PowerShell und mittlerweile habe ich das große Potential davon erkannt. Ich kann zwar noch nicht wirklich viel machen, aber die große Angst vor dem Unbekannten ist gewichen. Wer mich kennt, weiß, dass ich ursprünglich aus der Linux Welt komme. Und was macht man wenn man etwas Neues kennen lernt – man fängt das Vergleichen mit dem Bekannten an. Liegt ja auch nahe.

Nahezu alle PowerShell Einstiegs Tutorials beginnen mit der Behandlung von Prozessen. Trifft sich gut, kann man doch sehr schön Parallelen zu bekannten Linux Befehlen ziehen. Der Klassiker unter Linux ist mit Sicherheit sowas in der Art hier:

Oder, wenn man nicht so eine riesen Liste haben will, filtert man eben nach einem Prozess, hier z.B. spamd:

So wirklich aussagekräftig ist der Output an dieser Stelle noch nicht. Abgesehen von der Anzahl der Prozesse mit diesem Namen (stimmt auch nicht ganz, da natürlich mein Prozess mit der Suche aufgrund des Strings ebenfalls gefunden wird) ist die Ausgabe noch nicht sonderlich aussagekräftig. I.d.R. ist die Interessanteste Info die PID (ProcessID) in der ersten Spalte um damit dann weitere Informationen aus dem System zu erhalten.

Mit PowerShell sieht der erste Befehl, die Liste aller Prozesse, dann so aus:

In den allermeisten PowerShell Tutorials wird es dann damit weitergehen, dass der Output des Get-Process Befehls in ein weiteres CmdLet gepipet wird, in diesem Fall nach Where-Object um einen bestimmten Prozess herauszupicken: (mehr …)

Getagged mit: ,

PSUGNachdem ich mich seit einiger Zeit mit Powershell beschäftige, was man ja hier in meinem Blog nahezu in Echtzeit miterleben kann, ist Christian Lehrer auf mich zugekommen und fragte, ob wir nicht versuchen wollen eine Powershell Usergroup für den Süddeutschen Raum auf die Beine zu stellen. Lust habe ich und Räumlichkeiten für ein erstes Treffen steuere ich, besser mein Arbeitgeber, auch bei.

So sind wir also gerade dabei ein erstes Treffen für den 19. März 2015 zu planen. Weitere Informationen findet Ihr auf der Webseite https://powershellug.wordpress.com/, die Christian extra dafür aufgesetzt hat. Dort findet Ihr alle weiteren Informationen.

Ich freue mich auf den 19. März, und sei es nur um festzustellen, dass ich noch ein vollkommener Powershell Noob bin. 🙂


Update:
Christian hat jetzt ein XING Event angelegt, über welches man sich für die Veranstaltung anmelden kann. Zur Anmeldung geht es hier lang: Anmeldung 1. Treffen PowerShell UG

Getagged mit: , ,

Ich bekam die Anforderung in unseren Support-Tickets bestimmte Angaben einfach in einem Ticket zu hinterlegen um verschiedene Ticketabrechnungsarten (mit Aufschlag, ohne Aufschlag, Gewährleistung, …) abbilden und auswerten zu können. Die bisherige Umsetzung, Tickets bestimmten Queues zuzuordnen und die Auswertung gegen die Queues zu fahren war irgendwann nicht mehr praktikabel. Also habe ich mich mit Dynamischen Feldern beschäftigt.

Dynamisches Feld anlegen

Im OTRS Adminbereicht unter Ticket-Einstellungen → Dynamische Felder kann man über den Bereich Aktionen für Artikel oder Tickets neue dynamische Felder erzeugen. Artikel bezeichnen in OTRS z.B. FAQ Einträge, welche man mit OTRS erzeugen kann und für seine Kunden bereitstellen kann. Tickets bezeichen in in OTRS Kundenanfragen. Ergo benötige ich für mein Vorhaben ein dynamisches Feld für Tickets.

Für die Erstellung von dynamischen Feldern stehen eine Reihe von Möglichkeiten zur Verfügung:

  • Checkbox
  • Datum
  • Datum / Zeit
  • Einfachauswahl
  • Mehrfachauswahl
  • Text
  • Textfeld

Die verschiedenen Möglichkeiten sollten eigentlich selbsterklärend sein, weshalb ich nicht näher darauf eingehen werden.

Wird ein neues dynamisches Feld erzeugt werden bei allen Typen (siehe oben) ein bestimmter Satz an Informationen abgefragt. Zunächst werden allgemeine Angaben festgelegt:

  • Name
    Bezeichnet den OTRS intern verwendeten Namen für das dynamische Feld. Diesen Namen brauchen wir später wieder, um das dynamische Feld in die verschiedenen Ansichten im OTRS einzubinden.
  • Beschriftung
    Diese wird in den verschiedenen Ansichten im OTRS sichtbar, wenn das dynamische Feld eingebunden wird.
  • Feldreihenfolge
    Darüber lässt sich die Sortierung/Reihenfolge von dynamischen Feldern beeinflussen.
  • Gültigkeit
    Wie in allen anderen OTRS Bereichen steuert die Gültigkeit, ob das dynamische Feld aktiv ist, oder nicht.

Danach folgen die eigentlich interessanten Angaben, welche in Schlüsseln und Werten angegeben werden. (mehr …)

Getagged mit: , ,

Ich betreue einen Citrix XenServer, auf dem eine Reihe von Windows Server VMs laufen. Der Host ist eine eigentlich recht potente Maschine mit 2x Intel XEON E5620, 48 GB RAM und 4x 300 GB SAS 15 K HDDs als RAID 5 an einem Adaptec RAID Controller. Ok, nicht mehr ganz neu, aber nicht schlecht. Der XenServer Host beherbergt 6 Windows Server VMs und diese liefen immer in irgendeiner Weise nicht zufriedenstellend was die Performance angeht. Gut, die HDDs der VMs lagen alle auf dem gleichen RAID, aber so wirklich IO intensiv waren die VMs nicht, bzw. nicht alle (ein DB Host, ein RDS der allerdings auf einer eigenen SSD läuft, der Rest eher so FS Dingsis). Selbst als vergangenes Jahr ein SAS DAS angeschafft wurde und VMs auf diesem Host Großteils auf diesen Speicher verschoben wurden, blieb der Performance Boost aus. Ein IO Problem seitens der Festplatten konnte seither mit Sicherheit ausgeschlossen werden. Deshalb haben wir uns entschieden den XenServer in Rente zu schicken und durch die sonst bei uns eingesetzte Hyper-V Plattform zu ersetzen.

Gesagt, geplant. Wie also am sinnvollsten die VMs von XenServer auf Hyper-V migrieren. Ich habe 2 Wege getestet:

  1. Backup und Restore über Windows Server Backup
  2. Export und Konvertierung der VM über XenConvert

Meine Tests habe ich mit den beiden Linux VMs begonnen, welche auf dem XenServer liefen. Die oben aufgeführte erste Methode funktioniert da natürlich nicht, also blieb es bei der 2 Variante. Grundsätzlich tat dies auch, allerdings mit dem Effekt, dass meine VMs nach der erfolgten „Migration“ nicht mehr booten konnten. Irgendetwas ist da schief gelaufen. Doof. Da aber eh ein Distrubutionsupdate anstand, wurden die Linux VMs kurzerhand from scratch neu aufgesetzt und die Konfigurationsdateien von A nach B übernommen und fertig war der Lack. (mehr …)

Getagged mit: , , , ,

Die Weihnachtszeit ist vorüber und ich habe es in diesen Tagen tatsächlich geschafft auszuspannen und nicht den Verlockungen der VPN-Verbindung in die Firma zu erliegen und Dinge im Urlaub zu erledigen. Daher starte ich heute, mitten in der Woche (in BW war gestern Feiertag – Heilige Drei Könige), in das neue Arbeitsjahr und liefere daher den 2. Teil meiner kleinen DPM Artikelserie über Hyper-V Sicherung und Wiederherstellung. Im ersten Teil habe ich beschrieben, wie eine Hyper-V VM Sicherung in DPM konfiguriert wird. In Teil 2 werde ich nun die unterschiedlichen Wiederherstellungsmöglichkeiten von Hyper-V VMs über die DPM Verwaltungskonsole näher beleuchten.

Auf welcher Ebene wollen wir starten?

Die erste Hürde bei der Wiederherstellung einer Hyper-V VM mit DPM liegt schon in der Auswahl des Einstiegspunktes für die Wiederherstellung. Was ist damit nun gemeint? Navigiert man sich in der DPM Verwaltungskonsole in den Bereich Wiederherstellung und klickt sich durch die wiederherstellbaren Objekte kann man für Hyper-V VMs auf verschiedenen Ebenen Objekte zur Wiederherstellung auswählen. Problem dabei: Man ist sich dessen nicht unbedingt bewusst, weil man, so wie ich, sich bis auf die tiefste Ebene durchgeklickt hat!
Auf der linken Seite kann man sich durch die Hosts klicken und aufklappen um an die wiederherstellbaren Daten zu kommen. Bei Hyper-V Hosts gibt es (mindestens) folgende Ebenen: (mehr …)

Getagged mit: , , , , ,