Elevated rights voor logoff script nodig?

Status
Niet open voor verdere reacties.

Eagle Creek

Verenigingslid
Lid geworden
3 okt 2002
Berichten
26.336
Hi!

XP Pro.
Geen domein.

Bij een beperkte gebruiker (die als extra's heeft: geen regedit toegang, geen C:\/D:\ toegang) heb ik een bepaald logoff script. Dit script geeft als opdracht een bepaalde regwaarde te verwijderen.
Nu is het zo dat op het moment dat de user zich afmeld, de PC blijft hangen (hij loopt wel bij "afmeldingsscripts uitvoeren", alleen gaat 'ie niet verder). De Admin is binnen 2 sec door de scripts heen.

Nu doet mij dit vermoeden dat dit komt omdat de user geen rechten heeft op regedit, waardoor hij blijft hangen met een error en wacht op input. Daar het een logoff-script is, is er geen input en zit ik met een probleem. Maar dit script wordt dus uitgevoerd met userpermissies, en geen system permissies??
Alternatief is om een shutdown-script te maken, maar dit wil ik niet. Heeft iemand een idee hoe ik dit moet oplossen? Via de policyeditor kan ik alleen scripts toewijzen, en geen uitvoerder opgeven. Is er toch een methode om dit script op een of andere manier met elevated policies te laten lopen?

EDIT: Ik zit momenteel dit te bekijken: http://www.microsoft.com/resources/...windows_security_runas_shortcut.mspx?mfr=true, daar je parameters voor je script op kan geven. Maar... Het gaat om de keys HKLM en HKLU dus runnen als admin geeft ook niet het gewenste resultaat, gezien HKLU.
 
Laatst bewerkt:
Aha.. Ik weet iets meer.. Door het weergeven van afmeldscripts weer ik nu waar de fout zit (beter gezegd: waar een fout zit).

Het is de melding "de opdrachtprompt is door de systeembeheerder uitgeschakelt, druk op een toets om door te gaan" die in de weg zit.

Maar.........: Je moet toch logon/logoff scripts kunnen runnen, zonder dat je CMD open hoeft te zetten? Nu weet ik dat er ergens een policy is die .BAT toestaat, maar CMD niet. Maar behalve dat ik dit policy even niet kan vinden, is het ook niet bepaald de meest veilige manier.
Daar komt bij dat ik vermoed dat de reg.blokkade er straks toch nog tussen gaat zitten morren.
EDIT: Mijn laatste vermoeden is bevestigd..

En daarmee kon ik dus op de originele vraag.. Hoe een logoffscript runnen zonder toegang te verlenen tot CMD / REGEDIT?
 
Laatst bewerkt:
Laatst bewerkt:
Goede suggestie.
WSHShell = CreateObject("WScript.Shell")

*!* Delete Registry Keys
WSHShell.Popup( "Delete value HKCU\MyRegKey\Entry\Value1")
WSHShell.RegDelete( "HKCU\MyRegKey\Entry\Value1")

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/scriptinga.asp

Alleen... Zonder verder iets geprobeerd te hebben hoor: Ik gebruik de gpedit tool om het logoff script toe te voegen. Het is dus blijkbaar zo dat deze scripts worden uitgevoerd met de rechten, van de user die zich afmeld. Dan heb ik toch nog het probleem dat mijn VBS script op userniveau draait, en geen toegang heeft tot het register?
Want zodra het script (bat of vbs) toegang heeft tot het register is het probleem opgelost (lijkt mij).

Wat ik sowieso raar vind.. Ik ben dit nog nooit eerder tegengekomen? Een systeembeheerder kan in een logonscript toch bepaalde admin. handelingen uitvoeren die de user normaal gesproken niet kan? Anders zou alles wat in een script staat, ook manueel uitgevoerd kunnen worden, toch?
 
Laatst bewerkt:
Het script gaat doormiddel van het impersonate gedeelte in de WMI sessie op elevated rights verder, hierdoor heeft hij wel rechten voor access tot het register.

Een Userlogon script word altijd onder de userrights gedraait, Dus ja alles wat in het script staat kan ook door de user afgetrapt worden
 
Laatst bewerkt:
Probeer het eens met Takenplanner, daar kan je aangeven met welke authority de taak uitgevoerd dient te worden. Dan als administrator dus.. :)
 
Het script gaat doormiddel van het impersonate gedeelte in de WMI sessie op elevated rights verder, hierdoor heeft hij wel rechten voor access tot het register.
Aha.. Zit ik met nog een probleempje (sorry :-)) want ik heb het nu als shutdownscript geprobeerd. Deze heeft geen last van de rechtenbeperking. Dit is het probleem:
Code:
:Verwijderen uit de HKLM
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "QuickTime Task" /F
Geen enkel probleem.

