pencil
Goto Top

Printservermigration von Windows 32-Bit Treiber auf Windows 64-Bit Treiber

Hallo zusammen

Ich plane die Migration einer Citrixfarm die bisher auf Windows Server 2003, neu allerdings auf Windows 2008 R2 Servern laufen soll.
Bei der Behandlung des Themas "Printing" habe ich festgestellt, dass ich unseren Windows 32-Bit Printserver nicht einfach übernehmen kann, da Windows 2008 R2 ja 64-Bit Architektur hat.

Auf dem neu aufzubauenden Printserver (logischerweise 64-Bit) müsste ich nun sämtliche Treiber neu installieren.
Gibt es eine Möglichkeit, so viele Informationen wie möglich aus dem "alten" Printserver auszulesen? (Sprich Gerätemodell, Treiber, Standardeinstellungen etc...)

Es handelt sich um fast 170 Drucker und ca. 50 Treiber.

Ich bin gespannt auf eure Vorschläge und Ideen.
Vielen Dank im Vorraus und Grüsse

pen

Content-ID: 288708

Url: https://administrator.de/contentid/288708

Ausgedruckt am: 25.11.2024 um 19:11 Uhr

emeriks
emeriks 18.11.2015 um 18:15:49 Uhr
Goto Top
Hi,
schau mal hier.

E.
pencil
pencil 25.11.2015 um 10:03:12 Uhr
Goto Top
Danke für die Antwort, ist sicherlich eine gute Möglichkeit, werde diese ausprobieren.
Gibt es eine Möglichkeit, aus rein organisatorischen Gründen, die Gerätemodelle und Treiber der Printer auszulesen?
Bestenfalls in ein csv oder ähnlich.

Vielen Dank für die Vorschläge
pen
emeriks
emeriks 25.11.2015 um 10:24:36 Uhr
Goto Top
Hier ein uraltes VBscript von mir. Einfach auf dem Win 2003 PS ausführen. Erstellt Dateien

SERVERNAME_Printers.txt
SERVERNAME_TCPIP_Ports.txt
SERVERNAME_LPR_Ports.txt
SERVERNAME_ThinPrint_Ports.txt

Keine Gewähr!

On error resume next

Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7

Set FSO = CreateObject("Scripting.FileSystemObject")  
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")  

ComputerName = CreateObject("Wscript.Network").ComputerName  

'Drucker  
Set OutDat = FSO.CreateTextFile(ComputerName & "_Printers.txt")  
OutDat.WriteLine "Drucker" & vbTab & "Treiber" & vbTab & "Freigabe" & vbTab & "Port" & vbTab & "Beschreibung" & vbTab & "Standort"  

strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Printers"  
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
 
If IsArray(arrSubKeys) Then
  For Each subkey In arrSubKeys
    PrinterName = subkey
    
    strKeyPath2 = "HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey  

    Printer_Driver = RegistryRead(strKeyPath2 & "\Printer Driver")  
    Share_Name = RegistryRead(strKeyPath2 & "\Share Name")  
    Port = RegistryRead(strKeyPath2 & "\Port")  
    Description = RegistryRead(strKeyPath2 & "\Description")  
    Location = RegistryRead(strKeyPath2 & "\Location")  

    OutDat.WriteLine PrinterName & vbTab & """" & Printer_Driver & """" & vbTab & Share_Name & vbTab & Port & vbTab & """" & Description & """" & vbTab & """" & Location & """"  
  Next
End If

'Standard TCP/IP Ports  
Set OutDat = FSO.CreateTextFile(ComputerName & "_TCPIP_Ports.txt")  
OutDat.WriteLine "PortName" & vbTab & "Double_Spool" & vbTab & "HostName" & vbTab & "HWAddress" & vbTab & "IPAddress" & vbTab & "PortNumber" & vbTab & "Protocol" & vbTab & "Queue" & vbTab & "SNMP_Community" & vbTab & "SNMP_Enabled" & vbTab & "SNMP_Index" & vbTab & "Version"  

strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports"  
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
 
If IsArray(arrSubKeys) Then
  For Each subkey In arrSubKeys
    PortName = subkey
    
    strKeyPath2 = "HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey  

    Double_Spool = RegistryRead(strKeyPath2 & "\Double Spool")  
    HostName = RegistryRead(strKeyPath2 & "\HostName")  
    HWAddress = RegistryRead(strKeyPath2 & "\HWAddress")  
    IPAddress = RegistryRead(strKeyPath2 & "\IPAddress")  
    PortNumber = RegistryRead(strKeyPath2 & "\PortNumber")  
    Protocol = RegistryRead(strKeyPath2 & "\Protocol")  
    Queue = RegistryRead(strKeyPath2 & "\Queue")  
    SNMP_Community = RegistryRead(strKeyPath2 & "\SNMP Community")  
    SNMP_Enabled = RegistryRead(strKeyPath2 & "\SNMP Enabled")  
    SNMP_Index = RegistryRead(strKeyPath2 & "\SNMP Index")  
    Version = RegistryRead(strKeyPath2 & "\Version")  

    OutDat.WriteLine PortName & vbTab & Double_Spool & vbTab & HostName & vbTab & HWAddress & vbTab & IPAddress & vbTab & PortNumber & vbTab & Protocol & vbTab & Queue & vbTab & SNMP_Community & vbTab & SNMP_Enabled & vbTab & SNMP_Index & vbTab & Version
  Next
