Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wo befinden sich alle installierten Druckertreiber in der Registry ?

Frage Sonstige Systeme

Mitglied: Azubi1452

Azubi1452 (Level 1) - Jetzt verbinden

07.12.2010 um 10:12 Uhr, 18287 Aufrufe, 6 Kommentare

Hallo zusammen,

ich möchte alle überflüssigen Druckertreiber von unseren Terminalserver deinstallieren. Dazu möchte ich alle installierten Druckertreiber per Skript auslesen.
Das Skript habe ich bereits fertig.

Nur fehlt mir der Speicherort in der Registry.

Hier:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices"
und hier:
hkey_local_machine\system\currentcontrolset\control\print\printers\

stehen leider nur alle verwendete Drucker.

Wenn man den Ordner Drucker und Faxgeräte öffnet, da auf "Datei - Servereigenschaften - Treiber" geht, sieht man alle installierten Druckertreiber.
Und genau die Liste möchte ich aus der Registry auslesen.

Wisst ihr wo in der Registry sich die Druckertreiber befinden ?

Danke schonmal.

Gruß,
Azubi
Mitglied: 60730
07.12.2010 um 12:05 Uhr
moin,

darf man fragen "warum"?

Du hast keinen Geschwindigkeits oder sonstigen Vorteul, wenn du nicht benutzte Druckertreiber löschst.
Die werden nur dann geladen, wenn Sie gebraucht werden.

Gruß
Bitte warten ..
Mitglied: Skyemugen
07.12.2010 um 12:16 Uhr
Aloha,

Hm, die Zeit wo du versuchst den Ort in der registry herauszubekommen, hättest du schon alle ungewollten manuell entfernen können ;)

greetz André
Bitte warten ..
Mitglied: Azubi1452
07.12.2010 um 14:18 Uhr
Mahlzeit,

ich möchte alle unnötigen Fehlerquellen ausschließen und außerdem dafür sorgen, dass alle Terminalserver auf dem gleichen Stand sind.
@Skyemugen: jop, ich glaube dass werde ich nun auch machen müssen, sind ja nur ca. 50 Terminalserver ^^
Eigentlich schade, das Skript für diese Aufgabe habe ich nämlich gerade vorhin fertigstellen können.

Danke für eure Antworten.

Bis dann
Bitte warten ..
Mitglied: manbar
07.12.2010 um 15:10 Uhr
weihst du uns auch ein?

bin neugierig auf dein script, ich bräuchte sowa in naher zukunft auch..
Bitte warten ..
Mitglied: Azubi1452
07.12.2010 um 15:23 Uhr
klar ;)

Hier einmal die Version, die einen bestimmten Zweig in der Registry ausliest. Allerdings, wie gesagt nur die tatsächlich verwendeten Drucker.
01.
  
02.
Const HKEY_CURRENT_USER = &H80000001 
03.
strComputer = "." 
04.
sKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices" 
05.
 
06.
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
07.
strComputer & "\root\default:StdRegProv") 
08.
 
09.
If oReg.EnumValues(HKEY_CURRENT_USER, sKeyPath, _ 
10.
aValueNames, aValueTypes) = 0 Then 
11.
 
12.
'Wenn keine Werte vorhanden sind, ist 'aValueNames' null, wenn welche vorhanden sind 
13.
'ist es ein Variant-Array. Als IsNull u/o VarType anwenden 
14.
 
15.
If not isnull(aValueNames) Then 
16.
WScript.Echo "Anzahl Values in HKCU " & sKeyPath & " -> " _ 
17.
& UBound(aValueNames) + 1 
18.
For i = 0 To UBound(aValueNames) 
19.
WScript.Echo aValueNames(i) 
20.
Next 
21.
Else 
22.
WScript.Echo "Keine Werte im Key vorhanden!" 
23.
End If 
24.
Else 
25.
WScript.Echo "Key nicht vorhanden oder Fehler beim Enumerieren der Werte!" 
26.
End If 
27.
 
28.
 
29.
'Software\Microsoft\Windows NT\CurrentVersion\Devices" listet nur die verwendeten Drucker auf und nicht alle installierten ! 
30.
' hkey_local_machine\system\currentcontrolset\control\print\printers\
Dieses Skript arbeitet mit der Win32_Printer Klasse und kann somit auch einige Infos der Treiber auslesen - aber auch hier leider nicht alle installierten Treiber.
Genau auf die korrekten Pfad-angaben schauen...sind so einige versteckt im Skript...

01.
'####################################################################################################################################################' 
02.
'#Dieses Skript soll sich auf allen Terminalserver anmelden und checken welche Druckertreiber jeweils installiert sind.                             #' 
03.
'#Die Infos sollen dann in eine Excel oder TXT- DAtei übersichtlich dargestellt werden und später zum Abgleich verschiedenener Probleme helfen      #' 
04.
'#Als nächstes sollen die Listen jeweils mit der Liste von dem Printserver abgeglichen werden und die Unterschiede übersichtlich dargestellt werden #' 
05.
'####################################################################################################################################################' 
06.
'Option Explicit 
07.
 
