Hallo!
Folgende VBScript-Datei:
In der bat-Datei steht:
%errorlevel% gibt immer das aus, was beim ersten WScript.Quit steht (hier also 0), obwohl der Code ansonsten ordnungsgemäß ausgeführt wird.
Hat da jemand ne Idee? Ich muss das errorlevel abfangen, das beim zweiten WScript.Quit steht, hier also 1.
Folgende VBScript-Datei:
Code:
Option Explicit Main Sub Main Dim objShell, objWMIService, servSpooler, objReg, objShellApp, result, oShell Dim whoami, strWhoamiOutput, whoamiOutput Const PrinterPort = "NUL:" Const HKLM = &h80000002 If Not WScript.Arguments.Named.Exists("elevate") Then Set objShellApp = CreateObject("Shell.Application") objShellApp.ShellExecute WScript.FullName, WScript.ScriptFullName & " /elevate", "", "runas", 0 WScript.Quit 'Dieses errorlevel bekommt die batch WScript.Echo("Done 1") Else Set oShell = CreateObject("WScript.Shell") Set whoami = oShell.Exec("whoami /groups") Set whoamiOutput = whoami.StdOut strWhoamiOutput = whoamiOutput.ReadAll If InStr(1, strWhoamiOutput, "S-1-16-12288", vbTextCompare) Then Wscript.Echo("ADMIN") WScript.Echo("Port") Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") set servSpooler = objWMIService.Get("Win32_Service.Name='spooler'") Set objReg = GetObject("winmgmts:root\default:StdRegProv") servSpooler.StopService objReg.SetStringValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports", PrinterPort, "" servSpooler.StartService WScript.Quit 1 End if WScript.Echo("Done 2") End If WScript.Echo("Done 3") End Sub
Code:
@echo off cscript //nologo "test.vbs" ECHO %errorlevel% PAUSE
Hat da jemand ne Idee? Ich muss das errorlevel abfangen, das beim zweiten WScript.Quit steht, hier also 1.
Comment