Toon posts:

[2000>2003] Print server naam wijzigen, wat doen de clients

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet niet of deze vraag hier exact thuis hoort ..

Mijn vraag is het volgende.

Onze print server gaan we virtualiseren, nu nog draaiende op Server 2000 gaat migreren naar server 2003 op VMware.

Nou de microsoft tool voor de migratie heb ik wel gevonden en mee getest, werkt perfect!
Het probleem is echter dat de naam verandert en dat onze gebruikers (150 ongeveer) straks problemen krijgen dat hun printer haar pad naar de server onbekend is.

Nu is het bijvoorbeeld: \\XXX01\prt01 en gaat worden \\YYY01\prt01

Sommige printers zijn geinstalleerd zoekende uit Active directory en andere door hard in te tikken \\servernaam\printernaam.

Hebben jullie een idee hoe ik deze overgang het beste kan oppakken?
Of zullen de gebruikers echt hun printers weg moeten gooien en de printers moeten toevoegen vanuit de nieuwe printserver?

Alle tips zijn natuurlijk welkom!

mvg

bart hassing

  • BachW
  • Registratie: Juli 2000
  • Laatst online: 27-07 21:05

BachW

Tweaker in Noorwegen

Ik denk dat een goede handleiding (oude printer weggooien, nieuwe printer toevoegen) het makkelijkst is. Printers zijn vaak zo gebruikersspecifiek. Ram ze allemaal in de AD dan is het een fluitje van een cent en gooi er een goede policy op dat ze alleen in de AD kunnen zoeken. Als je naamgeving in orde is bijv. BEDR_AFDELING_PRINTER dan is er ook makkelijk te zoeken.

Succes!

BOINC stats


  • WaSteiL
  • Registratie: Juli 2003
  • Laatst online: 15-12 15:24
Je kan m.b.v. een VBS script oude printers verwijderen en de nieuwe ervoor in de plaats zetten.
Ik doe het zelf met het volgende in elkaar geflanste scriptje wat ik heb samengesteld uit verschillende scripts van internet.

Mogelijk kan het vele malen mooier, maar dit werkt op zich perfect.
Zorg ervoor dat dit script als logon-script gestart wordt voor de user via de AD onder: User Configuration\Windows Settings\Script (logon/Logoff).


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
' Opgeven variabelen
Option Explicit
DIM objNetwork, objPrinter, intDrive, intNetLetter
DIM Printerflag1, Printerflag2

Set objNetwork = CreateObject("WScript.Network")
Set objPrinter = objNetwork.EnumPrinterConnections

' Definieren Constante
' LET OP: servernaam en printernaam moet met kleine letters geschreven staan
CONST printeroud1 = "\\oudeservernaam\printer-prn01"
CONST printeroud2 = "\\oudeservernaam\printer-prn02"
CONST printernieuw1 = "\\nieuweservernaam\printer-prn01"
CONST printernieuw2 = "\\nieuweservernaam\printer-prn02"


' Als er geen printers aanwezig zijn meteen de nieuwe toevoegen
If objPrinter.Count = 0 Then
    objNetwork.AddWindowsPrinterConnection Printernieuw1
    objNetwork.AddWindowsPrinterConnection Printernieuw2
Wscript.Quit(0)
End If

' Controleren of de oude printers nog aanwezig zijn. Zo ja verwijderen
For intDrive = 0 to objPrinter.Count -1 Step 2
intNetLetter = IntNetLetter +1
    IF Lcase(objPrinter.Item(intDrive +1)) = Printeroud1 Then
        objNetwork.RemovePrinterConnection Printeroud1
    ElseIf Lcase(objPrinter.Item(intDrive +1)) = Printeroud2 Then
        objNetwork.RemovePrinterConnection Printeroud2

    ElseIf Lcase(objPrinter.Item(intDrive +1)) = Printernieuw1 Then
        Printerflag1 = "true"
    ElseIf Lcase(objPrinter.Item(intDrive +1)) = Printernieuw2 Then
        Printerflag2 = "true"
End if
Next


' Als de nieuwe printers niet aanwezig zijn deze toevoegen.
If NOT Printerflag1 = "true" Then
    objNetwork.AddWindowsPrinterConnection Printernieuw1
End if
If NOT Printerflag2 = "true" Then
    objNetwork.AddWindowsPrinterConnection Printernieuw2
End if

Wscript.Quit(1)

  • Regman_XP
  • Registratie: Januari 2003
  • Laatst online: 05-07 10:25
In het register staat in de sleutel:
HKEY_CURRENT_USER\Printers\Connections

Alle geïnstalleerde printers voor die gebruiker.

In de sleutel:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

Staat de standaard printer voor de gebruiker.

Met het script van WaSteiL kan je precies de printers migreren die de gebruiker al had zodat de clients er bijna niks van merken (De drivers zullen wel opnieuw geïnstalleerd worden wat wel even zal duren).

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ik heb er ooit dit script voor gemaakt - het voordeel van deze is dat je niet de "Oude printer" => "Nieuwe printer" tabel moet maken (wat wel handig is als je honderden printers op een print server hebt :P )

@ECHO OFF

REM ** Set up some vars
SET WORKDIR=%TEMP%\ChangePrinter
SET SERVER_FROM=OldServer
SET SERVER_TO=NewServer
SET LOGFILE=%WORKDIR%\ChangePrinter.log

REM ** Create a temporary working directory
IF NOT EXIST "%WORKDIR%" MKDIR %WORKDIR%

REM ** And write a seperator to end this session
ECHo.  >>%LOGFILE%
ECHO ==^> START: %DATE%, %TIME% ^<=============================================================== >>%LOGFILE%

REM ** create the list of all currently connected printers
reg query HKEY_CURRENT_USER\Printers\Connections | find ",," >%WORKDIR%\raw-printerlist.txt

REM ** Query the default printer
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows" | find "Device" >%WORKDIR%\def-printer.txt

REM ** Now extract the actual servername
for /f "tokens=3" %%i in (%WORKDIR%\def-printer.txt) do (

    for /f "tokens=1,2,3,4,5 delims=,\" %%j in ("%%i") do (

        IF /I "%%j" EQU "%SERVER_FROM%" (
            SET DEFPRINTER=\\%SERVER_TO%\%%k,%%l,%%m
        ) ELSE (
            SET DEFPRINTER=\\%%j\%%k,%%l,%%m
        )

    )
)

REM ** Delete the fixed printerlist if it does exist
IF EXIST "%WORKDIR%\fixed-printerlist.txt" DEL "%WORKDIR%\fixed-printerlist.txt"

REM ** Now Replace all ,,'s with backslashes so they become valid UNC
for /f "delims=\, tokens=1,2,3,4,*" %%i in (%wORKDIR%\raw-printerlist.txt) do (
    @echo \\%%l\%%m >>%WORKDIR%\fixed-printerlist.txt
)

REM ** Now filter out all invalid printer names
findstr /i /v "OldPrinter OldPrinter2" %WORKDIR%\fixed-printerlist.txt >%WORKDIR%\filtered-printerlist.txt

REM ** Now we loop through all printers and check wether the printers' servername is to be changed
for /f "delims=\ tokens=1,2,3,4,*" %%i in (%WORKDIR%\filtered-printerlist.txt) do (


    IF /I "%%i" EQU "%SERVER_FROM%" (
        REM ** Printer matches, lets change it
        ECHO Changing \\%%i\%%j to \\%SERVER_TO%\%%j >>%LOGFILE%

        REM ** Now delete the old printer
        rundll32 printui.dll,PrintUIEntry /dn /n\\%%i\%%j

        REM ** and map the new one
        rundll32 printui.dll,PrintUIEntry /in /n\\%SERVER_TO%\%%j
    )

    IF /I "%%i" NEQ "%SERVER_FROM%" ECHO Ignoring \\%%i\%%j to \\%SERVER_TO%\%%j >>%LOGFILE%
)


REM ** Now set the new default printer
@echo New default printer is: %DEFPRINTER% >>%LOGFILE%
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device /t REG_SZ /d "%DEFPRINTER%" /f | find "Device" >%WORKDIR%\def-printer.txt

REM ** And write a seperator to end this session
ECHO ==^> END: %DATE%, %TIME% ^<================================================================= >>%LOGFILE%
ECHo.  >>%LOGFILE%

REM ** Delete the temporary files
DEL %WORKDIR%\fixed-printerlist.txt
DEL %WORKDIR%\filtered-printerlist.txt
DEL %WORKDIR%\raw-printerlist.txt
DEL %WORKDIR%\def-printer.txt

Verwijderd

Topicstarter
Ok ik ga hier maar eens mee aan de slag, vele malen dank voor al jullie inspanningen.
Ik laat van me horen!

Bart
Pagina: 1