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

VBS Drucker entfernen

Frage Entwicklung VB for Applications

Mitglied: MarcelQ

MarcelQ (Level 1) - Jetzt verbinden

04.06.2010 um 09:21 Uhr, 7953 Aufrufe, 3 Kommentare

Hallo ich habe eine Frage zu meinem Script.

Erstmal ein paar Eckdaten. Ich habe ein Script erstellt das Drucker von meinem Rechner und anderen Rechnern in einer Domain löschen soll. Nun ist es aber so, dass ich eine Liste an Druckern habe die wenn vorhanden gelöscht werden sollen aber, habe ich nun einen dieser Drucker nicht im Verbund mit meinem Rechner, versucht das Script sicher erst mit dem Drucker zu verbinden. Sprich wenn ich ca. 15 Netzwerkdrucker habe und nur 2 am Rechner verbunden sind übers Netz verbindet er sich mit 15 Drucker wobei 13 nicht am Lokelm Rechner vorhanden sind. Das kostet mich echt eine Menge zeit bis das Script mal komplett durchgelaufen ist und danach die passenden Drucker verbunden sind.

Hier mal das Script

Option Explicit
Dim objNetwork, oAdapters, oAdapter, IPAddress, WshNetwork, WshShell, oPrinter, i, PrinterPath

Set oAdapters = GetObject("winmgmts:").execquery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oPrinter = WshNetwork.EnumPrinterConnections
Set objNetwork = WScript.CreateObject("WScript.Network")

For Each oAdapter In oAdapters
With oAdapter
IPAddress = IPAddress + " " + Join(.IPAddress)
End With
Next


On Error Resume Next
objNetwork.RemoveNetworkDrive "X:"
objNetwork.RemoveNetworkDrive "o:"
On Error GoTo 0


REM Denoc
On error resume next
For i = 0 to oPrinter.Count - 1 Step 2
PrinterPath = "\\Server 1\Druckername"
WshNetwork.RemovePrinterConnection "\\Server 1\Druckername"

------>Dieser Drucker vom Server 2 wäre jetzt nicht mit dem Domain Rechner verbunden.
------>Er Versucht sich aber zu verbinden und das soll er nicht sondern einfach nur löschen

PrinterPath = "\\Server 2\Druckername"
WshNetwork.RemovePrinterConnection "\\Server 2\Druckername"



Next
Das ist jetzt nur ein Teilauszug was sich auf das löschen vom Drucker bezieht.
Mein Problem ist das er sich mit jedem Drucker, ob vorhanden oder nicht, verbindet. Ich will aber das er alle Drucker einer bestimmten Liste löscht ohne sich zu verbinden.

Das Script soll also eine bestimmte Liste vohanden haben wo alle Netzwerkdrucker difiniert sind und sie dann, wenn vorhanden vom Rechner löschen soll ohne sich zum Drucker zu verbinden.
Mitglied: Karo
04.06.2010 um 10:27 Uhr
Moin,

also ich mache das mittels Con2Prt aus dem Reskit ohne Stress
con2prt Optionen: /c = connect; /cd= connect default; /f = lösche vorhandene
durch den Parameter /i wird nicht in Klein-/Großschreibung unterschieden

z.B. %logonserver%\netlogon\con2prt /f /i "\\TEST0001\HPDJ5550"

wäre im Fall der Liste z.B.
for /f "tokens=* delims=" %%i in ("%logonserver%\netlogon\PRINTERLIST.txt") do (
%logonserver%\netlogon\con2prt /f /i "\\TEST0001\HPDJ5550"
)

Karo
Bitte warten ..
Mitglied: MarcelQ
04.06.2010 um 13:08 Uhr
Leider ist mir dadurch nicht geholfen, ich bin ein echter VBscript Anfänger und kann damit nicht gerade viel anfangen.
Ich würde auch gerne bei der Art wie ich es angefangen habe bleiben.
Bitte warten ..
Mitglied: Karo
04.06.2010 um 13:50 Uhr
OK, dann hier mal ein Script, welches ich benutze um bei Usern Drucker umzubenennen.
Den Abschnitt NEW MAPPING brauchst Du in Deinem Fall nicht.
Die Datei PRINTERS.TXT besteht bei mir aus Zeilen mit <ALTER DRUCKER>;<NEUER DRUCKER>
(\\SERVERNAME\DRUCKER_PCL6;\\SERVERNAME\PRINTER_PCL6), wobei Du natürlich <NEUER DRUCKER> nicht benötigst, aber um das Script nicht umschreiben zu müssen (wegen Split()-Anweisung etc ) kannst Du nach dem Semikolon den gleichen Namen verwenden

Karo

' Set printers
' **
On Error Resume Next
Dim objNetwork, fs, fsFILE
Dim Counter, aryPrinter(999), strComputer
Dim splPrinter, x, fstemp
Set objNetwork = CreateObject("WScript.Network")
Set fs = CreateObject("Scripting.FileSystemObject")
Set fstemp = fs.GetSpecialFolder(2)
wscript.echo ("The path to your TEMP folder is '" & fstemp & "'." )

'COPY FILE TO TEMP
Set fsFILE = fs.GetFile("\\SERVERNAME\netlogon\printers.txt")
fsFILE.copy (fstemp & "\printers.txt")

'READ FILE
Set fsFILE = fs.OpenTextFile(fstemp & "\printers.txt")
Counter = 0
Do Until fsFILE.AtEndOfStream
Counter = Counter + 1
aryPrinter(Counter) = fsFILE.Readline
'wscript.echo Counter & " ---- " & aryPrinter(Counter)
Loop

'READ MAPPED PRINTERS FROM USER
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
wscript.echo ""
WScript.echo "SEARCH: " & objPrinter.Name
For x = 1 to Counter
splPrinter=Split(aryPrinter(x),";")
'COMPARE MAPPED PRINTERS WITH PRINTERS IN FILE
If InStr(1,objPrinter.Name,splPrinter(0),1) > 0 Then
wscript.echo "-YES-"
'Is Printer Default
If objPrinter.Default = "True" Then DefPrinter = "TRUE"

'DELETE OLD MAPPING
wscript.echo "-Delete Old Mapping-"
objNetwork.RemovePrinterConnection splPrinter(0)
wscript.echo splPrinter(0)

'NEW MAPPING
wscript.echo "-New Mapping-"
objNetwork.AddWindowsPrinterConnection splPrinter(1)
wscript.echo splPrinter(1)

'IF PRINTER IS DEFAULT (True) SET NEW DEFAULT
If DefPrinter = "TRUE" Then
wscript.echo "-Set as Default"
objNetwork.SetDefaultPrinter splPrinter(1)
wscript.echo splPrinter(1)
Else
End If
'NEW MAPPING END
Else
End If
Next
Next
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Microsoft
gelöst Drucker Über Powershell installieren (13)

Frage von Asker06 zum Thema Microsoft ...

Windows Server
gelöst GPO-Eintrag für OneNote-Drucker (3)

Frage von Ravelux zum Thema Windows Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...