jschneider
Goto Top

VB DruckerPort Erstellung - If exist irgendwie

Hallo ,

ich habe folgendes Script zur Erstellung von DruckerPorts auf einem Print Cluster (Windows 2003)

Als Quelle dient einfach eine .txt-Datei in der sämtliche IP-Adressen stehen für die ein Port angelegt werden soll.


Leider bricht dieses Script sofort ab wenn der Port bereits existiert (beim anlegen) oder wenn er nicht existiert (beim löschen)

ich würde gerne ein Funktion reinbringen, die mir abprüft, ob der Port schon existiert und dann eine Variable mit 0 oder 1 füllt. Diese Variable wird dann nochmals beim erstellen oder löschen abgeprüft..

also:
wenn Choice=1 und strExist=0 dann mach
wenn Choice=1 und strExist=1 dann mach nicht
wenn Choice=2 und strExist=0 dann mach nicht
wenn Choice=2 und strExist=1 dann mach

nur, weiss ich nicht so recht wie ich eine abfrage auf einen existierenden port hier noch reinbekomme face-wink


Dim oPort
Dim oMaster
Dim PrtLine
Dim objFSO, objFile
set oPort = CreateObject("Port.Port.1")  
oPort.ServerName = "\\vshqprt01"  
set oMaster = CreateObject("PrintMaster.PrintMaster.1")  
PrtFile="Q:\Scripting\work\PortCreate\PrinterPorts.txt"  


Choice = inputbox("Dieses Script loescht oder erstellt Druckerports" & vbnewline & vbnewline & "1 = Ports erstellen" & vbnewline & "2 = Ports loeschen" & vbnewline  ,"GPO zu OUs Verlinken")  
if Choice ="" then  
	msgbox "Ohne Eingabe wird das Script beendet",16,"Hinweis"  
	WScript.Quit
  end if

if isnumeric(Choice) = false then
	msgbox "Bitte nur einzelne Zahlen eingeben",16,"Hinweis"  
	WScript.Quit
	else
  end if

if Choice > 3 or Choice = 0 then
	msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"  
	WScript.Quit
	else
  end if

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")  

If objFSO.FileExists(PrtFile) then 
	else 
	wscript.echo "Die angegebene Quelldatei " &  PrtFile & " konnte nicht gefunden werden"  
	wscript.quit
end if


Set PrtVFile = objfso.opentextfile(PrtFile, ForReading)

Do until PrtVFile.AtEndOfStream
PrtLine = PrtVFile.readline
oPort.PortName = "IP_" & PrtLine  
oPort.PortType = 1
oPort.HostAddress = PrtLine
oPort.PortNumber = 9100
oPort.SNMP = true
oPort.SNMPDeviceIndex = 1
oPort.CommunityName = "public"  
oPort.QueueName = "Queue"  
oPort.DoubleSpool = false
 
if Choice = 2 then
  oMaster.PortDel oPort
  If Err <> 0 then
  end if
end if

if Choice = 1 then
  oMaster.PortAdd oPort
  If Err <> 0 then
  end if
end if

loop
wscript.echo "fertig"  

Content-Key: 73132

Url: https://administrator.de/contentid/73132

Printed on: April 23, 2024 at 21:04 o'clock

Member: jschneider
jschneider Nov 09, 2007 at 10:08:14 (UTC)
Goto Top
okok face-wink sicher der dreckigste code den man sich vorstellen kann - aber es tut ...

Dim oPort
Dim oMaster
dim doesexist
dim nPort
Dim PrtLine
Dim objFSO, objFile
set oPort = CreateObject("Port.Port.1")  
set nPort = CreateObject("Port.Port.1")  
set oMaster = CreateObject("PrintMaster.PrintMaster.1")  
oPort.ServerName = "\\vshqprt01"  
nPort.ServerName = "\\vshqprt01"  
PrtFile="Q:\Scripting\work\PortCreate\PrinterPorts.txt"  

 Const ForReading = 1, ForWriting = 2, ForAppending = 8
 Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")  
   If objFSO.FileExists(PrtFile) then 
	else 
	wscript.echo "Die angegebene Quelldatei " &  PrtFile & " konnte nicht gefunden werden"  
	wscript.quit
   end if
 Set PrtVFile = objfso.opentextfile(PrtFile, ForReading)

Choice = inputbox("Dieses Script loescht oder erstellt Druckerports" & vbnewline & vbnewline & "1 = Ports erstellen" & vbnewline & "2 = Ports loeschen" & vbnewline  ,"GPO zu OUs Verlinken")  
if Choice ="" then  
	msgbox "Ohne Eingabe wird das Script beendet",16,"Hinweis"  
	WScript.Quit
  end if

if isnumeric(Choice) = false then
	msgbox "Bitte nur einzelne Zahlen eingeben",16,"Hinweis"  
	WScript.Quit
	else
  end if

if Choice > 3 or Choice = 0 then
	msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"  
	WScript.Quit
	else
  end if

Do until PrtVFile.AtEndOfStream
  PrtLine = PrtVFile.readline
  for each oPort in oMaster.Ports ("\\vshqprt01")  
  	  if StrComp(oPort.PortName , "IP_" & PrtLine ) = 0 then  
          doesexist="TRUE"  
	 end if
  Next
  nPort.PortName = "IP_" & PrtLine  
  nPort.PortType = 1
  nPort.HostAddress = PrtLine
  nPort.PortNumber = 9100
  nPort.SNMP = true
  nPort.SNMPDeviceIndex = 1
  nPort.CommunityName = "public"  
  nPort.QueueName = "Queue"  
  nPort.DoubleSpool = false
 
   if Choice = 2 then
	if StrComp(doesexist,"TRUE") = 0 then  
    	 oMaster.PortDel nPort
           If Err <> 0 then
           end if
	else
        end if
   end if

   if Choice = 1 then
	if StrComp(doesexist,"TRUE") = 0 then  
	else
           oMaster.PortAdd nPort
         If Err <> 0 then
         end if
        end if
   end if

loop

wscript.echo "fertig"