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

Standarddrucker per Batch auslesen und setzten OHNE Registry

Frage Microsoft Windows Netzwerk

Mitglied: Drizzle

Drizzle (Level 1) - Jetzt verbinden

31.01.2008, aktualisiert 11.02.2008, 27271 Aufrufe, 7 Kommentare

Hallo

Ich habe folgendes Problem:
In einer Batchdatei möchte ich den Standarddrucker auslesen und dann wieder setzten, da alle Drucker zwischendurch gelöscht werden.

Bisher habe ich dies folgendermaßen gemacht:


regedit /e %HOMESHARE%\Windows\Standarddrucker.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\"


...Danach werden alle Drucker gelöscht. Auch die Einstellung vom Standarddrucker und dann...

regedit /s %HOMESHARE%\Windows\Standarddrucker.reg


Ich habe jetzt aber das Problem, dass man auf dem neuen Server keinen Zugriff mehr auf die Registry hat!

Meine Idee war jetzt:

rundll32 printui.dll,PrintUIEntry /y /n "%Stadarddruckervariable%"

Mein Problem ist also, wie bekomme ich den Standarddrucker in eine Variable, da ich nicht mehr auf die Registry zugreifen kann.
Für andere Lösungswege bin ich ebenfalls dankbar.
Mitglied: erich81
31.01.2008 um 16:31 Uhr
Hallo Drizzle,

schau dir mal den Befehl wenn es eine Patchdatei ist?!

con2prt /f

an! Der Befehl bewirkt das bei einem User alle Drucker gelöscht werden.
Danach kann man die gewünschten Drucker wieder verbinden!

Bei uns schauts so aus!

""
@echo off
con2prt /f

rem *Druckerverbindung*
con2prt /c \\*Server*\*Druckerfreigabe*
con2prt /cd \\*Server*\*Druckerfreigabe*
""
"/cd" bewirkt das es der standarddrucker wird!

Hoffe das hilft dir weiter!

erich
Bitte warten ..
Mitglied: Drizzle
31.01.2008 um 18:24 Uhr
Danke erstmal. Ich werds am Dienstag mal testen, denn übers Wochenende wird gefeiert! ALAAF!
Bitte warten ..
Mitglied: Drizzle
06.02.2008 um 12:58 Uhr
Hab mir con2prt.exe mal angeschaut, aber es existiert immer noch das Problem, dass beim Befehl:

con2prt /cd \\*Server*\*Druckerfreigabe*

die Variable "*Server*\*Druckerfreigabe*" nicht festgelegt ist.

Mein Problem besteht ja darin, dass (bevor alle Drucker gelöscht werden) der Standarddrucker irgendwo vermerkt werden muss, damit er danach wiederhergestellt werden kann.
Und zwar für den User, der sich gerade anmeldet... (Wir haben ein Skript für alle User.)
Bitte warten ..
Mitglied: erich81
07.02.2008 um 06:48 Uhr
Guten Morgen!

OK das nächste was zu tun wäre wenn man es auf diese weiße weiter führen würde wie ich sie angefangen habe ist jeden User ins script einzutragen!
also erst die die Drucker löschen mit dem bekannten befehl und danach alle drucker verbinden ohne einen standarddrucker zu definieren.

danach im script ein "if"

Beispiel:

@ech off

con2prt /f

con2prt /c \\SERVER\DRUCKERFREIGABE
con2prt /c \\SERVER\DRUCKERFREIGABE


if /I %username% == MUSTER.M con2prt /cd \\SERVER\DRUCKERFREIGABE


So funktioniert es auch!

erich
Bitte warten ..
Mitglied: stbewo
07.02.2008 um 07:06 Uhr
Hi Druzzle,

mit

ON ERROR RESUME NEXT

ScriptLogName = "defprinter.log"

strComputer = "."

Set WshShell = WScript.CreateObject("WScript.Shell")
fTMP = WshShell.ExpandEnvironmentStrings("%HOMEDRIVE%")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set inputFile = fso.OpenTextFile("H:" & "\" & ScriptLogName, 2, True)

Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * From Win32_Printer Where Default = TRUE")

For Each objPrinter in colPrinters
inputFile.WriteLine(objPrinter.ShareName)
Next

kannst Du den Default Drucker auslesen und in File schreiben um ihn für eine weitere Verarbeitung benutzen zu können.

Gruß
Stefan
Bitte warten ..
Mitglied: Drizzle
11.02.2008 um 11:06 Uhr
Supergeil! Danke Stefan! Funktioniert jetzt folgendermassen:

\\Server\Homelaufwerk\Standarddrucker.vbs
(<- Hab dein Skript etwas abgewandelt dort eingebunden)

for /F %%i in (defprinter.log) do set Standard=%%i
(<- Text in Variable speichern)

rundll32 printui.dll,PrintUIEntry /y /n \\DRUCKERSERVER\%Standard%
(<- Als Standardrucker hinzufügen)

Du bist mein Held ^^
Bitte warten ..
Mitglied: mikmcmoe
19.07.2011 um 12:34 Uhr
Hi Drizzle,
ist zwar schon ein bisschen her, aber magst Du das Script nochmal vollständig posten?
Ich wäre Dir zu Dank verpflichtet!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst Batch Variable setzten mit Leerzeichen (3)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...