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

VBscripting mit Jump zu anderen Scripten and goBack Funktion

Frage Entwicklung VB for Applications

Mitglied: GPOdin

GPOdin (Level 2) - Jetzt verbinden

06.10.2010, aktualisiert 16:24 Uhr, 2644 Aufrufe, 6 Kommentare

Unter DOs gab es den "Call"-Befehl.....

Hallo miteinander,

da hab ich heute folgende Frage zu VB-Scripting:

ich hab da ein Loginscript für Domainmembers. Das ist derzeit ellenlang und soll verkürzt werden.

Ziel ist es, für jede Abteilung ein eigenes Script für Drucker & Laufwerkmapping zu starten allerdings aus einem gemeinsamen Startscript heraus.

Facts:

ich gebe also verschiedene Standards vor im startscript "login.vbs" (Auszug)
01.
strServer = DC01 
02.
strFileserver = DC02 
03.
 
04.
if isMember("Buchhaltung") then strDepartment = "Buchhaltung"  
05.
end if 
06.
if isMember("Einkauf") then strDepartment = "Einkauf"  
07.
end if
Jetzt hab ich nun das Ziel aus diesem Startscript heraus ein Script je nach Abteilung zu starten...
01.
call "\\" & strServer & "\Netlogon\Departmentscripts\" & strDepartment & ".vbs" ' *"call" ist denk ich falsch; nur wie heisst das jetzt
...welches dann im Scriptablauf z.B. laufwerke mounted, Drucker zuweist etc. ABER: am Ende des Abteilungs-spezifischen Scripts soll das Startscript (login.vbs) weiterlaufen und zwar genau nach der Stelle des Jumps zum Abteilungsscripts.

Wie macht man das?

Danke für Ideen & machbare Vorschläge! Ach ja: bitte nicht mit anderen prgrammiersprachen kommen da mir diese durch den Mutterkonzern vorgegeben ist (also kein DOS, Java etc.)...

Danke!
Mitglied: 76109
06.10.2010 um 18:47 Uhr
Hallo frankoehli!

Etwa in der Art:
01.
CreateObject("WScript.Shell").Run "..\Test.vbs", 0, True
Wobei der Parameter am Ende True/False bestimmt, ob das Skript warten soll oder nicht (True=Warten und False=Weiter)

Gruß Dieter
Bitte warten ..
Mitglied: GPOdin
06.10.2010 um 19:58 Uhr
Danke Dieter!

Noch eine Frage: muss ich in den Sub-Scripts auch wieder die str's, dim's etc. mitgeben oder "merkt" das script das die aus dem Startscript schon im RAM sind?


Gruß Frank
Bitte warten ..
Mitglied: 76109
06.10.2010 um 20:14 Uhr
Hallo Frank!

Anhand Deines Call-Beispiels, dann in etwa so
01.
strCmdLine = """\\" & strServer & "\Netlogon\Departmentscripts\" & strDepartment & ".vbs"""  'Leerzeichen erlaubt 
02.
 
03.
CreateObject("WScript.Shell").Run strCmdLine, 0, True
Willst Du auch Parameter an das Skript übergeben? Wenn ja Beispiel posten.

Gruß Dieter
Bitte warten ..
Mitglied: GPOdin
06.10.2010 um 20:38 Uhr
Hi Dieter,

so in etwa sieht es schon aus; hier das Beispiel (aszug):
01.
Dim strSERVER , strSERVER01, strSERVER02, strSERVER03 
02.
Dim strNetLogpath, strNetLogSubPath 
03.
Dim strDepartment01, strDepartment02 
04.
05.
06.
strDOMAIN   = "MyDomain" 	' DOMAIN NAME 
07.
strSERVER   = "DC01" 	' SERVER NAME related to Drive Mapp 
08.
strSERVER01 = "DC02" 	' SERVER NAME EXAMPLE: servername.domain.point 
09.
strSERVER02 = "DC03"     ' SERVER NAME related for SoftwareDeploymentServce & DHCP 
10.
strSERVER03 = "APP05"    ' SERVER NAME related for Devicemanegement 
11.
strNetLogPath = strSERVER & "\Netlogon" 
12.
strNetLogSubPath = strSERVER & strNetLogPath & "\SubScripts"
Die Dim's und Str's sollen mit rüber in das "Abteilungsbezogene" Script. Mein call ist wie folgt:
01.
'** Buchhaltung ** 
02.
	if IsMember("Buchhaltung") then strDepartment01 = "Buchhaltung" 
