Zum Inhalt springen

Reg Key übergeben


Master Tom

Empfohlene Beiträge

Hallo,

ich würde gerne bei der Anmeldung eines Users in der Domäne per login bat einen Registy key in die Registry per Reg.exe des ResKits reinschreiben.

Ich habs per reg.exe versucht, als Domänenadmin geht es auch, doch der normale user hat nicht genügend Rechte dafür.

Wie kann ich dann sowas umsetzen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Master Tom

ISt ja so ziemlich das selbe Problem das ich auch habe :)

Ansatz :

Den Usern temporär (bzw. Anfang der Woche) die benötigten Rechte auf den Registry-Zweig geben (über psexec und ne kleine for-schleife mit textdatei),

Ende der Woche müsste jeder PC "erreicht" worden sein,

dann das Skript ausführen lassen.

Nachteile :

Aufwendig,

Sicherheitstechnisch bedenklich

Aber "für einmal" sollte das klappen.

Alternativ kann man bei jedem Login auf dem Server auch einen Prozess anstossen, welcher die Rechte temporär für eine Minute setzt, und sie dann nach dem Login wieder löscht.

Klingt gut,

Gruß

Terran

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt ja dazu folgenden Hintergrund.

Es wird bzw. sollte eher (denn es geht ja nicht) per login.bat erstmal paar Keys in die Reg geschrieben werden:

[HKEY_CURRENT_USER\control panel\desktop]

"ScreenSaveActive"="1"

[HKEY_CURRENT_USER\control panel\desktop]

"ScreenSaveTimeOut"="300"

[HKEY_CURRENT_USER\control panel\desktop]

"SCRNSAVE.EXE"="C:\\WINNT\\system32\\logon.scr"

[HKEY_CURRENT_USER\control panel\desktop]

"ScreenSaverIsSecure"="1"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]

"NoDispScrSavPage"="1"

dass der Bildschirmschoner die standartmässigen einstellungen hat (Nach 5 min. ein und mit PW abfrage und der Reiter Bildschirmschoner ausgeblendet wird).

Jetzt wird für jeden Rechner individull noch eine bat aufgerufen in der dann wieder ein Key steht, der den Bildschirmschonerreiter wieder einblendet, also NoDispScrSavPage"="0"

So das nur bestimmt Rechner den Schoner selbst einstellen können.

(Dieser zweite Reg Key der den Reiter wieder einblenden soll, wird automatisiert in die jeweilige bat datei des rechner eingetragen, je nachdem ob dieser Rechner die eintellungen ändern darf oder nicht)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Master Tom

Wie würde ich dann das zweite umsetzen ?

Meine graue Theorie dazu :

Ein Dienst läuft auf dem Server, welcher beim Login eines Users, automatisch per psexec remote mit Adminrechten die notwendigen Key-Rechte setzt,

das Login-Skript des Users hat zu dem Zeitpunkt einen Pausebefehl drin (10 Sekunden,kann man aber prima mit einem if EXist koppeln, um die Pause wirklich nur zu machen, wenn die Aktion noch nicht ausgeführt wurde)

Die 10 Sekunden sind rum,

das Login-Skript wird weiter abgearbeitet, die Regkeys werden mit den Rechten des Users aus dem Loginskript eingespielt.

Der Dienst nimmt dem User nach, sagen wir 30 Sekunden, die Rechte wieder weg, also setzt sie zurück.

Die schwerste Frage so dem Thema (der Rest ist try&error) :

Woher weiss der Dienst, wann ein Client das Loginskript aufruft ?

Z.b. : Durch das Loginskript selbst, da dieses eine Datei in einem bestimmten Verzeichnis mit dem NETBIOS Namen des Computers ablegt, der brave Dienst (kann eine simple Endlosschleife sein), scannt das Verzeichnis alle 5 Sekunden auf Dateien, findet es eine, wird auf diesen Dateinamen=NETBOSNamen unsere psexec Geschichte ausgeführt.

Nachteil, mangelnde Sicherheit, jeder User kann in dieses Verzeichnis alles reinschrieben (muss er ja, das Skript muss es ja auch können).

Also Kopplung über ein "Reverse Lookup" auf den NETBIOS Namen, inklusive Prüfung ob eine aktuelle Session zwischen Client und Server herrscht (über nbtstat oder netstat).

Soviel meine graue Theorie dazu.

Ich mag solche Kopfnüsse, es halt nicht ganz einfach, man lernt aber sicher ne Menge dabei.

Habe so mal einen eigenen automatischen VNC-Installer/Viewer erstellt.

(Ich weiss, gibts schon, kostet nix, und ist auch viel besser als meine Idee, aber war trotzdem nett und lehrreich)

Gruß

Terran

Link zu diesem Kommentar
Auf anderen Seiten teilen

