todo
Goto Top

Einbettung einer Batchdatei in VBScript

Ich will am Ende der Ausführung eines VBScriptes eine Batch-Datei starten.

Moin moin zusammen,

eigentlich - so glaube ich - ist in der Einleitung bereits alles gesagt.

Ich will erreichen, dass ein VBScript, nach seiner Abarbeitung, eine Batch-Datei startet. Der Name der Batch-Datei ist "PDFCreator.bat".

Hat irgendwer eine Ahnung, wie ich das bewerkstelligen kann?

Verweise auf die Forumsinterne Suche sind zwecklos, denn diese habe ich bereits hinter mir.
Oder habe ich vielleicht nicht genügend gesucht?
Ich finde jedenfalls nur den umgekehrten Fall, welcher, aus meiner Sicht, nun gar kein Problem darstellt.

Für schnelle Hilfe wäre ich überaus dankbar!

Schonmal jetzt ein Dank an den Helfer und .... einen schönen Feierabend!


Thomas

Content-Key: 32632

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

Printed on: April 25, 2024 at 19:04 o'clock

Member: bastla
bastla Aug 31, 2006 at 17:01:30 (UTC)
Goto Top
Hi Thomas!

Set Sh = CreateObject("WScript.Shell")
Sh.Run "C:\DeinPfad\PDFCreator.bat"

HTH
Bastla
Member: Biber
Biber Aug 31, 2006 at 17:09:38 (UTC)
Goto Top
Moin, todo,

das geht z.B über die .Run-Methode des WScript-Shell-Objektes:
.... 'Deine 500 Zeilen *.vbs  
Set WshShell = WScript.CreateObject("WScript.Shell")   
Return = WshShell.Run("c:\todokrams\PDFCreator.bat", 0, True)   
....' Returnwert nach Belieben verwerten oder verbrennen...  

Gruß
Biber
[Edit] ...wieder zu langsam... [/Edit]
Member: todo
todo Aug 31, 2006 at 19:13:42 (UTC)
Goto Top
Tach - oder sollt ich besser Nacht sagen? - @all,

die Sonne neigt dem Untergang und ich bin dazu geneigt das Bett aufzusuchen.

Ich danke schon jetzt für eure Beiträge und werde mich morgen, in der Früh intensiv damit auseinander setzen.

Ich gebe auf jeden Fall Statusinformationen

Gruß

Thomas
Member: Biber
Biber Aug 31, 2006 at 19:32:53 (UTC)
Goto Top
...wenn Du willst, weck ich Dich dann... face-wink
Member: todo
todo Sep 01, 2006 at 05:14:06 (UTC)
Goto Top
@ Biber Nun ja, das Wecken war nicht notwendig, denn ich bin chronischer Frühaufsteher. face-wink

Um auf das Script zu kommen ... So, wie es ausschaut, funktionieren beide Scriptvorschläge, genau so, wie ich es mir vorstelle. Ich bekomme es jedoch mit der Pfadangabe nicht hin, denn ich erhalte bei der Ausführung die Meldung, dass die Datei nicht im angegebenen Pfad zu finden ist. Die Datei ist jedoch dort!

Die Meldung zeigt an, dass der Fehler in der Zeile 63, welche die Zeile mit der Pfadangabe zur PDFCreator.bat ist, zu finden ist

Hintergrund:
Das Script soll als Anmeldescript laufen und befindet sich - genau wie die "PDFCreator.bat" - im Sysvol, in der Freigabe "Drucker$". Da wir zwei Domänencontroller (Windows Server 2003 R2) im Einsatz haben, macht es doch Sinn, wenn ich eine Varible, wie %logonserver%, einsetze. Da ich jedoch "noch" von VBScript nur sehr wenig Ahnung habe, weiß ich nun garnicht, wie ich die Pfadangabe korrekt setzen soll. Anders herum befinden sich die Scripte auf beiden DC's im gleichen Pfad, was eine Variable doch auch überflüssig macht!?

Hoffe, auch hierfür gibt es eine hilfreiche Antwort!

Gruß und einen schönen Tag

Thomas
Member: Biber
Biber Sep 01, 2006 at 05:22:41 (UTC)
Goto Top
Moin todo,
Nun ja, das Wecken war nicht notwendig, denn ich bin chronischer Frühaufsteher...
Ich dagegen stehe meist erst mittags auf.
dass der Fehler in der Zeile 63, welche die Zeile mit der Pfadangabe zur PDFCreator.bat ist
Wie wäre es, die Zeilen 1 bis 77 mal zu posten?
Hoffe, auch hierfür gibt es eine hilfreiche Antwort!
Dass mal eine Angela Merkel Bundeskanzlerin wird, hätte auch niemand für möglich gehalten - von daher bin ich da eher optimistisch.

Grüße
Biber aka der Langschläfer
Member: todo
todo Sep 01, 2006 at 07:32:07 (UTC)
Goto Top
Ich habe die Lösung und es hat gar nicht weh getan!!! face-wink

'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
'* Legt die Umgebungsvariable Logonserver fest!
'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
DIM Logonserver

Set oShell = CreateObject("WScript.Shell")
Set oWshProcessEnv = oShell.Environment("process")

Logonserver = oWshProcessEnv("Logonserver")

'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
'* Löscht den PDFCreator ... installierter Treiber bleibt erhalten!
'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer where DeviceID = 'PDFCreator'")

For Each objPrinter in colInstalledPrinters
objPrinter.Delete_
Next

'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
'* Alle Verbundenen Netzwerkdrucker werden getrennt ... installierte Treiber bleiben erhalten!
'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
strPrintSrv = "xxx.xxx.xxx.de" '*Name des Printservers
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
strComputer = LCase(WshNetwork.ComputerName)
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
For Each objPrinter in colPrinters
If Left(objPrinter.Name, 2) = "\\" Then
WshNetwork.RemovePrinterConnection "\\" & strPrintSRV & "\" & _
objPrinter.ShareName, TRUE
End If
Next


'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
'* Netzwerkdrucker aus gleicher OU (Raum xx) wird verbunden und als Standard definiert!
'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set objADSysInfo = CreateObject("ADSystemInfo")
Set objcomputer = GetObject("LDAP://" & objADSysInfo.computerName)
Set objOU = GetObject(objcomputer.parent)

Call SubmapprinterLPT

Sub SubmapprinterLPT()
objOU.Filter=Array("printqueue") '*Filtert alle Printer Queue Objekte aus der OU des Computers
For Each oPq In objOU
If UCase(oPq.PrinterName) = UCase(objcomputer.ou) Then
On Error Resume Next
'* Trennt bei Vorhandensein die Verbindung von LPT1:
wshNetwork.RemovePrinterConnection "LPT1", True, True
wshNetwork.AddPrinterConnection "LPT1", oPq.PrinterPath
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
wshNetwork.SetDefaultPrinter oPq.Printerpath
Else
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath

End If
Next


'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
'* PDFCreator wird wieder hergestellt ... Aufruf PDFCreator.bat
'* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '* '*
Set Sh = CreateObject("WScript.Shell")
'* WScript.Echo Logonserver & "\Drucker$\PDFCreator.bat"
Sh.Run Logonserver & "\Drucker$\PDFCreator.bat"

End Sub

Mein Problem wird durch die ersten 9 und letzten 6 Zeilen vor "End Sub" (am Ende) gelöst.


Ich danke für die Hilfe und wünsche nun ein schönes Wochenende


Gruß

Thomas