End If

'LPR Ports  
Set OutDat = FSO.CreateTextFile(ComputerName & "_LPR_Ports.txt")  
OutDat.WriteLine "PortName" & vbTab & "Printer_Name" & vbTab & "Server_Name"  

strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Monitors\LPR Port\Ports"  
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
 
If IsArray(arrSubKeys) Then
  For Each subkey In arrSubKeys
    PortName = subkey
    
    strKeyPath2 = "HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey  

    Printer_Name = RegistryRead(strKeyPath2 & "\Printer Name")  
    Server_Name = RegistryRead(strKeyPath2 & "\Server Name")  

    OutDat.WriteLine PortName & vbTab & Printer_Name & vbTab & Server_Name
  Next
End If

'ThinPrint Ports  
Set OutDat = FSO.CreateTextFile(ComputerName & "_ThinPrint_Ports.txt")  
OutDat.WriteLine "PortName" & vbTab & "Protocol" & vbTab & "NetSend" & vbTab & "WTSMsgBox" & vbTab & "CompressData" & vbTab & _  
                 "PackagesAccess" & vbTab & "SendPackages" & vbTab & "PackageSize" & vbTab & "BandwidthAccess" & vbTab & "Bandwidth" & vbTab & _  
                 "BandwidthCtrlEnabled"  & vbTab & "Port" & vbTab & "Filter" & vbTab & "PrinterQueueName" & vbTab & "TPACScheme" & vbTab & _  
                 "FormatString" & vbTab & "IsVCGPort" & vbTab & "IsCSvcPort" & vbTab & "LogJobStatistic" & vbTab & "RefreshTimeJobStat"  

strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Monitors\ThinPrint Port"  
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
 
If IsArray(arrSubKeys) Then
  For Each subkey In arrSubKeys
    PortName = subkey
    
    strKeyPath2 = "HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey  

    Protocol = RegistryRead(strKeyPath2 & "\Protocol")  
    NetSend = RegistryRead(strKeyPath2 & "\NetSend")  
    WTSMsgBox = RegistryRead(strKeyPath2 & "\WTSMsgBox")  
    CompressData = RegistryRead(strKeyPath2 & "\CompressData ")  
    PackagesAccess = RegistryRead(strKeyPath2 & "\PackagesAccess")  
    SendPackages = RegistryRead(strKeyPath2 & "\SendPackages")  
    PackageSize = RegistryRead(strKeyPath2 & "\PackageSize")  
    BandwidthAccess = RegistryRead(strKeyPath2 & "\BandwidthAccess")  
    Bandwidth = RegistryRead(strKeyPath2 & "\Bandwidth")  
    BandwidthCtrlEnabled = RegistryRead(strKeyPath2 & "\BandwidthCtrlEnabled ")  
    Port = RegistryRead(strKeyPath2 & "\Port")  
    xFilter = RegistryRead(strKeyPath2 & "\Filter")  
    PrinterQueueName = RegistryRead(strKeyPath2 & "\PrinterQueueName")  
    TPACScheme = RegistryRead(strKeyPath2 & "\TPACScheme")  
    FormatString = RegistryRead(strKeyPath2 & "\FormatString")  
    IsVCGPort = RegistryRead(strKeyPath2 & "\IsVCGPort")  
    IsCSvcPort = RegistryRead(strKeyPath2 & "\IsCSvcPort")  
    LogJobStatistic = RegistryRead(strKeyPath2 & "\LogJobStatistic ")  
    RefreshTimeJobStat = RegistryRead(strKeyPath2 & "\RefreshTimeJobStat")  

    OutDat.WriteLine PortName & vbTab & Protocol & vbTab & NetSend & vbTab & WTSMsgBox & vbTab & CompressData & vbTab & _
                     PackagesAccess & vbTab & SendPackages & vbTab & PackageSize & vbTab & BandwidthAccess & vbTab & Bandwidth  & vbTab & _
                     BandwidthCtrlEnabled  & vbTab & Port & vbTab & """" & xFilter & """" & vbTab & PrinterQueueName & vbTab & """" & TPACScheme & """" & vbTab & _  
                     """" & FormatString & """" & vbTab & IsVCGPort & vbTab & IsCSvcPort & vbTab & LogJobStatistic & vbTab & RefreshTimeJobStat  

  Next
End If

Set OutDat = nothing
set FSO = nothing

msgbox "Habe fertig!"  

WScript.Quit

Function RegistryRead(Wert)
  On Error Resume Next
  Dim WshShell, Ausgabe
  Set WshShell = CreateObject("Wscript.Shell")  
  Ausgabe = ""  
  Ausgabe = WshShell.RegRead(Wert)
  RegistryRead = Ausgabe
End function