script um IP Adresse und SID Ändern

  • Hallo


    Ich habe ein script geschrieben um den PC Namen , die SID und die IP Adressse zu ändern aber beim regwrite nach dem NEWSID

    schreibt er nicht den neuen pc-name in die Registry.

    Kann vielleicht mal jemand drüberschauen an was das liegen könnte?

    p.s.

    Habe u.a das _SETIP Script von gtaspider zur Hilfe genommen.


    Spoiler anzeigen

    dim $ip = @IPAddress1
    dim $spcnameneu = @ComputerName
    dim $regreadPCNAME = RegRead("HKLM\Software\pronotar\netconfig\", "PC-Name")
    dim $regreadIP = RegRead("HKLM\Software\pronotar\netconfig\", "PC-IP")
    If $regreadIP = $ip then
    MsgBox(4096,"IP Adresse geändert","Die IP Adresse wurde bereits geändert und ist gültig")
    RegWrite("HKLM\Software\pronotar\netconfig\", "IP_check", "REG_SZ", "OK")
    ElseIf $regreadIP <> $ip Then
    MsgBox(16,"IP Adresse falsch","Die IP Adresse ist nicht korrekt und muss geändert geändert werden")
    $sCon_name = "LAN-Verbindung"
    $sSetipadrr = InputBox("IP Adresse eintragen", "Bitte geben Sie die IP Adresse des PC's ein. Darf nur einmal im Netzwerk vorkommen)", "192.168.99.101", "", 340, 170)
    $sSetmask = InputBox("Subnet Maske eintragen", "Bitte geben Sie die entsprechende Subnet Maske ein.", "255.255.255.0", "", 340, 170)
    $sSetgetw = InputBox("Standart Gateway eintragen", "Bitte geben Sie den Standart Gateway ein (IP Adresse Ihres Routers).", "192.168.99.3", "", 340, 170)
    $sSetdns = InputBox("DNS Server eintragen", "Bitte geben Sie DNS IP Adresse ein (IP Adresse Ihres Routers).", "192.168.99.3", "", 340, 170)
    $netsh = @SystemDir&"\netsh.exe"
    $pid = Run($netsh&' interface ip set address name="'&$sCon_name&'" source=static addr='&$sSetipadrr&' mask='&$sSetmask&' gateway='&$sSetgetw&' gwmetric=1',@WindowsDir,@SW_HIDE,2); Here it sets the adresses
    While ProcessExists($pid); till Process exist
    Sleep(100)
    WEnd
    dim $ip = @IPAddress1
    dim $spcnameneu = @ComputerName
    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-IP", "REG_SZ", $ip)
    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-Name", "REG_SZ", $spcnameneu)

    EndIf
    If $spcnameneu = $regreadPCNAME Then
    MsgBox(4096,"PC Name", "PC Name wurde bereits geändert", 5)
    RegWrite("HKLM\Software\pronotar\netconfig\", "NAME_check", "REG_SZ", "OK")
    ElseIf $spcnameneu <> $regreadPCNAME Then
    MsgBox(16,"PC Name falsch ", "PC Name ist falsch oder wurde noch nicht geändert")
    $spcname = InputBox("PC-Name eintragen", "Bitte geben Ihren PC_Namen ein. (Darf nur einmal im Netzwerk vorkommen)", "PC-1", "", 340, 170)
    MsgBox(0,"PC Name wird geändert","Jetzt wird der PC-Name in " & $spcname & " geändert und der PC neu gestartet")
    $newsid = @SystemDir&"\newsid.exe"
    $pid1 = RunWait($newsid&' /a '&$spcname&' /n',@WindowsDir)
    While ProcessExists($pid1); till Process exist
    Sleep(1000)
    dim $ip = @IPAddress1
    dim $spcnameneu = @ComputerName
    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-IP", "REG_SZ", $ip)
    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-Name", "REG_SZ", $spcnameneu)

    WEnd
    EndIf
    dim $checkname = RegRead ("HKLM\Software\pronotar\netconfig\", "NAME_check")
    dim $checkip = RegRead ("HKLM\Software\pronotar\netconfig\", "IP_check")
    dim $OK = "ok"
    If $checkip = $OK then
    ElseIf $checkip <> "ok" Then
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce", "IP_SET", "REG_SZ", "C:\\windows\\system32\\Setip_Newsid.exe")
    EndIf
    If $checkname = $OK then
    ElseIf $checkname <> "ok" Then
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce", "IP_SET", "REG_SZ", "C:\\windows\\system32\\Setip_Newsid.exe")
    EndIf

  • er existiert aber bei der ip muss er vorher auch nicht existieren und es wird der Wert eingetragen

    • Offizieller Beitrag

    Hallo,

    wahrscheinlich steht auch nach dem newsid immer noch der alte Name in @ComputerName!
    Dieser Wert wird wohl erst nach einem Neustart aktualisiert!

    einfach Zeile 40

    [autoit]

    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-Name", "REG_SZ", $spcnameneu)

    [/autoit]

    so ändern

    [autoit]

    RegWrite("HKLM\Software\pronotar\netconfig\", "PC-Name", "REG_SZ", $spcname)

    [/autoit]
  • kann an denn überhapt mit ienen script seine ip erändern?
    also ich mache das immer über den rebot von meinen router.

  • moin moin!

    Ohne Neustart geht es nicht (imho) den PC-Namen zu übernehmen.

    Hier mal der Teil meines Scripts:

    Spoiler anzeigen
    [autoit]


    $NewName = "what ever"
    $OldName = @ComputerName

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

    ;Unnötigkeitsabfrage = Wenn der alte und der neue Name gleich ist, beendet sich das Script
    If $OldName = $NewName Then
    Exit
    EndIf

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

    ;Hier werden die Einträge in die Registrie geschrieben und sind nach dem nächsten Neustart wie gewünscht
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName", "ComputerName", "REG_SZ", $NewName)
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName", "ActiveComputerName", "REG_SZ", $OldName)
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters", "NV Hostname", "REG_SZ", $NewName)
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName", "REG_SZ", $NewName)
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName", "ComputerName", "REG_SZ", $OldName)
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "NV Hostname", "REG_SZ", $NewName)

    [/autoit]

    :!: "If you make something idiot proof, someone will invent a better idiot." :!: