Windows 7 Offline-Dateien und Synology-NAS

Eine der besten Funktionen von Windows7 sind die Offline-Files, d.h. die Möglichkeit, Dateien offline zu bearbeiten und anschliessend wieder zurückzuspeichern. Dies passiert in Windows7 dann automatisch und fehlerfrei. Das typische Einsatzgebiet ist dabei natürlich der Laptop, weil man mit diesem nicht immer online ist. Ich selber verwende die Offline-Dateien aber auch als automatische Backuplösung mit einem Synology-NAS.

Meine wichtigsten Daten sind in meinem Home-Verzeichnis auf der Synology gespeichert. Auf meinem Desktop habe ich nun ein Laufwerk gemappt und dieses als “Immer offline verfügbar” markiert. Dadurch werden die Daten automatisch auf meinem PC und meinem NAS gespeichert. Somit kann ich mit dem PC auch arbeiten, wenn das NAS nicht läuft und andererseits kann ich dank dem NAS auch übers Internet auf meine Dateien zugreifen.

Die einzige Voraussetzung, damit das problemlos funktioniert, ist Windows 7 Professional Edition. Mit einer Starter- oder Home-Edition ist dies leider nicht möglich. Jedoch kann beispielsweise mittels eines “Windows 7 Professional Anytime Upgrade von Windows 7 Home Premium” durch Eingabe eines neuen Lizenzschlüssels die entsprechende Funktionalität (plus Dateiverschlüsselung, Domänenbeitritt & Gruppenrichtlinien, Erweitertes Backup, Remotedesktop, etc.) ohne Neuinstallation freigeschaltet werden.

Nach der Durchführung dieses Upgrades müssen anschliessend in der Systemsteuerung im Synchronisierungscenter (siehe Screenshot) noch die Offline-Dateien aktiviert werden, bevor auf einem Laufwerk oder einem einzelnen Verzeichnis die “Offline-Fähigkeit” eingeschaltet werden kann.

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.

Windows7 GodMode

Wer schon immer mal Gott spielen wollte, kann dies jetzt unter Windows 7 mit dem versteckten Modus “GodMode” tun, mit welchem ziemlich viele – wenn nicht sogar alle – Einstellungen von Windows7 geändert werden können.

Um diese spezielle Funktion nutzen zu können, muss wie folgt vorgegangen werden:
1. Auf dem Desktop rechte Maustaste drücken
2. “Neu”, “Ordner” auswählen
3. Als Ordner-Bezeichnung den folgenden Text eingeben:
“GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}”

Wenn alles geklappt hat, erscheint nun ein neues Icon mit der Bezeichnung “GodMode” auf dem Desktop, mit welchem der spezielle Modus gestartet werden kann.

Startzeit von Windows7 beschleunigen

Durch einen Bug wartet Windows 7 bei der Verwendung einer Farbe als Hintergrundbild beim Login-Prozess 30 Sekunden auf dem Willkommensbildschirm, ohne irgendeinen sichtbaren Fortschritt zu zeigen.

Das Problem tritt nicht auf, wenn man sich per RDP auf den Rechner aus der Ferne verbindet oder wenn man den Desktop Window Manager (DWM) nicht benutzt. Das ist zum Beispiel der Fall, wenn man Aero Glass ausschaltet.

Einen direkt downloadbaren Hotfix von Microsoft gibt es noch nicht, man kann ihn jedoch via Website bei Microsoft anfordern. Die einfachste Lösung dürfte für dem Moment aber sowieso das Setzen eines Hintergrundbildes sein.

Neue Tastatur-Shortcuts für Windows7

Wer mit Software speditiv arbeiten will, kommt um das Lernen von Tastaturkombinationen nicht herum. Bei Windows7 stehen die folgenden neuen nützlichen Kombinationen im Vordergrund (WIN ist die Windows-Taste):

WIN+Home: Alle Fenster (mit Ausnahme des aktiven Fensters) verkleinern
WIN+Space: Alle Fenster werden transparent dargestellt
WIN+T: zeigt die Taskleiste an, anschliessend kann mit den Pfeiltasten navigiert werden
WIN+1-9: Wechselt zu Programm n, wobei n der Reihenfolge gemäss Taskliste entspricht
Shift+Klick auf Taskbar-Icon: start neue Instanz dieses Programmes
WIN+Up: aktuelles Fenster auf Vollbild vergrössern
WIN+Down: aktuelles Fenster minimieren (oder von Vollbild auf normal zurück)
WIN+Left/Right: Andocken des Fensters links oder rechts am Bildschirm-Rand
WIN+Shift+Left/Right (bei zwei Bildschirmen): Verschieben des Fensters von einem Bildschirm zum anderen
WIN+P: Präsentationsmodus einstellen (Laptop, Beamer, etc); damit wird die bisherige Computerspezifische Umschaltung überflüssig
WIN+(+/-): Mit dem + oder – auf dem Nummernblock kann die Bildschirm-Darstellung schnell und einfach gezoomt werden.