08.
Dim i, j, fso, flgDouble, objFile, strArray (), strLine 
09.
Dim Abgeschlossen, objWbemLocator, vbInfo, objFSO, oArg, oFile, strNamespace, strUser, strPassword 
10.
Dim  strServerpfad 
11.
 
12.
Const WbemAuthenticationLevelPktPrivacy = 6 
13.
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
14.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
15.
Set oArg = wscript.arguments 
16.
'--------------------------------------------Einstellung Anfang--------------------------------' 
17.
strNamespace  = "root\cimv2"         
18.
strUser       = "Domäne\Admin"  
19.
strPassword   ="PW" 
20.
strServerpfad = "Pfad" 
21.
'strAusgabe  =  "Zeile 36" 
22.
'--------------------------------------------Einstellung Ende----------------------------------' 
23.
'---------------Datei einlesen und in ein Array schreiben--------------------------------------' 
24.
arrServer = Split(objFSO.OpenTextFile(strServerpfad).ReadAll, vbCrLf) 
25.
Set oFile = objFSO.OpenTextFile(strServerpfad) 
26.
'--------------------------------------------Schleifen- ANFANG---------------------------------' 
27.
For Each strServer In arrServer 
28.
 
29.
    ifertig = "False" 
30.
    i2fertig = "False" 
31.
 
32.
    If isOnline(strServer) Then 
33.
     
34.
        Set objWMI = objwbemLocator.ConnectServer _ 
35.
                     (strServer, strNamespace, strUser, strPassword) 
36.
        objWMI.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy   
37.
 
38.
Set colItems = objWMI.ExecQuery("Select * from Win32_Printer",,48) 
39.
Set Ausgabedatei = objFSO.CreateTextFile("C:\test\doppelt\Druckerliste_" & strServer &"_doppelt.txt",1)  
40.
 
41.
  For Each objItem in colItems 
42.
  'Ausgabedatei.WriteLine "Servername: " & strServer  
43.
  'Ausgabedatei.WriteLine "Drucker: " & objItem.Name 
44.
  'Ausgabedatei.WriteLine "Model und Kommentar: " & objItem.Comment 
45.
  'Ausgabedatei.WriteLine "DriverName: " & objItem.DriverName 
46.
  Ausgabedatei.WriteLine objItem.DriverName 
47.
  'Ausgabedatei.WriteLine "-----------------------------------------" 
48.
  Next 
49.
  Ausgabedatei.Close 
50.
 
51.
'##### Hier wird nun gecheckt ob es doppelte Treiber gibt, die dann gelöscht werden' 
52.
'Ein = "Pfad" 
53.
Aus = "C:\test\Druckerliste_" & strServer &".txt" 
54.
 
55.
'Set fso = CreateObject("Scripting.FileSystemObject") 
56.
Set d = CreateObject("Scripting.Dictionary") 
57.
 
58.
ZeilenEin = Split(objFSO.OpenTextFile("C:\Druckerlisten\doppelt\Druckerliste_" & strServer &"_doppelt.txt").ReadAll, vbCrLf) 
59.
For Each Zeile In ZeilenEin 
60.
    If Not d.Exists(Zeile) Then d.Add Zeile, Dummy 
61.
Next 
62.
 
63.
objFSO.CreateTextFile(Aus).Write Join(d.Keys, vbCrLf) 
64.
 
65.
  End If 
66.
Next 
67.
oFile.Close 
68.
'--------------------------------------------Schleifen- ENDE---------------------------------' 
69.
objFSO.DeleteFile "C:\test\doppelt\*.*" 
70.
'-------------------------------Ende--------------------------------------------' 
71.
function IsOnline(host) 
72.
set WshShell = CreateObject("Wscript.Shell") 
73.
set temp = wshshell.Exec ("ping.exe -n 1 -w 100 "&host) 
74.
dummy = temp.StdOut.ReadAll 
75.
IF instr(1,dummy,"Antwort") >0 THEN 
76.
isonline = true 
77.
ELSE 
78.
isonline = false 
79.
END IF 
80.
end Function 
81.
'------------------------Fertig----------------------------------------------' 
82.
MsgBox "Fertig!", Abgeschlossen, vbInfo 
Gruß,
Azubi
Bitte warten ..
Mitglied: Azubi1452
08.12.2010 um 11:18 Uhr
Moin,

nur zur Info: Hat sich erledigt.

Habe ein passendes Beispiel gefunden.

http://gallery.technet.microsoft.com/scriptcenter/en-us/f79f2fe5-1528-4 ...

Dieses Skript listet wirklich alle installierten Drucktreiber auf. Es wird die WMI Klasse: Win32_PrinterDriver verwendet.

Ich habe mir immer nur diese WMIKlasse angeschaut: Win32_Printer....

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst SCCM2012 Abfrage eines Registry Wertes (5)

Frage von busteron zum Thema Windows Server ...

Batch & Shell
Druckertreiber per Powershell auf PC installieren - Nach CSV Vorgabe (1)

Frage von pixel0815 zum Thema Batch & Shell ...

Drucker und Scanner
Suche Druckertreiber für diverse HP (7)

Frage von Y3shix zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...