registry keys setzen

mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

registry keys setzen

Beitrag von mro-rednet »

Guten Morgen,

blicke nicht ganz durch beim registry keys setzen. Ich möchte für die verteilung von 7ZIP die Dateiverknüpfungen setzen, was scheinbar nur über die registrykey möglich ist.

Kann mir jemand ein Beispiel anhand eines Beispiels nennen, wie es aussehen sollte wenn ich neue registry key erstellt / eingefügt wird?!

DANKE

Gruß
heuft_kdi
Beiträge: 64
Registriert: 02 Jul 2008, 08:06

Re: registry keys setzen

Beitrag von heuft_kdi »

Hier mal ein Beispiel wie ich es bei IzArc einsetze (wobei das Skript noch nicht getestet ist). Ich habe es zweigeteilt.

Im Winst Script steht:

Code: Alles auswählen

[Aktionen]
DefVar $OS$
Set $OS$ = GetOS

; is this a win32 system ?
if ( $OS$ = "Windows_NT" OR $OS$ = "Windows_95" )
  ShowBitmap /2 "%SCRIPTPATH%\izarc.bmp" "IzArc 3.6"
  winbatch_install_izarc
  Registry "%SCRIPTPATH%\files\izarc_install.reg" /regedit
  Registry_Add_User_Propertys /AllNTUserdats
  LinkFolder_IzArc
endif
Die Datei izarc_install.reg sieht dann so aus:

Code: Alles auswählen

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\IZArcCM]
""="{8D9D4D0D-FDDD-44CB-AAB2-6161FA0757C5}"

[HKEY_CLASSES_ROOT\.7z]
""="IZArc7Z"

[HKEY_CLASSES_ROOT\.a]
""="IZArcA"

[HKEY_CLASSES_ROOT\.ace]
""="IZArcACE"

[HKEY_CLASSES_ROOT\.arc]
""="IZArcARC"

[HKEY_CLASSES_ROOT\.arj]
""="IZArcARJ"

[HKEY_CLASSES_ROOT\.b64]
""="IZArcB64"

[HKEY_CLASSES_ROOT\.bh]
""="IZArcBH"

[HKEY_CLASSES_ROOT\.bz2]
""="IZArcBZ2"

[HKEY_CLASSES_ROOT\.bza]
""="IZArcBZA"

[HKEY_CLASSES_ROOT\.cab]
""="IZArcCAB"
[...]
Alternativ kann man natürlich auch alles ins Installationsskript schreiben (Hier ein Beispiel für das Eintragen bei allen Usern):

Code: Alles auswählen

[Registry_Add_User_Propertys]
OpenKey [Software\IZSoftware\IZArc]
set "AppLanguageFile"=REG_SZ:"German.lng"
set "ShowMessages"=reg_dword:00000000
set "ShowToolbar"=reg_dword:00000001
set "ShowToolbarCaptions"=reg_dword:00000001
set "ShowStatusPanel"=reg_dword:00000001
set "ShowGridLines"=reg_dword:00000000
set "FullRowSelect"=reg_dword:00000001
set "FlatScrollbars"=reg_dword:00000000
set "FlatToolButtons"=reg_dword:00000001
set "StartUpType"=reg_dword:00000001
set "AddType"=reg_dword:00000000
set "ExtractType"=reg_dword:00000001
[...]
Das ganze Thema ist aber im Handbuch wirklich gut beschrieben.
Mit freundlichen Gruß
Kai Dietrich
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: registry keys setzen

Beitrag von mro-rednet »

soo, danke dir, das klappt soweit...

nur hab ich das Problem wenn ich nun einen pfad mit nem parameter dahinter angebe

Code: Alles auswählen

OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z\shell\open\command]
set ""=REG_SZ: ""C:\Programme\7-Zip\7zFM.exe" "%1""
das %1 ist das Problem,

hier bringt winst den fehler : chars at line ending not interpreted.

Also scheint er ein Problem mit den " zu haben.

ABER WARUM ???
heuft_kdi
Beiträge: 64
Registriert: 02 Jul 2008, 08:06

Re: registry keys setzen

Beitrag von heuft_kdi »

Versuch mal

Code: Alles auswählen

