MUDAIMP($TrataServ) FUNCTION MUDAIMP($servorig) $indice = "\\servidor\compartilhamento\imp-" + $servorig + ".txt" $log = "\\servidor\compartilhamento\log\" + $servorig + ".txt" DIM $vet[50] DIM $y[50] $c = 0 IF @INWIN = "1" IF NOT EXIST("C:\Apl\" + @USERID + $servorig + ".TXT") $imppadrao = SPLIT(ReadValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device"), "," , 1) $x = ENUMKEY("HKEY_CURRENT_USER\PRINTERS\CONNECTIONS", $c) WHILE @ERROR = 0 $y = SPLIT($x, ",") $vet[$c] = "\\" + $y[2] + "\" + $y[3] $c = $c + 1 $x = ENUMKEY("HKEY_CURRENT_USER\PRINTERS\CONNECTIONS", $c) LOOP IF OPEN(1, $indice) = 0 $x = READLINE(1) $y = SPLIT($x, ";") WHILE(@ERROR = 0) FOR $i = 0 TO $c IF $y[0] = $vet[$i] ADDPRINTERCONNECTION($y[1]) IF $imppadrao[0] = $y[0] SETDEFAULTPRINTER($y[1]) ENDIF DELPRINTERCONNECTION($y[0]) SHELL "cmd.exe /C ECHO " + @WKSTA + ";" + @USERID + ";" + @PRODUCTTYPE + ";" + @DATE + ";" + @TIME + ";" + $y[0] + ";" + $y[1] + ">> " + $log SHELL "cmd.exe /C ECHO " + @WKSTA + ";" + @USERID + ";" + @PRODUCTTYPE + ";" + @DATE + ";" + @TIME + ";" + $y[0] + ";" + $y[1] + ">> C:\Apl\" + @USERID + $servorig + ".TXT" ENDIF NEXT $x = READLINE(1) $y = SPLIT($x, ";") LOOP $x=CLOSE(1) SHELL "cmd.exe /C ECHO FIM DE PROCESSAMENTO>> C:\Apl\" + @USERID + $servorig + ".TXT" ENDIF ENDIF ELSE IF NOT EXIST("C:\Apl\" + $servorig + "2.TXT") $x = ENUMKEY("HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\PRINTERS", $c) WHILE @ERROR = 0 $vet[$c] = "HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\PRINTERS\" + $x $c = $c + 1 $x = ENUMKEY("HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\PRINTERS", $c) LOOP IF OPEN(1, $indice) = 0 $x = READLINE(1) $y = SPLIT($x, ";") WHILE(@ERROR = 0) FOR $i = 0 TO $c ;Refaz também os micros que já rodaram o script. Não será necessário nas próximas migrações... IF $y[0] = READVALUE($vet[$i], "Port") OR $y[1] = READVALUE($vet[$i], "Port") WRITEVALUE($vet[$i], "Port", $y[1], "REG_SZ") ;Começa a alterar o Win.ini IF NOT EXIST("C:\WINDOWS\WIN.IMP") COPY "C:\WINDOWS\WIN.INI" "C:\WINDOWS\WIN.IMP" ENDIF IF EXIST("C:\WINDOWS\WIN.NEW") DEL "C:\WINDOWS\WIN.NEW" ENDIF $HANDLE = FREEFILEHANDLE() OPEN ($HANDLE, "C:\WINDOWS\WIN.INI") $HANDLE2 = FREEFILEHANDLE() OPEN ($HANDLE2, "C:\WINDOWS\WIN.NEW", 5) $linhawin = READLINE($HANDLE) WHILE (@ERROR = 0) IF INSTR($linhawin, $y[0]) = 0 WRITELINE($handle2, $linhawin + @CRLF) ELSE $vet2 = SPLIT($linhawin, $y[0]) IF RIGHT($linhawin, LEN($y[0])) = $y[0] WRITELINE($handle2, $vet2[0] + $y[1] + @CRLF) ELSE IF LEFT($linhawin, LEN($y[0])) = $y[0] WRITELINE($handle2, $y[1] + $vet2[1] + @CRLF) ELSE WRITELINE($handle2, $vet2[0] + $y[1] + $vet2[1] + @CRLF) ENDIF ENDIF ENDIF $linhawin = READLINE($HANDLE) LOOP CLOSE($handle) CLOSE($handle2) DEL "C:\WINDOWS\WIN.INI" COPY "C:\WINDOWS\WIN.NEW" "C:\WINDOWS\WIN.INI" ;Termina a alteração do Win.ini SHELL "command.com /C ECHO " + @WKSTA + ";" + @USERID + ";" + @PRODUCTTYPE + ";" + @DATE + ";" + @TIME + ";" + $y[0] + ";" + $y[1] + ">> " + $log SHELL "command.com /C ECHO " + @WKSTA + ";" + @USERID + ";" + @PRODUCTTYPE + ";" + @DATE + ";" + @TIME + ";" + $y[0] + ";" + $y[1] + ">> C:\Apl\" + $servorig + ".TXT" ENDIF NEXT $x = READLINE(1) $y = SPLIT($x, ";") LOOP $x=CLOSE(1) SHELL "command.com /C ECHO FIM DE PROCESSAMENTO>> C:\Apl\" + $servorig + ".TXT" ENDIF ENDIF ENDIF ENDFUNCTION