Powershell Script mit Shortcut starten

Ein Powershell Script startet gewöhnlich nicht durch Doppelklick, sondern es muss zunächst über die Powershell Konsole aufgerufen werden oder mit einem anderen Tool wie z.B. PowerGUI. Man kann dies umgehen, indem man das Skript über einen Shortcut anspricht. Ich zeige das exemplarisch anhand eines Shortcuts auf dem Desktop, der ein Powershell Skript startet.

Ablauf

Dummy Shortcut auf dem Desktop erstellen.

PS_short01

Unter Windows7 wird man nach Ort und Name der Verknüpfung gefragt. Bei älteren Systemen wie z.B. Server 2003 wird im ersten Schritt nur nach dem Ort gefragt.

PS_short02

PS_short03

Danach erhält man zunächst eine Dummy Verknüpfung, die noch nichts mit Powershell zu tun hat.

PS_short04Wir ändern nun die Eigenschaften. Als Ziel geben wir folgenden Pfad ein:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "D:\Skripte\test.ps1"

Dabei ist es egal welche Version von Powershell auf dem System installiert ist. Der Pfad lautet immer “\v1.0\”.

Die Bypass Option ermöglicht die Ausführung des Scripts auch dann, wenn die ExecutionPolicy der Shell auf “Restricted” steht. Ist das ein Sicherheitsproblem? – Nein. Wer Rechte hat, auf einem System Scripte auszuführen, der hat ohnehin schon vollen Zugang.
PS_short05

Nach Bestätigung mit OK ändert sich das Aussehen unseres Shortcuts:

PS_short06Bei Ausführung erscheint noch das Powershell Konsolenfenster. Wer das nicht möchte kann folgenden Parameter hinzufügen:

-WindowStyle Hidden

ESXi Maintenance Mode via PowerCLI und vMA

PowerCLI

Bevor die Kommandos abgesetzt werden können, muss eine Verbindung mit dem Host oder den VCenter hergestellt werden.

Verbindung mit einem ESXi herstellen:

Connect-viserver -server <Servername> -user root -password <myPass>

Verbindung mit einem vCenter herstellen:

Connect-viserver -server <vCenter> -user <domain\user> -password <myPass>

Start Maintenance Mode

Set-VMHost -VMHost <Hostname> -State maintenance

Host wechselt in den Wartungsmodus. Fall er sich schon im Wartungsmodus befindet passiert nichts.

Maintenance Mode beenden

Set-VMHost -VMHost -State connected

Host beendet den Wartungsmodus. Wenn der Host nicht antwortet wird die Verbindung neu hergestellt.

Reboot Host

Restart-VMHost -VMHost <Hostname> [-Force] [-Evacuate] [-RunAsync] [-Whatif] [-Confirm]

Parameter in eckigen Klammern [ ] sind optional.

  • Force: Host wird neu gestartet, auch wenn er nicht im Wartungsmodus ist
  • Evacuate: (funktioniert nur bei Connect zu vCenter!). Ausgeschaltete VMs werden automatisch auf anderen ESX Servern registriert. Wenn diese nicht möglich sit, bleiben sie auf dem Host und sind für die Dauer des Reboots nicht erreichbar (grau). Aktive VMs werden migriert. Falls dies nicht möglich ist wartet der Prozess, bis diese manuell abgeschaltet werden.
  • RunAsync: Kommando kehrt sofort zur Konsole zurück, ohne den Abschluss des Vorgangs abzuwarten.
  • Whatif: Ausgabe erfolgt nur auf der Konsole. es werden keine Aktionen ausgeführt. Dient der Simulation.
  • Confirm: Default = true. Ist der Parmeter gesetzt erwartet das Kommando eine Bestätigung durch den Nutzer.

vMA / vSphereCLI

Von der vMA bzw. der vSphereCLI gibt es drei Komanndos für den Wartungsmodus:

vicfg-hostops --server <ESX-Host> --operation enter|exit|reboot

