Repetitive (IT-)Arbeiten automatisieren

Da ich letzthin eine Menge gleichartiger Arbeiten repetitiv durchführen musste (Website aufrufen, diverse Buttons klicken und PDF downloaden), habe ich mich nach einem Tool umgeschaut, welches mich dabei grundsätzlich unterstützen könnte. Nach längerem Suchen und Vergleichen bin ich dabei auf das vTaskStudio gestossen, welches ich dann installiert und genutzt habe. Ich habe darin dann einen entsprechenden Task gebaut (siehe nachfolgenden Screenshot), welcher mich unterstützen sollte. Aufgrund von Problemen mit der Seitensteuerung auf der Website und der drängenden Zeit musste ich das Thema dann trotzdem anders lösen, aber das Tool hat einen sehr guten Eindruck gemacht und umfasst sehr viele Möglichkeiten, das geht von Excel lesen, über Mail verschicken, Datenbank updaten, Mausklicks simulieren bis hin zum Shutdown des PC’s. Bei der nächsten solchen Anforderung werde ich das sicher nochmal detaillierter anschauen.

Powershell-Script ausführen

Wenn nun auf dem Desktop eine Verknüpfung zu einem Powershell-Script erstellt wird, führt ein Doppelclick interessanterweise ins Notepad, d.h. ein automatisches Ausführen des Scripts funktioniert nicht einfach so. Zu diesem Zweck muss der Link der Verknüpfung angepasst werden – vor dem effektiven Script ist noch der Powershell-Pfad samt dem Befehl „-noexit“ hinzuzufügen. Mit Noexit kann zumindestens am Anfang noch geprüft werden, ob es irgendwelche Fehler gibt oder nicht.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit " & 'U:\mypath\myscript.ps1'"

Falls keine Fehler vorhanden sind, bzw. immer alles funktioniert, kann anstelle von -noexit der Parameter -command verwendet werden.

Je nachdem wo Ihr das Script nun speichert kann es sein, dass es wegen fehlender digitaler Signatur nicht ausgeführt wird. Das ist zwar unschön, dem kann aber abgeholfen werden – allerdings wird es jetzt etwas aufwendig (weil wir ja eigentlich nur ein Script laufen lassen möchten)…

Unter dieser Adresse kann der SDK-Webinstaller des .Net Framework 4 aufgerufen werden, der einem einen selektiven Download ermöglicht. Eine allfällige Fehlermeldung beim Start (von wegen nur .Net 4 Client und nicht Full installiert) kann ignoriert werden. Alle Auswahlen bis zu den Installationsoptions standardmässig durchklicken – hier dann unter „Windows Native Code Development“ den Punkt „Tools“ anklicken und den Rest deaktivieren. Nach Abschluss der Installation sollte jetzt ein Verzeichnis „C:\Program Files\Microsoft SDKs\Windows\v7.1“ bestehen.

Dann mit dem Commandline-Prompt (Achtung wichtig: mit Admin-Rechten) in das Verzeichnis C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin wechseln und die folgenden Befehle ausführen:

makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine
makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

Für das Erstellen des privaten Schlüssels ist ein Kennwort (z.bsp. „certpassword“) zu definieren; dieses bitte notieren – es muss anschliessend wieder eingegeben werden. Die obigen Befehle müssen mit „Succeeded“ bestätigt werden, ansonsten stimmt etwas nicht.

Danach den folgenden Text in eine Textdatei kopieren und diese mit „Add-Signature.ps1“ benennen.

## add-signature.ps1
## Signiert eine Datei
param([string] $file=$(throw "Geben Sie einen Dateinamen an."))
$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Set-AuthenticodeSignature $file $cert

Geben Sie folgende Befehle an der Windows PowerShell-Eingabeaufforderung ein, um die Skriptdatei „Add-Signature.ps1“ zu signieren:

$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Set-AuthenticodeSignature add-signature.ps1 $cert

Damit ist nun das Skript signiert und es kann nun – endlich – das ursprüngliche Skript mit „.\add-signature.ps1 meinscript.ps1“ signiert werden. Wenn man nun die Skript-Datei anschaut, sieht man, dass am Ende der Datei eine Signatur angehängt wurde.

Somit kann nun endlich die eigene Skript-Datei mittels Doppelklick gestartet werden!

Download einer Datei mit Powershell

Bei einem meiner Forex-Provider habe ich das Problem, dass der Java-Client nicht sauber gestartet wird, d.h. dass zwar die .JNLP-Datei runtergeladen wird, dafür aber Java nicht gestartet wird. Um dem abzuhelfen, habe ich beschlossen, dafür ein entsprechendes Powershell-Skript zu erstellen. Der Hauptgrund dafür ist die Tatsache, dass der Download einer Datei aus dem Internet durch Powershell eigentlich problemlos möglich sein müsste – und ist es auch.