set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
Allerdings habe ich mit den Doppelten Anführungsstrichen auch öfter Probleme. Ein Maskieren wie bei Linux/Perl (mit einen Backslash wäre hier praktisch).
Mit freundlichen Gruß
Kai Dietrich
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: registry keys setzen

Beitrag von mro-rednet »

und auch das hat funktioniert....


DANKE
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: registry keys setzen

Beitrag von mro-rednet »

so, nun ist das Skript fertig mit den gebräuchlichsten Verknüpfungen, einzig der Haken wird im Programm nicht gesetzt für die VErknüpfungen.

Sobald ich meinen Zugang bekomme, stelle ich das Skript auch in die WINST-Skript Sammlung.

Code: Alles auswählen

;Nullsoft NSIS Installer
;Erstellt von Mark Rost

[Initial]
Message=installiere 7-Zip
LogLevel=2
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off

[Aktionen]
if not (HasMinimumSpace("%Systemdrive%","550MB"))
        LogError "Nicht genuegend Platz auf C:"
else
        Winbatch_install
	Registry_Add_User_Propertys_7z
	Registry_Add_User_Propertys_arj
	Registry_Add_User_Propertys_zip
	Registry_Add_User_Propertys_cab
	Registry_Add_User_Propertys_iso
	Registry_Add_User_Propertys_z
	Registry_Add_User_Propertys_rar
	
	
endif

[Winbatch_install]
"%SCRIPTPATH%\7z457.msi" /qb

[Registry_Add_User_Propertys_7z]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.7z]
set ""=REG_SZ:"7-Zip.7z"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z]
set ""=REG_SZ:"7z Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\7z.dll,0"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.7z\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_arj]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.arj]
set ""=REG_SZ:"7-Zip.arj"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.arj]
set ""=REG_SZ:"arj Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.arj\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\arj.dll,4"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.arj\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.arj\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.arj\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_zip]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.zip]
set ""=REG_SZ:"7-Zip.zip"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.zip]
set ""=REG_SZ:"zip Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.zip\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\zip.dll,1"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.zip\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.zip\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.zip\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_cab]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.cab]
set ""=REG_SZ:"7-Zip.cab"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.cab]
set ""=REG_SZ:"cab Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.cab\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\cab.dll,7"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.cab\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.cab\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.cab\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_iso]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.iso]
set ""=REG_SZ:"7-Zip.iso"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.iso]
set ""=REG_SZ:"iso Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.iso\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\iso.dll,8"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.iso\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.iso\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.iso\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_rar]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.rar]
set ""=REG_SZ:"7-Zip.rar"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.rar]
set ""=REG_SZ:"rar Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.rar\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\rar.dll,3"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.rar\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.rar\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.rar\shell]
set ""=REG_SZ: ""

[Registry_Add_User_Propertys_z]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.z]
set ""=REG_SZ:"7-Zip.z"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.z]
set ""=REG_SZ:"z Archive"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.z\Defaluticon]
set ""=REG_SZ:"C:\Programme\7-Zip\z.dll,5"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.z\shell\open\command]
set ""=REG_SZ: '"C:\Programme\7-Zip\7zFM.exe" "%1"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.z\shell\open]
set ""=REG_SZ: ""
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\7-Zip.z\shell]
set ""=REG_SZ: ""
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: registry keys setzen

Beitrag von D1Ck3n »

Der Thread ist zwar ein wenig veraltet, aber ich habe ein aktuelles Problem dazu.
Ich möchte über den Opsi registry key setzen und hinzufügen. Das klappt auch soweit, aber wenn ich versuche in der registry IPV6 komplett zu deaktivieren setzt der den Key nicht.
Das ist mein setup.ins Skript:

Code: Alles auswählen

[Initial]
Message= Setzen der Gruppenrichtlinien
SetLogLevel=6
ExitOnError=false
ScriptErrorMessages=true
TraceMode=off

[Aktionen]
;Welche Windows-Version?
;DefVar $OS$

;Set $OS$ = GetMsVersionInfo

;if ($OS$ = "6.1") OR ($OS$ = "5.1")
;        Registry_TestPatch
;else
;        stop "Nicht unterstuetzte Windows-Version"
;        end
;endif

DosInAnIcon_Create

[DosInAnIcon_Create]
mkdir C:\\pA-Temp
mkdir C:\\pA-Spool


Registry_Add_User_Propertys