03.
			CreateObject("WScript.Shell").Run strNetLogSubPath & strDepartment01 & ".vbs", 0, True 
04.
		end if
das Abteilungsbezogene Script dann lediglich:
01.
objNetwork.MapNetworkDrive ("V", strSERVER & "\Department\" & strDepartment01, "Departmentdrive" )  
02.
'dann mach noch dies 
03.
'und mach noch das 
04.
'und tu noch jenes 
05.
'...und nun gehe einfach zurück zum Script von welchem aus du gestartet wurdest 
06.
'und mache bitte genau dort weiter wo du hier rüber gesprungen bist
Der jump am Ende soll also zurück zum Startscript. Weisst du wie ich es meine?

Danke im voraus; ist schon mal eine wesentlich übersichtlichere Sache. Ziel der Sache ist das wenn ein Script defekt ist das Startscript weiter tuckert und somit nicht die ganze Firma still steht.

Danke also noch mal!
Bitte warten ..
Mitglied: 76109
07.10.2010 um 19:10 Uhr
Hallo Frank!

Hiermal ein praktisches Beispiel. Die Start.vbs ruft die Call.vbs mit Argumenten auf, wartet bis dessen Ausführung beendet ist und wertet den Exit-Code aus.

Start.vbs
01.
    Dim strPath, strVar1, strVar2, strCmdLine, intReturn, objShell 
02.
 
03.
    strPath = "E:\Test\Mit Leerzeichen\Call.vbs" 
04.
    strVar1 = "Parameter1OhneLeerzeichen" 
05.
    strVar2 = "Parameter2OhneLeerzeichen" 
06.
 
07.
    strCmdLine = """" & strPath & """" & " " & strVar1 & " " & strVar2  '= "Path" Var1 Var2 
08.
     
09.
    Set objShell = CreateObject("WScript.Shell") 
10.
     
11.
    intReturn = objShell.Run(strCmdLine, 0, True)  'Call Call.vbs (Warten auf Exit) 
12.
     
13.
    If intReturn = 0 Then 
14.
        MsgBox "Die Call.Vbs hat den Wert 0 (OK) zurückgegeben." 
15.
    Else 
16.
        MsgBox "Die Call.Vbs hat den Wert 1 (Fehler) zurückgegeben." 
17.
    End If
Call.vbs
01.
    Dim strVar1, strVar2 
02.
     
03.
    With WScript 
04.
        If .Arguments.Count <> 2 Then 
05.
           MsgBox "Falsche Anzahl an Argumenten!" 
06.
          .Quit 1  'Fehler ReturnValue = 1 
07.
         Else 
08.
            strVar1 = .Arguments(0) 
09.
            strVar2 = .Arguments(1) 
10.
            MsgBox strVar1 
11.
            MsgBox strVar2 
12.
           .Quit 0  'OK ReturnValue = 0 
13.
        End If 
14.
    End With
Gruß Dieter

[edit] geändert: in Call.vbs waren die Codezeilen 5 und verttauscht [/edit]
Bitte warten ..
Mitglied: GPOdin
07.10.2010 um 20:37 Uhr
Super; das teste ich morgen direkt mal durch! Schönen Abend Dieter!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

LAN, WAN, Wireless
Hat On Networks PL500PS WLAN-Funktion? (4)

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

Windows Userverwaltung
gelöst Mit der PoweShell die lokal angelegten Users eines anderen Rechners auflisten (7)

Frage von M.Marz zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...