Nach einigem Suchen im Internet habe ich folgendes Script zusammengestellt, welches jetzt die gewünschte Datei aus dem Web holt, lokal abspeichert und via Java-Webstart ausführt:

# aktuelle Datei runterladen
# mit Java-Webstart starten
# 18.07.2011
$clnt = new-object System.Net.WebClient
$url = "https://www.xx.com/client/live/jclient/jfo.jnlp"
$file = "c:\temp\jfo.jnlp"
$clnt.DownloadFile($url,$file)
# type $file
C:
cd C:\temp
javaws jfo.jnlp

Diese Datei kann jetzt als scriptname.ps1 gespeichert werden. Damit ist nun schon ein erster Schritt getan und diese Datei kann manuell ausgeführt werden – mit einem Doppelklick gehts noch nicht, aber dazu später mehr.

Internet Explorer v9

Unter der Adresse http://ie.microsoft.com/testdrive kann ein sogenannter „Platform Preview“ des neuen Internet Explorer v9 runtergeladen werden. Der Vorteil des Previews ist, dass er als separates Programm installiert wird und problemlos parallel zu einer anderen Version verwendet werden kann. Zudem ist der Preview noch nicht als „normaler“ Browser zu benutzen, da beispielsweise die Buttons, das URL-Eingabefeld und weitere Bedienungselemente komplett fehlen.

Bootfähiger USB-Stick erstellen

Was ich schon Zeit damit verloren habe, um einen bootfähigen USB-Stick mit Windows hinzukriegen. Diverse Tools ausprobiert, einer Software von HP nachgerannt (auf die man als Geheimtipp stösst, wenn man dieses Problem googelt) und schlussendlich festgestellt, dass das alles nicht wirklich funktioniert.

Darum hier nun eine Anleitung, die bei mir einwandfrei funktioniert:

  1. Mit „cmd“ eine Kommandozeilen-Umgebung aufrufen
  2. diskpart“ eingeben, dies startet – allenfalls nach Bestätigung der Adminrechte – ein entsprechendes Hilfsprogramm von Microsoft
  3. Auf dem angezeigten Prompt „DISKPART>“ den Befehl „list disk“ eingeben
  4. Die richtige Nummer des Datenträgers (Grösse hilft als Unterscheidungsmerkmal) merken, als Beispiel hier 3
  5. Danach „select disk 3“ (bzw. die zutreffende Nummer) eingeben
  6. Nach der Bestätigung des Datenträgers jetzt „clean“ eingeben
  7. Der USB-Stick wird nun wie eine Festplatte mit „create partition primary“ partitioniert und mit „active“ aktiviert.
  8. Zum Schluss muss der Stick nun noch formatiert werden: „format fs=fat32 quick
  9. Mit „exit“ kann das Utility verlassen werden

