agebach
Goto Top

Regedit abfrage script

Guten morgen,
ich bitte um eure Hilfe.

Ich versuche ein Skript zu schreiben welches in der Reg nach dem Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC
sucht.
ist der Wert >0 soll er auf 0 geändert werden.
Wenn er 0 ist, soll nichts geschehen.

Ich hatte folgenden Ansatz der aber nicht funktioniert.

echo off
reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC"  
if %ERRORLEVEL% EQU 0 goto END
if %ERRORLEVEL% EQU 1 goto PATCH

:END
ECHO NO
exit

:PATCH
REG ADD "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC" /v IsTabletPC /t REG_DWORD /d 0 /f  

Content-ID: 394760

Url: https://administrator.de/contentid/394760

Ausgedruckt am: 15.11.2024 um 19:11 Uhr

erikro
erikro 05.12.2018 um 08:36:04 Uhr
Goto Top
Moin,

nimm die Powershell:

get-itemproperty HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC | if($_.IsTabletPC -ne 0) {set-itemproperty -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC -name IsTabletPC -value 0}  

hth

Erik
agebach
agebach 05.12.2018 um 09:16:45 Uhr
Goto Top
Ich muss das ganze aber später als anmelde Script einbinden.
Da wäre mir eine bat / cmd lieber.
Abgesehen davon erhalte ich diesen Fehler:


 get-itemproperty HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC | if($_.IsTabletPC -ne 0) {set-itemproperty -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC -name IsTabletPC -value 0} 
if : Die Benennung "if" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise   
des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:75
+ ... y HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC | if($_.IsTa ...
+                                                                ~~
    + CategoryInfo          : ObjectNotFound: (if:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Kraemer
Kraemer 05.12.2018 um 09:39:41 Uhr
Goto Top
Moin,

Zitat von @agebach:
Ich hatte folgenden Ansatz der aber nicht funktioniert.
vielen Dank für die ausführliche Problembeschreibung...

ist der Wert >0 soll er auf 0 geändert werden.
Wenn er 0 ist, soll nichts geschehen.
diesen Part hast du vergessen zu Programmieren. Ich glaube auch nicht, dass du das so meinst. Denn dann wäre ein
> REG ADD "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC" /v IsTabletPC /t REG_DWORD /d 0 /f  
zwar nicht sauber, aber eine schnelle Lösung deines "Problems"

Gruß
erikro
Lösung erikro 05.12.2018 aktualisiert um 09:44:44 Uhr
Goto Top
Moin,

Zitat von @agebach:

Ich muss das ganze aber später als anmelde Script einbinden.
Da wäre mir eine bat / cmd lieber.

Warum? Um Dir das Leben extra schwer zu machen? face-wink Powershellskripts kannst Du genauso leicht als Login-Skript einbinden wie ein CMD.

Abgesehen davon erhalte ich diesen Fehler:

Ja, mein Fehler. Es ist noch zu früh. Wenn es eh ein Skript werden soll:

param(

     $regpath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC",  
     $valuename = "IsTabletPC"  
     $value = 0

)

$properties = get-itemproperty $regpath
if($properties.$valuename -ne 0) {

     set-itemproperty -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC -name $valuename -value $value

}

Das sollte gehen.

hth

Erik

Das macht
Kraemer
Kraemer 05.12.2018 um 09:50:51 Uhr
Goto Top
if($properties.$valuename -ne 0) {
Beachte: Mangels Fehlerprüfung wird der Schlüssel angelegt, wenn nicht vorhanden. Kann, muss aber nicht gewollt sein.
erikro
erikro 05.12.2018 um 10:01:56 Uhr
Goto Top
Zitat von @Kraemer:

if($properties.$valuename -ne 0) {
Beachte: Mangels Fehlerprüfung wird der Schlüssel angelegt, wenn nicht vorhanden. Kann, muss aber nicht gewollt sein.

Da hast Du recht.

param(

     $regpath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC",  
     $valuename = "IsTabletPC"  
     $value = 0

)
if(test-path $regpath) {
     $properties = get-itemproperty $regpath
     if($properties.$valuename -ne 0) {

          set-itemproperty -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC -name $valuename -value $value

     }
}
agebach
agebach 05.12.2018 um 10:22:51 Uhr
Goto Top
Ich hab es.

VIELEN DANK


$regpath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC"  
$valuename = "IsTabletPC"  
$value = "0"  
$properties = get-itemproperty $regpath 
if($properties.isTabletPC -ne 0) {
set-itemproperty -path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\Tablet PC" -name $valuename -value $value  
}
erikro
erikro 05.12.2018 um 10:25:14 Uhr
Goto Top
gerne
Henere
Henere 18.09.2019 um 20:37:36 Uhr
Goto Top
Sorry, wenn ich das ausgrabe....

aber wo ist der Sinn dahinter abzufragen, ob ein Wert ungleich 0 ist, dann auf 0 zu ändern ?
Wenn ich den gleich mit 0 setze, ist der Werte vorher doch egal ? Egal ob da 0 stand und zu 0 wird, oder 5 und auch zu 0 wird ?

Grüße, Henere