Der beste Weg, um HKCU-Schlüssel und -Werte für alle vorhandenen Benutzer und alle neuen Benutzer hinzuzufügen?

11

Ich muss allen Computern in einer bestimmten Organisationseinheit, allen vorhandenen Benutzerprofilen und dem Standardprofil HKCU-Schlüssel und -Werte hinzufügen. Was ist der beste Weg, um dies zu erreichen?

Ich könnte alle NTUSER.DATs aufzählen und durchlaufen, den Bienenstock laden, die Schlüssel hinzufügen und den Bienenstock entladen, aber das scheint eine umständliche Methode zu sein.

Hat jemand eine bessere Idee? Ich möchte dies skripten (vorzugsweise PowerShell) und die Änderungen nach Möglichkeit übertragen, aber Anmeldeskripts für Gruppenrichtlinien würden auch funktionieren.

Doug Chase
quelle
Empfohlene Lektüre : stackoverflow.com/questions/1423687/…
Stein Åsmul
Wie wäre es mit Gruppenrichtlinieneinstellungen?
Bill_Stewart

Antworten:

13

Meine bevorzugte Methode ist die Verwendung von Active Setup. Überprüfen Sie, ob sich ein Benutzer bei einem Computer anmeldet, ob er ein bestimmtes Skript oder einen bestimmten Befehl ausgeführt hat (z. B. den, den Sie hätten), und führen Sie ihn aus, wenn nicht. Sie führen also ein bestimmtes Skript für einen Benutzer nur einmal auf seiner Workstation aus. Ich fand das perfekt, um an HKCU zu schreiben, da Sie nicht jeden Bienenstock laden müssen und nur die Konten, bei denen sich Benutzer anmelden, geändert werden.

Nicht um sich selbst zu fördern, aber ich habe einen Blog-Beitrag darüber geschrieben. Die Grundlösung lautet wie folgt:

Fügen Sie die folgenden Registrierungseinträge hinzu:

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\UniqueID]
"Version"=""
"Stubpath"=""
@=""
  • Sie können eine beliebige eindeutige ID auswählen. GUIDs werden oft verwendet, aber Sie können alles verwenden, was einzigartig ist.
  • Version ist die Versionsnummer, die Sie verwenden möchten.
  • Stubpathist der Befehl, der ausgeführt wird. MSI-, EXE- und VBS-Aufrufe scheinen in Ordnung zu sein.
  • Das @ist das, was angezeigt werden soll , wenn der Befehl ausgeführt wird .

Bei dieser Lösung spielt die Skriptsprache keine Rolle. Sie können eine VBScript-, Powershell- und Batch-Datei erstellen. Was auch immer Sie als angemeldeter Benutzer an HKCU schreiben lässt. Die reg.exedirekte Verwendung funktioniert ebenfalls einwandfrei.

Der andere optionale letzte Schliff, den Sie vornehmen können, ist das Laden und Ändern des Standardbenutzers Hive. Dadurch wird der Registrierungswert für alle neuen Benutzer festgelegt, die sich zum ersten Mal bei diesem bestimmten System anmelden.

Rob Haupt
quelle
Ich werde verdammt sein, das sieht perfekt aus. Ich hatte noch nie von Active Setup gehört. Jetzt testen! Vielen Dank.
Doug Chase
Gute Antwort auch von 20th Century Boy, aber Active Setup ist meiner Meinung nach die einfachste und zuverlässigste Lösung. Sie können alles ausführen, was "lauffähig" ist.
Stein Åsmul
2
Wie wird mit dem Schreiben in HKLM umgegangen, insbesondere wenn der Benutzer kein Administrator ist? Ihr Blog-Beitrag könnte wirklich ein Beispiel gebrauchen - genau wie dieser Beitrag.
Ian Boyd
7

Sie können benutzerdefinierte Registrierungsschlüssel hinzufügen, indem Sie eine benutzerdefinierte Administrationsdatei erstellen und als Vorlage in den Abschnitt Administrative Vorlagen eines Gruppenrichtlinienobjekts importieren. Verknüpfen Sie dann dieses Gruppenrichtlinienobjekt mit Ihrer Organisationseinheit. Es gibt Dokumente bei MS darüber, wie das geht, oder Sie können sich die Adm-Dateien ansehen, die bereits auf dem Server vorhanden sind (glaube ich, irgendwo unter Sysvol).

Dieser Vorgang wird als "Tätowieren der Registrierung" bezeichnet und bedeutet, dass Sie außerhalb der Kontrolle über das Entfernen von Gruppenrichtlinien liegen. Das heißt, die Registrierungseinträge bleiben auch dann erhalten, wenn die Richtlinie entfernt wird. Sie müssen einen "umgekehrten" Registrierungsschlüssel erstellen und bereitstellen (oder ihn einfach löschen).

PowerApp101
quelle
Dies ist auch eine gute Lösung, und ich wette, dass diese beiden Antworten funktionieren würden.
Doug Chase