Hoe controleer ik een waarde in het register?

Status
Niet open voor verdere reacties.

Tijger81

Gebruiker
Lid geworden
2 jan 2010
Berichten
397
Hallo,
Ik probeer een waarde uit het register te checken. Staat de waarde in Deny_Write op 1 dan krijg ik dicht.txt, anders open.txt, maar ik krijg constant dicht.txt.
Wat gaat er fout? Wie kan mij op weg helpen.

Van onderstaande website komt het register gedeelte.
http://smallvoid.com/article/winnt-removable-storage.html

Code:
@ECHO OFF
REG query "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"  /v Deny_Write | find /i "1" 
if errorlevel 1 goto not_exist
if not errorlevel 1 goto exist

:not_exist
Copy nul "F:\open.txt"
goto end

:exist
Copy nul "F:\dicht.txt"
goto end

:end
pause
 
Prrobeer dit:
Code:
@ECHO OFF
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" /v Deny_Write 2^>^&1^|find "1"') do @set fn=%%b
if errorlevel 1 goto not_exist
if not errorlevel 1 goto exist

:not_exist
Copy nul "F:\open.txt"
goto end

:exist
Copy nul "F:\dicht.txt"
goto end

:end
 
Dank je!
Ik zal vanmiddag de code proberen.
Maar waarom zou mijn methode niet kunnen werken? Ik gebruik de code namelijk ook bij een andere register eenheid en daar werkt hij wel. Het enige verschil is dat de laatste key niet tussen {} staat en geen nummer betreft. En dat er een _ staat in de valuename

Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies /v WriteProtect | find /i "1"
 
Laatst bewerkt:
Hallo,

Ik heb je code geprobeerd, maar krijg nog steeds exist en dus dicht.txt.

Code:
REG query "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Network Connections" /v NC_PersonalFirewallConfig | find /i "1"

Bij bovenstaande test werkt het checken van de 1 wel. Als de 1 er is in NC_PersonalFirewallConfig dan krijg ik dicht.txt. Verander ik in het register de 1 naar 0 dan krijg ik open.txt

Nog een test:
Code:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"  /v Deny_Write | find /i "Deny_Write"
Als ik dit doe en ik verander in het register Deny_Write naar Deeny_Write dan krijg ik open.txt. Dus dat klopt. Maar hij moet eigenlijk de waarde in Deny_Write checken. de aanwezigheid van de 1.
 
Laatst bewerkt:
Voer de volgende test eens uit:

Code:
@ECHO OFF
REG QUERY "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"  /v Deny_Write | find /i "0x1" > %userprofile%\desktop\log.txt
if errorlevel 1 goto not_exist
if not errorlevel 1 goto exist


:not_exist
echo Deny_Write is uitgeschakeld of niet gevonden > %userprofile%\desktop\open.txt
type  %userprofile%\desktop\log.txt >> %userprofile%\desktop\open.txt
start notepad %userprofile%\desktop\open.txt
goto end

:exist
echo Deny_Write staat op 1 ingesteld > %userprofile%\desktop\dicht.txt
type %userprofile%\desktop\log.txt >> %userprofile%\desktop\dicht.txt
start notepad %userprofile%\desktop\dicht.txt
goto end

:end
del /q %userprofile%\desktop\log.txt
 
Laatst bewerkt:
Hoi. Dank je. Ik ga hem proberen. Aparte code trouwens. Ik snap de logica nog niet eigenlijk.
Hiervoor had je er nog 1 gestuurd. Die met for %%i. Kun je die ook toch nog plaatsen
 
Dat script met for gaat niet werken, dus plaats ik niet. Wel ben ik benieuwd of je met mijn vorig script geholpen bent...
 
Deze techniek had ik ook gevonden:
for /f "Tokens=2*" %%a in ('reg query key /V Deny_Write^|Find "%%"') do (
set DspName=%%b
)
if /i "%DspName%" "1" goto exist ELSE goto not_exist
 
Laatst bewerkt:
Ik heb je code getest, maar hij werkt volgens mij niet.
Ik krijg elke keer Deny_Write staat op 1 ingesteld.

Wel veranderd de text in het notepad bestand 0x0 0x1
 
Gevonden: moet Find "0x1" of Find /i "0x1" zijn ipv Find "1". Dat was alles. Sjonge..:rolleyes:

Code:
@ECHO OFF 
REG query "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" /v "Deny_Write" | Find "0x1"
if errorlevel 1 goto not_exist
if not errorlevel 1 goto exist

:exist
Copy nul "F:\dicht.txt"
goto end

:not_exist
Copy nul "F:\open.txt"
goto end

:end
exit
 
Laatst bewerkt:
Mooi dat je het gevonden hebt.

Het laatste door mij geplaatste script werkt ook en heb ik zelf ook nl. getest: Als het script "Deny_Write" en 1 vind, voert het de handelingen uit in :exist en is deze 0 of bestaat de waarde niet, voert het de handelingen uit in :non_exist.

Suc7:thumb: met je script.
 
ik dacht dat je laatste script alleen de inhoud overneemt van log.txt bij zowel dicht als open.txt. maar niet specifiek naar exist of not-exist kijkt.

Maar door de 0x1 in jouw script kwam ik op het idee.
Bedankt voor je hulp.
Ik sluit de forum af
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan