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, 27980 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(39)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

SAN, NAS, DAS
+100tb Storagelösung (12)

Frage von Data-Fabi zum Thema SAN, NAS, DAS ...

LAN, WAN, Wireless
Cisco W-Lan Controller als Applicance oder Software (11)

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

DNS
gelöst Komplette TLD Überschreiben bzw eigene Definieren (10)

Frage von Herbrich19 zum Thema DNS ...