Jetzt kann beispielsweise eine Windows-Installations-CD einfach auf den Stick kopiert und anschliessend ab diesem gebootet werden.  Einen guten Rutsch in ein neues und spannendes Jahrzehnt!

    Migration auf Windows 7

    compare-professionalNachdem Windows 7 nun offiziell (naja, noch nicht für alle – via Retail ab 22. Oktober 2009) verfügbar ist, wollte ich einen 5 Monate alten Laptop von Vista Home Basic auf Windows 7 Professional updaten. Das war dann auch gleich die grösste Enttäuschung – dieser Weg klappt nämlich nicht. Interessanterweise hat das der Migrationsassistent aber erst rausgefunden, als ich ihn aus Vista gestartet habe. Ursprünglich hatte ich nämlich Windows 7 gebootet und wollte so direkt migrieren, eine Migration ist aber anscheinend nur direkt aus dem jeweiligen Betriebssystem möglich.

    Also bleibt halt nur die Neuinstallation der ganzen Kiste. Beim Transfer von Daten und Einstellungen unterstützt einen das Programm „Windows EasyTransfer“. So wirklich einwandfrei funktioniert das leider auch nicht, aber es ist immerhin schneller als alles von Hand zu migrieren.

    So gehts nun en Detail:

    1. PC von Ballast entrümpeln (alte Programme und Daten entsorgen)
    2. wichtigste Daten für Notfälle auf externe USB-Disk kopieren
    3. Windows 7 Installationsmedium (DVD, USB-Stick, ..) einlegen
    4. Im Verzeichnis \support\migwiz\ das Programm „migwiz.exe“ starten, dieses speichert automatisch die gewünschten Daten. Aufgrund der Datenmenge wird zu diesem Zweck ebenfalls am einfachsten eine externe USB-Harddisk genutzt. Bei mir resultierten schlussendlich zwei Dateien mit einer Gesamtgrösse von 6.6 GB, wobei diese Daten in 20 Minuten erstellt wurden. Die Dateien werden übrigens maximal 4 GB gross, so können die Daten auch auf einzelne DVD’s gespeichert werden.
    5. Dann kann die effektive Windows7-Installation gestartet werden. Das dauerte bei mir nicht die beworbenen 30 Minuten, sondern ziemlich genau eine Stunde. Das kann aber natürlich an der Hardware oder am Upgrade (keine Neuinstallation) liegen. Es empfiehlt sich, für die Installation eine Internet-Verbindung zu haben, da jeweils direkt die neuesten Updates integriert werden.
    6. Danach empfiehlt es sich, die wieder benötigten Programme (Office, Mail, etc.) zu installieren.
    7. Anschliessend mittels Windows- bzw. Microsoft-Update den PC auf den aktuellsten Stand bringen.
    8. Wenn nun alles bereit ist, können die Daten vom alten PC eingespielt werden. Dazu ist im Menu unter „Erste Schritte“ der Punkt „Dateien übertragen“ auszuwählen und die Fragen entsprechend zu beantworten.
    9. Vermutlich bleibt dann irgendwann der Übertragungsprozess auf einem leeren Bildschirm stehen. In diesem Fall ist an der externen Festplatte zu prüfen, ob noch irgendwelche Daten gelesen werden oder nicht. Falls nichts mehr blinkt, kann der PC gebootet werden.
    10. Die Daten (z. Bsp. Mails, Favoriten im Browser oder Desktop) sollten nun so wie früher erscheinen. Bei mir klappte das nicht schlecht, allerdings hatte ich plötzlich deutsche und englische Verzeichnisse (obwohl sowohl Vista wie W7 deutsch sind) und die Berechtigungen auf einzelne Verzeichnisse stimmte auch nicht.
    11. Somit bleibt jetzt noch das manuelle Kontrollieren der Verzeichnisse bzw. der darin enthaltenen Daten. Zur Not kann ja auch noch auf die in Schritt 2 gemachten Kopien zurückgegriffen werden.
    Hinweis: bei der Migration wird auf dem PC ein Verzeichnis „windows.old“ angelegt, welches die alten Daten aus dem Windows-Verzeichnis enthält.

    Windows 7 lohnt sich – also viel Erfolg bei Euren Migrationen!

    Antivirus-Lösungen für Windows 7

    Ich habe nun meinen primären Arbeitsplatz von Windows Vista Ultimate auf Windows 7 Ultimate migriert. Das klappt bisher alles problemlos, nur das Thema Virenschutz nervt ein wenig, weil es natürlich noch keine offiziellen Produkte dafür gibt.

    Bei der Anzeige der Antivirenoptionen gibt es auf der Schweizer Seite genau einen einzigen Antivirus-Anbieter, nämlich AVG. Das ist mir nur beschränkt sympatisch, da ich lieber etwas mehr Auswahl habe.

    Nach einigem Suchen bei Microsoft hier also die Adresse, unter welcher verschiedenste Anbieter gelistet sind (Programme dann halt eben nur in Englisch): http://www.microsoft.com/windows/antivirus-partners/windows-7.aspx

    Antivirus Windows7

    Antivirus Windows7

    Tipps zu Windows7

    Verschiedene Dinge zu Windows7 habe ich aufgeschnappt und teilweise mit dem RC1 (Build 7100) auch schon ausprobiert. Da es noch eine Weile dauert, bis Windows7 definitiv da ist, notiere ich hier mal noch ein paar Dinge:

    • psr.exe“ – ProblemStepRecorder (zu Deutsch: „Problemaufzeichnung“)
      Geniales neues (Enduser-)Tool für die Dokumentation von Problemen oder Abläufen.
    • powercfg /energy“
      Mit diesem Utility kann ein HTML-Report („Energieeffizienzdiagnose-Bericht“) aus einer 60 Sekunden dauernden Systemüberwachung erstellt werden, wobei nach Fehler, Warnungen und Informationen unterschieden werden.

    Sicheres Löschen von Datenträgern

    Ab und an kann es notwendig sein, dass man eine Festplatte oder einen Memorystick löschen möchte. Im Normalfall ist es ja so, dass die Daten nur im Inhaltsverzeichnis des Datenträgers gelöscht werden, nicht aber die Daten selber. Entsprechende reisserische Berichte liefen auch schon im Fernsehen.

    Nun kann man sich extra ein Tool für das Löschen bzw. Ueberschreiben der Daten organisieren, oder man kann auf die bordeigenen Hilfsmittel von Windows zurückgreifen. In Windows ist nämlich seit Windows 2000 das Tool „cipher“ (im Rahmen von EFS – Encrypted File System) vorhanden, das genau das kann.

    Schritt für Schritt:
    1. Windows-Taste + R drücken („Ausführen“)
    2. „cmd“ eingeben und Enter drücken
    3. „cipher /W:X:\“ eingeben, wenn das Verzeichnis X:\ bearbeitet werden soll

    Was heisst nun bearbeitet? Vorhandene, aber nicht verwendete Daten werden in dem Verzeichnis mit einem Zufallsmuster überschrieben. Dies dauert je nach Umfang der Daten eine Weile – Geduld ist also gefragt.