RegWrite im Netzwerk

  • Hallo Leute,

    ich versuch seit einiger Zeit einen Reg-Eintrag auf einem anderen PC einzutagen.
    Das ganze sieht so aus, dass ich auf dem einen sagen möchte (nennen wir in mal PC1), dass er jetzt bitte auf dem anderen (PC2) mal den Reg-Eintrag eintragen soll. Jedoch scheitert er immer. Ich hab ka was ich tun soll oder wo dran es liegen kann. Hat einer eine Idee?

    Einmal editiert, zuletzt von Thomas (30. September 2010 um 21:07)

  • siehe Dos-Konsole: Reg Add /?

    oder siehe Hilfe zu autoit RegWrite:

    Zitat

    It is possible to access remote registries by using a keyname in the form "\\computername\keyname". To use this feature you must have the correct access rights on NT/2000/XP/2003.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    2 Mal editiert, zuletzt von Schnuffel (26. September 2010 um 22:40)

  • Dann zeig doch mal, wie du es bisher probiert hast - dann können wir auch sehen, was falsch war.

    [autoit]


    $1 = MsgBox(36,"TestProgramm","Soll es auch auf PC2 hinzugefügt werden?")
    If $1 = 6 Then
    RegWrite("\\PC2\HKEY_LOCAL_MACHINE\SOFTWARE\BENUTZER","Testeintrag","REG_SZ","Test")
    MsgBox(48,"TestProgramm","Der Eintrag wurde auf PC2 eigetragen!",10)
    Endif

    [/autoit]

    Ich habe auch schon probiert, die Firwall abzuschalten bzw. entsprechende Zugriffsberechtigungen zu setzen - aber es tut sich nix.

    • Offizieller Beitrag

    Hast du Adminrechte? (Evtl. RunAs und Admindaten des Remote-PC verwenden). Kannst du dich so auf den Remote-PC verbinden?

    Ansonsten kannst du ja auch mal per WMI probieren:

    Spoiler anzeigen
    [autoit]

    Const $HKEY_CLASSES_ROOT = 0x80000000
    Const $HKEY_CURRENT_USER = 0x80000001
    Const $HKEY_LOCAL_MACHINE = 0x80000002
    Const $HKEY_USERS = 0x80000003
    Const $HKEY_CURRENT_CONFIG = 0x80000005

    [/autoit] [autoit][/autoit] [autoit]

    $strComputer = "." ; '.' für lokalen PC
    $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & _
    $strComputer & "\root\default:StdRegProv")

    [/autoit] [autoit][/autoit] [autoit]

    ; create Key
    $strKeyPath = "SOFTWARE\NewKey"
    $oReg.CreateKey($HKEY_LOCAL_MACHINE, $strKeyPath)

    [/autoit] [autoit][/autoit] [autoit]

    ; REG_DWORD
    $strValueName = "DWORD Value Name"
    $dwValue = 82
    $oReg.SetDWORDValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $dwValue)

    [/autoit] [autoit][/autoit] [autoit]

    ; REG_SZ
    $strKeyPath = "SOFTWARE\System Admin Scripting Guide"
    $strValueName = "String Value Name"
    $strValue = "string value"
    $oReg.SetStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $strValue)

    [/autoit] [autoit][/autoit] [autoit]

    ; REG_MULTI_SZ
    $strKeyPath = "SOFTWARE\System Admin Scripting Guide"
    $strValueName = "Multi String Value Name"
    Local $arrStringValues[4] = ["first string","second string","third string","fourth string"]
    $oReg.SetMultiStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $arrStringValues)

    [/autoit] [autoit][/autoit] [autoit]

    ; REG_EXPAND_SZ
    $strKeyPath = "SOFTWARE\System Admin Scripting Guide"
    $strValueName = "Expanded String Value Name"
    $strValue = "%PATHEXT%"
    $oReg.SetExpandedStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $strValue)

    [/autoit] [autoit][/autoit] [autoit]

    ; REG_BINARY
    $strKeyPath = "SOFTWARE\NewKey"
    Local $aValues[3] = [0x01,0xa2,0x10]
    $BinaryValueName = "Example Binary Value"
    $oReg.SetBinaryValue($HKEY_LOCAL_MACHINE, $strKeyPath, $BinaryValueName, $aValues)

    [/autoit]