Echter.. De vermelding staat óók in de current user. Nu wil het zo zijn dat de current user vermelding niet wordt geleegd wanneer ik hem draai als shuwdown script (en buitendat wil ik een logoff en geen shutdown). Ik vermoed dat ik straks hetzelfde probleem heb met vB, of niet?
Code:
:Verwijderen uit de HKCU
REG DELETE HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "QuickTime Task" /F
Ik kan mij hier wat bij voorstellen want er is geen sprake meer van een current user (of "system" maar die heeft niet zo'n vermelding).

Dus probeer ik het volgende:
Code:
:Verwijderen uit de HKU
REG DELETE HCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "QuickTime Task" /F

Maar ook dit werkt niet.


Een Userlogon script word altijd onder de userrights gedraait, Dus ja alles wat in het script staat kan ook door de user afgetrapt worden

Interessant.

Probeer het eens met Takenplanner, daar kan je aangeven met welke authority de taak uitgevoerd dient te worden. Dan als administrator dus.. :)

Heb ik aan zitten denken, alleen zit ik met bovenstaand probleem (dus de HKCU die van Admin wordt gepakt en niet van de *current* user) en het feit dat het bij een logoff moet gebeuren. En een geplande taak kan alleen bij een logon.
 
Laatst bewerkt:
Ik ben nog eens in die impersonate gedoken en in samenhang met wat ik wil bereiken (het deleten van een regkey) heb ik het vermoeden dat dit nogal omslachtig is.
Vanzelfsprekend ga ik er wel naar kijken of ik er wat mee kan, maar ik vermoed dat dit simpeler kan?

Daar komt bij dat ik mij afvraag hoe ik een "current user" item kan deleten, vanuit een ander account (dus ingelogd als admin, een CU item van "userx" kan verwijderen). Ik dacht dat dit via HCU ging, maar dat is dus niet zo.
 
HKCU bevind zich in de NTUSER.DAT file deze wordt dus als profiel geladen bij logon.
Indien je in group policie het starten van register tools verbied krijg ze die niet eruit.
In een default geval zou dat eigenlijk met een logon script moeten lukken, in de regel heeft elke gebruiker het recht om zijn eigen opstart items in msconfig (register) aan te passen.
Maar dit is een theoretische benadering, praktiesch zou ik dat moeten uitproberen.

Andere optie voor HKCU (ntuser.dat) is een verplicht profiel, dan wordt elke wijziging van de gebruiker in zijn profiel niet opgeslagen. :confused:
http://support.microsoft.com/kb/307800/nl
 
Nee, de user heeft geen toestemming om het register te bewerken. Dus als ik via een cmd, een reg opdracht oproep mag dat niet.

Een verplicht gebruikersprofiel is een mogelijkheid, en misschien doe ik dat ook wel. Moet even kijken naar de voors/tegens.

Bedankt voor het meedenken jongens, ik ga nog eens stoeien :).
 
Misschien dat je hem op dat moment nog net uit de HKUsers-[sid] kan weggooien?
 
Laatst bewerkt:
Er bestaan tooltjes zoals PowerPrompt.exe
Een command line util die onder system authority draait.
Je kan het eens proberen om PowerPrompt.exe in de windows folder te zetten en de BAT extensie met PowerPrompt te associëren zodat deze met PowerPromt wordt uitgevoerd..

Er bestaan nog twee van deze gelijke tooltjes van een andere uitgever, kan ik effe niet terug vinden..

ps.
Zou dit tooltje dan wel een beetje maskeren met een andere naam voor alle gevallen, bv. ppt.exe :)
http://grubletrang.com/Software.aspx?app=PowerPrompt
Ik weet niet of dat werkt, je moet admin zijn om dit tooltje überhaupt te kunnen starten.

Van de andere kant als ik er zo over nadenk, mag jou beperkte gebruiker niet in het register komen maar mag zijn profiel natuurlijk wel schrijven in de hkcu.
Anders kan dat profiel niet werken.
Haal eens bij HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run de bevoegdheid weg voor de normale gebruikers.
Dan kan hier niet meer geschreven worden door de gebruikers.. :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan