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

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

Powershell sudo

Ein Problem, das unter Powershell immer wieder auftritt: Man ist als Admin angemeldet, aber die Powershell Konsole startet im nicht privilegierten Modus. Man muss diese mit dem Zusatz “Run as Administrator” starten. Dann aber hat man sein Userprofil nicht mehr zur Verfügung. Zum Beispiel Shares. Es gibt aber die Möglichkeit einen “sudo” Befehl wie in Unix/Linux Systemen zu definieren.

Hier ein Codeschnipsel von Peter Provost auf Poshcode.org.

function elevate-process

{
$file, [string]$arguments = $args;
$psi = new-object System.Diagnostics.ProcessStartInfo $file;
$psi.Arguments = $arguments;
$psi.Verb = "runas";
$psi.WorkingDirectory = get-location;
[System.Diagnostics.Process]::Start($psi);
}

set-alias sudo elevate-process;

Diesen Code muss man dem persönlichen Profile Script zufügen.

Links

PowerCLI: Easy Migration Script

Einen Datastore leeren kann eine sehr mühsame Arbeit sein. Man kann zwar mehrere VMs gleichzeitig auswählen, aber diese müssen im selben Ressourcepool sein damit man sie gemeinsam verschieben kann. Das ganze wird zum Klickdrama. Viel schöner wäre es, wenn man diesen Vorgang mittels PowerCLI automatisieren könnte. Zu meiner Freude fand ich genau so ein Skript. Es basiert auf einer Programmierung von ict-freak.nl und wurde von Richard Yaw erweitert. Die Programmierung basiert auf der PowerCLI und wurde mit einer einfachen GUI ausgestattet.

Download

Easy Migration Tool v2.1 by Richard Yaw

Folgende vMotion Operationen können durchgeführt werden:

  • Host to Host
  • VM to Host
  • Datastore to Datastore
  • VM to Datastore

Bei der Datastore to Datastore Migration kommt als erfreulicher Nebeneffekt hinzu, daß die VMs nacheinander migriert werden und somit das Plattensubsystem nicht unnötig belasten.

Man startet das Skript über die PowerCLI. Es öffnet sich die GUI und man muß nur den vCenter Hostnamen eingeben, den Cluster auswählen und den vMotion Modus festlegen (vgl. oben).

Die Version ist schon etwas älter, funktioniert aber auch unter vSphere 5.1 noch zuverlässig.

So kann man auch größere Datastores über Nacht oder über das Wochenende leeren lassen. 🙂

Links