also wenn du ein windows 2000 oder xp netzwerk mit einem ad hast, kannste auch unter den gruppenrichtlinien ein sog. start-script einbinden. dieses wird VOR der benutzeranmeldung ausgeführt und zwar mit ADMIN rechten.

wir haben das hier auch so. erst dieses start script was systemweite einstellungen vornimmt, und nach der anmeldung des benutzers eben das anmelde script, welches benutzer spezifische einstellungen setzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Master Tom

Aber dieses Script soll nicht auf allen PCs ausgeführt werden. Sondern nur auf ein paar bestimmten.

Und dieses Script gildet bestimmt für alle.

Schreib die User für die das Skript gelten soll in eine Textdatei,

und lass dann von dem Skript prüfen, ob der User in dieser Textdatei enthalten ist, wenn ja, Skript weiterausführen.

Code :

for /f %%a in (liste.txt) do if %USERNAME%=%%a GOTO :weiter

exit

:weiter

(Gewünschtes Skript ausführen)

Gruß

Terran

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte das Problem auch, ich habe es mit PSEXEC von Sysinternals gelöst.

Das ganz läuft so ab:

Du erstellst eine Batchdatei (c:\RegEinfuegen.cmd)

regedit /s Regdatei.reg

Dann erstellst du eine weitere Batchdatei, die du bei dir ablaufen lässt:

xcopy c:\RegEinfuegen.cmd \\Computername\c$

psexec \\Computername -u userDerInRegSchreibenDarf -p passwort -c c:\RegEinfuegen.cmd

del \\Computername\c$\RegEinfuegen.cmd

fertig.

Wenn du das an vielen Plätzen installieren musst, kannste das am besten per for Schleife verteilen. Hierzu nimmst du am besten

Hyena . Hyena hat einen Exporter, mit dem du alle Pcs in deiner Domäne/Arbeitsgruppe in eine Texdateischreiben kannst.

Deine Batchatei ändert sich dann:

for /f %%i in (c:\ComputernamenAusHyena.txt) do set Comp=%%i

xcopy c:\RegEinfuegen.cmd \\Comp\c$

psexec \\Comp -u userDerInRegSchreibenDarf -p passwort -c c:\RegEinfuegen.cmd

del \\Comp\c$\RegEinfuegen.cmd

Am besten legst du für diese Aktion temporär einen Admin an, den du anschließend wieder löscht.

Edit: Wenn der Regkey User-gebunden verteilt werden soll, kannste ne Prüfung ins Loginskript einbauen:

if %USERNAME%=UserDerRegBekommenSoll then (hier das Skript angeben)

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, soweit so gut.

Ich würde dieses psexec jetzt aber gerne ohne remote, also \\blabla aufrufen. Also Local an der Maschine wo es gemacht werden soll.

Mein Aufruf sieht jetzt folgendermassen aus:

psexec \\xxxx -u xxxx\userx -p password -s c:\winnt\system32\reg.exe add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v NoDispScrSavPage /t REG_DWORD /d 0 /f

Aber er soll an dem PC aufgerufen werden wo es benötigt wird, Gibts es dieses Tool auch als "Lokal" version ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Master Tom

Aber er soll an dem PC aufgerufen werden wo es benötigt wird, Gibts es dieses Tool auch als "Lokal" version ?

RTFM :rolleyes:

computer

Direct PsExec to run the application on the computer or computers specified. If you omit the computer name PsExec runs the application on the local system and if you enter a computer name of "\\*" PsExec runs the applications on all computers in the current domain.

http://www.sysinternals.com/ntw2k/freeware/psexec.shtml

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mmhhhh......

Hab folgenden Aufrauf

psexec -u xxxx-p xxxx-s reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v NoDispScrSavPage /t REG_DWORD /d 0 /f

Ich bekomme folgende Meldung zurück, und der Key wird nicht geschrieben.

The operation completed successfully <--- Die Rückmeldung vom Reg add !

reg exited on OE-234 with error code 0.

Ruf ich jetzt aber

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v NoDispScrSavPage /t REG_DWORD /d 0 /f

alleine auf, geht es :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

versuch mal eine .reg Datei zu erstellen, wo du deinen Wert reinschreibst. Die legst du bei jedem PC auf Laufwerk c:\, und die führst du dann aus.

Edit:

So wie ich es weiter oben geschrieben habe:

Du erstellst eine Batchdatei (c:\RegEinfuegen.cmd)

regedit /s Regdatei.reg

Dann erstellst du eine weitere Batchdatei, die du bei dir ablaufen lässt:

xcopy c:\RegEinfuegen.cmd \\Computername\c$

psexec \\Computername -u userDerInRegSchreibenDarf -p passwort -c c:\RegEinfuegen.cmd

del \\Computername\c$\RegEinfuegen.cmd

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...