Virtualstore oder warum plötzlich Daten fehlen

Seit Windows Vista hat Microsoft im Windows-Betriebssystem UAC (User Account Control) eingeführt. Damit wurde das alte Modell „Administrator = immer volle Rechte“ abgeschafft.

Was passiert bei Programmen ohne TrustInfo-/UAC‑Manifest?

Programme ohne Manifest werden als „legacy applications“ eingestuft. Windows weiß dann nicht, ob sie erhöhte Rechte brauchen. Deshalb:

  • Sie werden standardmäßig mit eingeschränkten Rechten gestartet.

  • Auch wenn der Benutzer ein Administrator ist, läuft das Programm nur mit einem eingeschränkten Token.

  • Erst wenn das Programm etwas tut, das erhöhte Rechte erfordert (z. B. in C:\Program Files schreiben), versucht Windows eine Heuristik-basierte Erkennung und zeigt ggf. einen UAC‑Prompt an.

Wichtig:

Die Pollux-Bedien-Software PolluxWin wird ohne Manifest ausgeliefert, daher kann es passieren, dass die Software nicht im Program-Files-Verzeichnis installiert wird, obwohl dieses Verzeichnis angewählt wurde. Nur Installationen, die mit vollen Admin-Rechten durchgeführt werden, werden im Programmverzeichnis (c:\Program Files (x86)) installiert. Bei untergeordneten Benutzern wird dies von Windows häufig umgangen und die Software wird im Virtualstore des Benutzers installiert.

Daraus ergibt sich folgende Problematik:

Wird das Programm mit Administratorrechten gestartet, werden die Daten im echten Programmverzeichnis  (z. B. in C:\Program Files(x86) ) geändert. Existieren aber bereits entsprechende Daten im VirtualStore werden diese nicht angezeigt und nicht geändert. Daten aus dem VirtualStore werden mit Vorrang behandelt. Existieren Daten sowohl im VirtualStore als auch im Programm-Verzeichnis, dann werden immer die Daten des VirtualStore verwendet. Nur wenn die entsprechende Datei nicht mehr vorhanden ist, dann werden die Daten aus dem Programm-Verzeichnis verwendet.

Zusammengefasst: Verändert der Admin im Programm die Daten und es existieren Daten im VirtualStore (eines Benutzers), dann bleiben die Änderungen des Admins für den Benutzer wirkungslos, bis er die Daten aus dem VirtualStore entfernt, dort sind jedoch die aktuellen Daten des Benutzers. Es existieren also mehrere Datenorte, je nach Benutzer, dies führt letztlich zu Chaos.

Virtualstore

Wenn Sie feststellen, dass die Daten der Listendatei oder der Gruppendatei plötzlich nicht mehr auffindbar sind, dann liegt es häufig daran, dass durch die Benutzer-Umstellung seitens Windows der Zugriff auf die genannten Dateien fehlschlägt und im Virtualstore neue Dateien angelegt werden.

Den Virtualstore finden Sie im Verzeichnis

C:\Benutzer\...\AppData\Local\VirtualStore 

dort sollte der Pfad

\Program Files(x86)\Hinn\PolluxWin

existieren.

Achtung: AppData ist ein verstecktes Verzeichnis und nur sichtbar, wenn man die versteckten Dateien und Verzeichnisse in den Optionen des Datei-Explorers sichtbar macht.

Abhilfe:

Unsere Empfehlung ist die beiden Dateien in solchen Fällen auf einem von überall verfügbaren Netzlaufwerk bereitzuhalten. D.h. Sie kopieren die beiden Dateien (Listendatei und Gruppendatei) in ein Netzwerkverzeichnis Ihrer Wahl und geben dies in den Umgebungseinstellungen (Optionen - Umgebung - Pfade) des Programms PolluxWin an. 

Falls Sie nicht wissen, wie man die Pfade entsprechend einstellt, dann klicken Sie hier um mehr zu erfahren.

Zusatzbemerkung:

Eine weitere Möglichkeit diesen Windows-Mechanismus zu umgehen ist es das Programm PolluxWin als Administrator auszuführen.

Rechtsklick → „Als Administrator ausführen“.

Das funktioniert immer, ist aber kein automatischer Mechanismus.

Workaround: Kompatibilitätsmodus → „Programm als Administrator ausführen“

Über die Eigenschaften der EXE:

Eigenschaften → Kompatibilität → Programm als Administrator ausführen

Das erzeugt intern einen Shim (Kompatibilitätsbaustein), der Windows sagt: „Dieses Programm braucht erhöhte Rechte.“

Für Profis:

Eine weitere Möglichkeit besteht darin eine Manifest-Datei neben die Exe-Datei zu erzeugen. Man nennt sie PolluxWin.exe.manifest

Sie sollte folgende Zeile enthalten:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

Nachteil: Starten des Programms ggbfls. nur mit Administrator-Passwort.