2.1k Aufrufe
Gefragt in WindowsVista von
Einen schönen guten Tag,

ich habe mir eine kleine BAT-Datei geschrieben, mit der ich wahlweise den VB-Script-Host aktivieren und deaktivieren kann.

wesentlicher Inhalt der eingebundenen REG-Datei:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Script Host\Settings]

"Enabled"="1" (für aktivieren)

bzw.

"Enabled"="0" (für deaktivieren)


Das funktioniert unter WindowsXP sowie unter VISTA64 einwandfrei, jedoch kann ich im Gegensatz zu WindowsXP unter VISTA mittels "regedit" den Schlüssel "Enabled" und dessen Inhalt nicht sehen.

Da der REG-Eintrag und die Wirkung funktioniert, muss dieser aber vorhanden sein.

Weshalb zeigt REGEDIT nichts an?

6 Antworten

0 Punkte
Beantwortet von ralfb Experte (6.9k Punkte)
bei mir wir die manuell hinzugefügte Zeichenfolge "enabled" nach schliessen und wieder öffnen korrekt angezeigt ...einen Neustart mach ich jetzt nicht deswegen ;)

mfg Ralf
0 Punkte
Beantwortet von
Hi,
bestimmte Schlüssel sind für den normalen Zugriff gesperrt. Dafür musst du die Zugriffsrechte ändern. Frage mich aber nicht wie. Damit habe ich mich noch nicht beschäftigt.
0 Punkte
Beantwortet von
Hallo Ralf & Solo,
Danke für Euere Antworten,

die Schreib- und Lese-Berechtigungen zu diesem Schlüssel liegen für den ADMIN-Modus vor, in dem ich auch arbeite.

Angezeigt bzw. geändert werden können diese unter Regedit, rechte Maustaste auf Settings dann Berechtigungen aufrufen ect.

Da ich den nicht sichtbaren Schlüssel aber auch wirksam ändern kann, ist die Frage der Berechtigungen eigentlich klar.

Unter VISTA64 werden unter SETTINGS nur folgende Schlüssel angezeigt:

(Standard) REG_SZ (Wert nicht gesetzt)
Active Debugging REG_SZ 1
Display Logo REG_SZ 1
Silent Terminate REG_SZ 0
UseWINSAVER REG_SZ 1


Enabled fehlt.

Vielleicht hat noch jemand eine Idee?

Viele Grüsse pettroff
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo,

versuche es mal damit:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
"Enabled"=dword:00000001

Gruß
Kalle
0 Punkte
Beantwortet von
Danke Kalle,

habe mit Regedit unter VISTA den Eintrag unter Settings "Enabled"=dword:00000001 bzw. dword:00000000 vorgenommen.

Er bleibt in der Registry zwar sichtbar, wirkt aber nicht im Gegensatz zu den mit meiner nachstehend dargestellten kleinen Bat-Datei eingetragenen Werten. Da funktioniert alles unter VISTA sowie XP.
Nur sehe ich unter VISTA eben nicht die Veränderungen. Aber der Script-Host wird aktiviert und deaktiviert.

:BEGIN
@echo off
@color 0a
@cls
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo SCRIPT-HOST DEAKTIVIEREN? D und ....
EINGABETASTE

@echo.
@echo SCRIPT-HOST AKTIVIEREN? A und ...
EINGABETASTE

@echo.
@echo.
@echo.

@set/p INPUT= EINGABE :

@echo.
@echo.
@echo.
@echo.

@if %INPUT%==A goto XX
@if %INPUT%==a goto XX
@if %INPUT%==D goto YY
@if %INPUT%==d goto YY
@goto BEGIN


:XX

@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%test.reg
echo. >> %TEMP%test.reg

echo [HKEY_LOCAL_MACHINE\Software\Microsoft....
\Windows Script Host\Settings] >> %TEMP%test.reg

echo "Enabled"="1" >> %TEMP%test.reg
echo. >> %TEMP%test.reg
@regedit /s %TEMP%test.reg
@del %TEMP%test.reg >nul

@goto ENDE

:YY

@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%test.reg
echo. >> %TEMP%test.reg

echo [HKEY_LOCAL_MACHINE\Software\Microsoft ....
\Windows Script Host\Settings] >> %TEMP%test.reg

echo "Enabled"="0" >> %TEMP%test.reg
echo. >> %TEMP%test.reg
@regedit /s %TEMP%test.reg
@del %TEMP%test.reg >nul


:ENDE


MfG

pettroff
0 Punkte
Beantwortet von
Hallo,

ich bin jetzt hinter das eigenartige Verhalten gekommen.
Es existieren in der Tat 2 Registry-Schlüssel für die Aktivierung und Deaktivierung des Script-Hostes.

Mir fiel auf, dass unter TotalCommander (TCM) gestartete Bat-Datei immer funktionierte aber die gleiche Bat-Datei von der Windowsoberfläche nicht oder nur für eine andere VBS-Datei.
Unter http://blog.topdf.de/?p=117 ist dies erklärt.
Unter dem Unterschlüssel \Wow6432Node\ gibt es Einträge, die nachvollziehbar funktionieren.

Habe die Bat-Datei so umgeschrieben:
Sie funktioniert unter VISTA64 sowohl aus der Oberfläche des TCM als auch unter der Windows-Oberfäche.
Es werden beide Schlüssel geändert.

:BEGIN
@echo off
@color 0a
@cls
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo SCRIPT-HOST DEAKTIVIEREN? D und....
EINGABETASTE
@echo.
@echo SCRIPT-HOST AKTIVIEREN? A und.....
EINGABETASTE
@echo.
@echo.
@echo.

@set/p INPUT= EINGABE :

@echo.
@echo.
@echo.
@echo.

@if %INPUT%==A set FLAG=1
@if %INPUT%==a set FLAG=1
@if %INPUT%==D set FLAG=2
@if %INPUT%==d set FLAG=2

@if %FLAG% GTR 0 goto XX

@goto BEGIN

:XX

@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%\test.reg
echo. >> %TEMP%\test.reg
echo. >> %TEMP%\test.reg
echo. >> %TEMP%\test.reg
echo [HKEY_LOCAL_MACHINE\Software\Microsoft
\Windows Script Host\Settings]
>> %TEMP%\test.reg
IF %FLAG%==2 echo "Enabled"="0" >> %TEMP%\test.reg
IF %FLAG%==1 echo "Enabled"="1" >> %TEMP%\test.reg
echo. >> %TEMP%\test.reg
echo. >> %TEMP%\test.reg
echo [HKEY_LOCAL_MACHINE\Software\Wow6432Node
\Microsoft\Windows Script Host\Settings]
>> %TEMP%\test.reg
IF %FLAG%==2 echo "Enabled"="0" >> %TEMP%\test.reg
IF %FLAG%==1 echo "Enabled"="1" >> %TEMP%\test.reg
echo. >> %TEMP%\test.reg
regedit /s %TEMP%\test.reg

@if exist %TEMP%\test.reg @del %TEMP%\test.reg

Da diese aber auch unter WindowsXP und VISTA32 funktionieren soll habe ich 2 Fragen:
Würde der Schlüssel ...\Wow6432\Microsoft\.... dann dort unerwünscht angelegt?
Und wie könnte ich dies vermeiden?

Pettroff
...