VBS zum automatischen umziehen der lokalen Druckerverbindungen

Problem :

Der Name des Printservers hat sich geändert , jetzt kann man zu Fuß an alle Clients gehen und die Drucker umstellen oder man nimmt dieses Skript ins Loginskript auf und das erledigt einem diese Aufgabe ....

Skript :

Option Explicit

Dim ObjWsh 		: Set ObjWsh = CreateObject("WScript.Shell")
Dim ObjNet   	: Set ObjNet = CreateObject("WScript.Network")
Dim ObjFso   	: Set ObjFso = CreateObject("Scripting.FileSystemObject")
Dim objEnv   	: Set objEnv = ObjWsh.Environment("Process")
Dim Logfile  	: Logfile = objEnv("USERPROFILE") & "\PrtUmzug.txt"
Dim objNetPr,NPR,DUMMY,ToDo,Zeile,Inhalt,Entry,Printer_New,OLDSERVER,NEWSERVER

OLDSERVER = "SERVERALT"   ' ----------------------------> Hier den Namen des alten Printservers eintragen
NEWSERVER = "SERVERNEU"   ' ----------------------------> Hier den Namen des neuen Printservers eintragen

' ------------------ routine
WScript.Echo ""
WScript.Echo "-----------------------------------------------------"
If Not ObjFso.FileExists(Logfile) then
WScript.Echo "|-> Ihre Druckerverbindungen werden überprüft & korrigiert"
Inhalt = GetPrinterNames()
WriteLog Logfile,Inhalt
ReadLog Logfile
Else
WScript.Echo "|-> Druckerverbindungen wurden bereits überprüft"
End If
WScript.Echo "-----------------------------------------------------"
WScript.Quit (1)
' ------------------ funktionen
Function GetPrinterNames() 				'--- liest die verbundenen Netzwerkdrucker aus
  Set objNetPr = ObjNet.EnumPrinterConnections
  For NPR = 0 to objNetPr.Count - 1 Step 2
    If Left(objNetPr.Item(NPR + 1),2) = "\\" then
      If DUMMY = "" then
        DUMMY = "NPR|" & objNetPr.Item(NPR) & "|" & objNetPr.Item(NPR + 1)
      Else
        DUMMY = DUMMY & vbCrLf & "NPR|" & objNetPr.Item(NPR) & "|" & objNetPr.Item(NPR + 1)
      End If
    End If
  Next 
  GetPrinterNames = DUMMY
  DUMMY = ""
  Set objNetPr = nothing
End Function
Function SetPrinterNames(Line) 			'--- verbindet einen Netzwerkdrucker
	On Error Resume Next
	Entry = split(Line,"|")
	If UBound(Entry) = 2 Then
		Printer_New = Replace(lcase(Entry(2)),OLDSERVER,NEWSERVER)
		ObjNet.RemovePrinterConnection Entry(2)
		ObjNet.AddWindowsPrinterConnection Printer_New
	End If
End Function
Function ReadLog(File) 					'--- überprüft ob Logfile existiert wenn ja liet Datei aus und spielt gesicherte Einträge zurück
	If ObjFso.FileExists(File) Then
		Set Dummy = ObjFso.OpenTextFile(File)
			Do Until Dummy.AtEndOfStream
				Zeile = trim(Dummy.Readline)
				SetPrinterNames(Zeile)
			Loop
	End If
End Function
Function WriteLog(File,Content) 		'--- löscht die Datei wenn vorhanden und erstellt eine aktualisierte
  If ObjFso.FileExists(File) Then
    ObjFso.DeleteFile(File)
  End If
  Dim ObjLogFile : Set ObjLogFile = ObjFso.OpenTextFile(File,8,true)
  ObjLogFile.WriteLine (Content)
  Set ObjLogFile = Nothing
End Function

Systemmonitor Windows & Linux

Wer unter Linux einen guten Systemmonitor sucht wird nicht an Conky vorbei kommen. Alle wichtigen Informationen auf einem Blick , für Windows Systeme gibt es einige Programme die ähnliche aufgabe übernehmen allerdings nie in diesem Umfang. Hierbei sind 4 besonders hervor zu heben BGInfo von ehemals Sysinternals , Desktopinfo , Moo0 Systemmonitor und Samurize. Wer nur Informationen über die Plattenbelegung haben will kann mit allen arbeiten etwas trickreicher wird es allerdings wenn man auch den Netzwerktraffic anzeigen möchte , abhängig davon ob eine Verbindung besteht oder nicht. Um ehrlich zu sein habe ich das unter Windows nicht in diesem Umfang getestet wie unter Linux dort aber habe ich eine Konfiguration erstellt , die abhängig die Informationen auf den Desktop zaubert.

Hier ist meine Konfiguration für Conky unter Ubuntu 10.04 & 10.10 :



benötigte Packete : lm_sensors , hddtemp , conky_colors und natürlich conky ;-)

Download Config : conky.tar.gz

In der Config ist auch die Datei conky_start.sh mit dabei um einen verzögerten Start zu realisieren, insgesamt ein gut Durchdachter und frei konfigurierbarer Systemmonitor für Linux meine Empfehlung




Hier eine mögliche Konfiguration für DesktopInfo

Download Config : desktopinfo.ini



Das versprochene Feature DesktopInfo als Screensaver auszuführen hat bei mir damit geendet das das Overlay und der Screensaver nicht mehr beendet wurden ich somit den Screensaver abwürgen musste.
Mein Fazit zu DesktopInfo , interresantes Programm allerdings vermisse ich einige Features. Wenn man mit der Standardkonfiguration zufrieden ist kann man es allerdings empfehlen.

Lt. Autor für folgende Betriebssysteme geeignet :
Windows Platforms
-----------------
Desktop Info has been tested on the following Windows platforms:

XP Pro (32 bit) version 2002 service pack 2
XP Pro (32 bit) version 2002 service pack 3
XP Pro (64 bit) version 2003 service pack 2
Vista (32 bit) business service pack 1
Server 2000 (32 bit) service pack 4
Server 2003 (64 bit) service pack 2
Server 2008 (32 bit) standard service pack 1
Server 2008 (64 bit) standard service pack 1
Windows 7 Professional 64 bit

Disk I/O may not work on Windows 2000.

(Auszug aud der Readme des Autors)





Hier Moo0 SystemMonitor 1.63 :



Eine Konfiguration über eine Konfigurationsdatei entfällt hier da alles über Rechtsklick und Felder ins Monitoring aufgenommen werden kann , allerdings beschränkt das auch die Möglichkeiten auf die vom Autor vergegebenen Felder. Mein Fazit lautet , wer auf die schnelle , ohne Konfigurationsdateien zu schreiben , einen Systemmonitor sucht ist hier gut bedient. Es wird in Echtzeit aktualisiert (Interval wählbar) und ist einfach zu konfigurieren.






Ich werde auch die anderen Systemmonitore testen und meine Erfahrungen hier verewigen ;-)
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)