Ik heb een zelf geschreven programma (*.cmd) dat enkele registry files importeert.
Nu heb ik hier een Windows 7 64bit, en wat blijkt? De registry files die ik importeer via commandline willen niet werken?
Op een Windows 7 32bit leek (vorige week) alles wel goed te gaan.
Probleem is dat ik hier nu geen 32bit windows 7 heb, enkel een 64bit.
Wat wil ik concreet doen?
Bij het opstarten van het programma, moet het programma nakijken of UAC enabled is.
Is het enabled? --> Disable UAC en vraag de user om te rebooten. Er mogen wel degelijk interacties zijn met de user. Ik wil enkel dat de code ZELF UAC disabled en dat de user enkel op "ok" of iets dergelijks moet klikken.
Is het disabled? --> Ga verder met de code
De code, die volgens mij werkt op een 32bit (maar kan dat nu dus niet meer testen, heb geen 32bit hier).
Op een 64bit lijkt dit niet te lukken. Na wat zoeken ben ik erop uit gekomen dat er op een 64bit OS 2 regsitry editors zijn.
Eentje hier %systemroot%\regedit.exe
en eentje hier %systemroot%\SysWOW64\regedit.exe
Als ik die denkwijze volg, moet ik mijn code aanpassen als volgt:
Als ik de /S switch weg laat krijg ik volgende fout:
Als alternatief heb ik deze nog:
Deze code heeft echter een elevated prompt nodig en ik prefereer een *.reg file te gebruiken.
Ter info:
Als ik rechtstreeks klik op de*.reg file doet hij het perfect: UAC is disabled en een reboot is nodig om de settings actief te maken.
Dus:
Kan iemand me helpen om via code UAC te disablen en dan te vragen aan de user om te rebooten?
Nu heb ik hier een Windows 7 64bit, en wat blijkt? De registry files die ik importeer via commandline willen niet werken?
Op een Windows 7 32bit leek (vorige week) alles wel goed te gaan.
Probleem is dat ik hier nu geen 32bit windows 7 heb, enkel een 64bit.
Wat wil ik concreet doen?
Bij het opstarten van het programma, moet het programma nakijken of UAC enabled is.
Is het enabled? --> Disable UAC en vraag de user om te rebooten. Er mogen wel degelijk interacties zijn met de user. Ik wil enkel dat de code ZELF UAC disabled en dat de user enkel op "ok" of iets dergelijks moet klikken.
Is het disabled? --> Ga verder met de code
De code, die volgens mij werkt op een 32bit (maar kan dat nu dus niet meer testen, heb geen 32bit hier).
code:
1
2
3
4
5
| Echo UAC seems to be enabled!! Echo UAC will be disabled... regedit /s script_install\UAC_Level-4_Disable.reg Echo UAC disabled... Echo Please reboot! |
Op een 64bit lijkt dit niet te lukken. Na wat zoeken ben ik erop uit gekomen dat er op een 64bit OS 2 regsitry editors zijn.
Eentje hier %systemroot%\regedit.exe
en eentje hier %systemroot%\SysWOW64\regedit.exe
Als ik die denkwijze volg, moet ik mijn code aanpassen als volgt:
code:
1
2
3
4
| Echo UAC will be disabled... %systemroot%\SysWOW64\regedit.exe /s script_install\UAC_Level-4_Disable.reg Echo UAC disabled... Echo Please reboot! |
Als ik de /S switch weg laat krijg ik volgende fout:
code:
1
| Kan UAC_Level-4_Disable.reg niet importeren: er is een fout opgetreden bij het openen van het bestand. Er is mogelijk een schrijf of bestandssysteemfout opgetreden. |
Als alternatief heb ik deze nog:
code:
1
| cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f |
Deze code heeft echter een elevated prompt nodig en ik prefereer een *.reg file te gebruiken.
Ter info:
Als ik rechtstreeks klik op de*.reg file doet hij het perfect: UAC is disabled en een reboot is nodig om de settings actief te maken.
Dus:
Kan iemand me helpen om via code UAC te disablen en dan te vragen aan de user om te rebooten?