[Registry_Add_User_Propertys]
OpenKey [Software\Policies\Microsoft\Windows\WindowsUpdate]

set "ElevateNonAdmins"=reg_dword:00000001

set "WUServer"=REG_SZ:"http://192.168.0.110"

set "WUStatusServer"=REG_SZ:"http://192.168.0.110"

OpenKey [Software\Policies\Microsoft\Windows\WindowsUpdate\AU]

set "AUOptions"=reg_dword:00000100

set "ScheduledInstallTime"=reg_dword:00001010

set "ScheduledInstallDay"=reg_dword:00000000

set "UseWUServer"=reg_dword:00000001

set "NoAutoUpdate"=reg_dword:00000000

set "AutoInstallMinorUpdates"=reg_dword:00000001

set "DetectionFrequencyEnabled"=reg_dword:00000001

set "DetectionFrequency"=reg_dword:00010110

set "NoAutoRebootWithLoggedOnUsers"=reg_dword:00000001

OpenKey [System\CurrentControlSet\services\LanmanWorkstation\Parameters]

set "DomainCompatibilityMode"=reg_dword:00000001

set "DNSNameResolutionRequired"=reg_dword:00000000

OpenKey [System\CurrentControlSet\Services\TCPIP6\Parameters]

set "DisabledComponents"=reg_dword:0xffffffff

[Registry_Add_User_Propertys]
OpenKey [Software\pSAG\proalpha-client-produktion\5.2\proalpha]

set "Spooldir"=REG_SZ:"C:\pA-Spool"

Das ist der Part um den es sich dreht:

Code: Alles auswählen

OpenKey [System\CurrentControlSet\Services\TCPIP6\Parameters]

set "DisabledComponents"=reg_dword:0xffffffff
ich hoffe mir kann jemand helfen.

Gruß
D1Ck3n
Gruß
D1Ck3n
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: registry keys setzen

Beitrag von holgerv »

Code: Alles auswählen

[Actions]
registry_test

[registry_test]
openkey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters]
set "DisabledComponents"=reg_dword:0xffffffff
funktioniert.

Evt. liegt der Fehler in Deinem Skript an dem weggelassenen "HKEY_LOCAL_MACHINE", Du kannst es ja mal ausprobieren.

Gruß


Holger
heuft_kdi
Beiträge: 64
Registriert: 02 Jul 2008, 08:06

Re: registry keys setzen

Beitrag von heuft_kdi »

Das Skript hat aber noch mehr Fehler. Der Block Registry_Add_User_Propertys kommt zwei mal vor.

Er hat wahrscheinlich alles aus meinen Beispiel kopiert. Und da war es sinnvoll/notwendig, da der Block mit

Code: Alles auswählen

Registry_Add_User_Propertys /AllNTUserdats
aufgerufen wurde (das /AllNTUserdats ist das entscheidende).
Mit freundlichen Gruß
Kai Dietrich
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: registry keys setzen

Beitrag von D1Ck3n »

holgerv hat geschrieben:

Code: Alles auswählen

[Actions]
registry_test

[registry_test]
openkey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters]
set "DisabledComponents"=reg_dword:0xffffffff
funktioniert.

Evt. liegt der Fehler in Deinem Skript an dem weggelassenen "HKEY_LOCAL_MACHINE", Du kannst es ja mal ausprobieren.

Gruß


Holger
So hab ich das nun:

Code: Alles auswählen

[Aktionen]
Registry_Add_User_Propertys /AllNTUserdats
[...]
[Registry_Add_User_Propertys]
OpenKey [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP6\Parameters]

set "DisabledComponents"=reg_dword:0xffffffff
Aber der Key wird nicht gesetzt :/
heuft_kdi hat geschrieben:Das Skript hat aber noch mehr Fehler. Der Block Registry_Add_User_Propertys kommt zwei mal vor.

Er hat wahrscheinlich alles aus meinen Beispiel kopiert. Und da war es sinnvoll/notwendig, da der Block mit

Code: Alles auswählen

Registry_Add_User_Propertys /AllNTUserdats
aufgerufen wurde (das /AllNTUserdats ist das entscheidende).
Ich habe es korrigiert, aber es funktioniert immer noch net :(
Gruß
D1Ck3n
Antworten