Der Befehl kann entweder mit dem Parameter enter oder exit oder reboot ausgeführt werden.

Happy Birthday ElasticSky :-)

Elasticsky.de wird 2

Heute vor genau zwei Jahren wurde hier der erste Blogartikel veröffentlicht. Was als persönliches Online-Notizbuch begann, entwickelte sich in den letzten zwei Jahren mehr und mehr zum interessanten Informations-Projekt.Interessant deshalb, weil ich neben dem Notizbuch Effekt (ja, ich vergesse manchmal die Lösung zu älteren Problemstellungen) auch immer wieder positive Rückmeldungen von Lesern erhielt. Das motiviert natürlich ungemein, auch weiterhin Informationen und Problemlösungen mit der Gemeinschaft zu teilen.

Deutsch oder Englisch?

Je länger ich mich mit dem Projekt beschäftige, desto öfter stellt sich mir die Frage, ob ich nicht besser zur “Netzsprache” Englisch wechseln sollte. Natürlich erreicht man ein breiteres Publikum wenn man in englisch schreibt. Aber realistisch betrachtet gibt es dort draussen hunderte guter Blogs in englischer Sprache. Für die Gemeinschaft im D-A-CH Netz ist das Angebot aber immer noch sehr dünn. Daher werde ich weiterhin bei Deutsch als Primärsprache bleiben und nur ganz spezielle Themen in englisch publizieren. Nämlich dann, wenn es zu diesem Thema noch keine Informationen im Netz gibt. Für alle anderen Artikel gibt es die automatische Übersetzung (die gelegentlich aber peinlich schlechte oder bestenfalls amusante Ergebnisse liefert). Wenn ich Zeit dazu finde und das Thema sich lohnt, überarbeite ich diese automatische Übersetzung und wandle sie sinngemäss in ordentliches Englisch.

Kommentare

Eine kleine Änderung gab es im vergangenen Jahr in Bezug auf die Kommentare. Anfangs musste man sich anmelden um Artikel zu kommentieren. Das hält zwar lästige Spammer ab, jedoch auch viele normale Besucher. Denn ehrlich gesagt möchte ich mich auch nicht erst anmelden, um mit einem Blogger Gedanken auszutauschen. Daher wurde die Anmeldepflicht fallen gelassen. Das Ergebnis sind etwa 500 Spam Kommentare pro Woche. Wie gut dass die WordPress Gemeinde nützliche Helferlein bereit stellt, die den ganzen Müll abfischen.

Diese Sache wollte ich schon immer mal loswerden:

Liebe Spammer hier eine Info zum mitschreiben: Kein Mensch, der halbwegs bei Verstand ist, würde die kleinen blauen Pillen bei einem windigen Internetversand aus Nord-Absurdistan kaufen. Wenn ich diesbezüglich mal ein Problem haben sollte, so werde ich meinen Urologen konsultieren – Danke. Ende der Durchsage. 🙂

Ich danke allen, die mir in den letzten zwei Jahren mit ihrem Feedback neue Motivation gaben, Zeit und Energie in diesen Blog zu stecken. Ein persönliches Infoportal ist nützlich, wenn man aber erfährt das ein anderer diese Information brauchbar fand, oder damit sogar ein wichtiges Problem lösen konnte, dann ist das ein starker Vorschub.

Ich freue mich auf ein weiteres Jahr….

Michael aka divnull

Pre-Flight-Check vSphere 5.1

Alan Renouf, der vielen bekannt ist durch vCheck oder andere sehr nützliche Skriptsammlungen, hat jetzt einen sogenannten Fling veröffentlicht, mit dem man eine Virtuelle Infrastruktur vor dem Upgrade auf vSphere 5.1 testen kann.

preflight51_01

Das Skript kommt mit einer schönen GUI und zeigt im Vorfeld der Migration mögliche Probleme auf.

 

Links

vmware Labs – vCenter 5.1 Pre-Install Check Script