403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/Windows/System32/Printing_Admin_Scripts/es-ES/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/Windows/System32/Printing_Admin_Scripts/es-ES/prnport.vbs
��'----------------------------------------------------------------------

'

' Copyright (c) Microsoft Corporation. All rights reserved.

'

' Abstract:

' prnport.vbs - Port script for WMI on Windows 

'     used to add, delete and list ports

'     also for getting and setting the port configuration

'

' Usage:

' prnport [-adlgt?] [-r port] [-s server] [-u user name] [-w password]

'                   [-o raw|lpr] [-h host address] [-q queue] [-n number]

'                   [-me | -md ] [-i SNMP index] [-y community] [-2e | -2d]"

'

' Examples

' prnport -a -s server -r IP_1.2.3.4 -e 1.2.3.4 -o raw -n 9100

' prnport -d -s server -r c:\temp\foo.prn

' prnport -l -s server

' prnport -g -s server -r IP_1.2.3.4

' prnport -t -s server -r IP_1.2.3.4 -me -y public -i 1 -n 9100

'

'----------------------------------------------------------------------



option explicit



'

' Debugging trace flags, to enable debug output trace message

' change gDebugFlag to true.

'

dim   gDebugFlag

const kDebugTrace = 1

const kDebugError = 2



gDebugFlag = false



'

' Operation action values.

'

const kActionAdd          = 0

const kActionDelete       = 1

const kActionList         = 2

const kActionUnknown      = 3

const kActionGet          = 4

const kActionSet          = 5



const kErrorSuccess       = 0

const KErrorFailure       = 1



const kFlagCreateOrUpdate = 0



const kNameSpace          = "root\cimv2"





'

' Constants for the parameter dictionary

'

const kServerName      = 1

const kPortName        = 2

const kDoubleSpool     = 3

const kPortNumber      = 4

const kPortType        = 5

const kHostAddress     = 6

const kSNMPDeviceIndex = 7

const kCommunityName   = 8

const kSNMP            = 9

const kQueueName       = 10

const kUserName        = 11

const kPassword        = 12



'

' Generic strings

'

const L_Empty_Text                 = ""

const L_Space_Text                 = " "

const L_Colon_Text                 = ":"

const L_LPR_Queue                  = "LPR"

const L_Error_Text                 = "Error"

const L_Success_Text               = "Correcto"

const L_Failed_Text                = "Error"

const L_Hex_Text                   = "0x"

const L_Printer_Text               = "Impresora"

const L_Operation_Text             = "Operaci�n"

const L_Provider_Text              = "Proveedor"

const L_Description_Text           = "Descripci�n"

const L_Debug_Text                 = "Depurar:"



'

' General usage messages

'

const L_Help_Help_General01_Text   = "Uso: prnport [-adlgt?] [-r puerto][-s servidor][-u usuario][-w contrase�a]"

const L_Help_Help_General02_Text   = "               [-o raw|lpr][-h direcci�n de host][-q cola][-n n�mero]"

const L_Help_Help_General03_Text   = "               [-me | -md ][-i �ndice SNMP][-y comunidad][-2e | -2d]"

const L_Help_Help_General04_Text   = "Argumentos:"

const L_Help_Help_General05_Text   = "-a     - agregar un puerto"

const L_Help_Help_General06_Text   = "-d     - eliminar el puerto especificado"

const L_Help_Help_General07_Text   = "-g     - obtener la configuraci�n de un puerto TCP"

const L_Help_Help_General08_Text   = "-h     - direcci�n IP del dispositivo"

const L_Help_Help_General09_Text   = "-i     - �ndice SNMP, si SNMP est� habilitado"

const L_Help_Help_General10_Text   = "-l     - listar todos los puertos TCP"

const L_Help_Help_General11_Text   = "-m     - tipo de SNMP: [e] habilitar, [d] deshabilitar"

const L_Help_Help_General12_Text   = "-n     - n�mero de puerto, se aplicar a puertos TCP RAW"

const L_Help_Help_General13_Text   = "-o     - tipo de puerto, raw o lpr"

const L_Help_Help_General14_Text   = "-q     - nombre de cola, se aplica solo a puertos TCP LPR"

const L_Help_Help_General15_Text   = "-r     - nombre del puerto"

const L_Help_Help_General16_Text   = "-s     - nombre del sevidor"

const L_Help_Help_General17_Text   = "-t     - establece la configuraci�n para un puerto TCP"

const L_Help_Help_General18_Text   = "-u     - nombre de usuario"

const L_Help_Help_General19_Text   = "-w     - contrase�a"

const L_Help_Help_General20_Text   = "-y     - nombre de la comunidad, si SNMP est� habilitada"

const L_Help_Help_General21_Text   = "-2     - doble cola de impresi�n, se aplica a los puertos TCP LPR. [e] habilita, [d] disabilita"

const L_Help_Help_General22_Text   = "-?     - muestra el uso del comando"

const L_Help_Help_General23_Text   = "Ejemplos:"

const L_Help_Help_General24_Text   = "prnport -l -s servidor"

const L_Help_Help_General25_Text   = "prnport -d -s servidor -r IP_1.2.3.4"

const L_Help_Help_General26_Text   = "prnport -a -s servidor -r IP_1.2.3.4 -h 1.2.3.4 -o raw -n 9100"

const L_Help_Help_General27_Text   = "prnport -t -s servidor -r IP_1.2.3.4 -me -y public -i 1 -n 9100"

const L_Help_Help_General28_Text   = "prnport -g -s server -r IP_1.2.3.4"

const L_Help_Help_General29_Text   = "prnport -a -r IP_1.2.3.4 -h 1.2.3.4"

const L_Help_Help_General30_Text   = "Nota:"

const L_Help_Help_General31_Text   = "En el ejemplo anterior se intentar� obtener la configuraci�n del dispositivo en la direcci�n IP especificada."

const L_Help_Help_General32_Text   = "Si se detecta un dispositivo, se agrega un puerto TCP con la configuraci�n preferida para ese dispositivo."



'

' Messages to be displayed if the scripting host is not cscript

'

const L_Help_Help_Host01_Text      = "Este script se debe ejecutar desde el s�mbolo del sistema por medio del comando CScript.exe."

const L_Help_Help_Host02_Text      = "Por ejemplo: CScript script.vbs argumentos"

const L_Help_Help_Host03_Text      = ""

const L_Help_Help_Host04_Text      = "Para establecer a CScript como la aplicaci�n predeterminada para ejecutar archivos .VBS, ejecute lo siguiente:"

const L_Help_Help_Host05_Text      = "     CScript //H:CScript //S"

const L_Help_Help_Host06_Text      = "Podr� entonces ejecutar ""script.vbs argumentos"" sin necesidad de agregar CScript antes del script."



'

' General error messages

'

const L_Text_Error_General01_Text  = "No se pudo determinar el host de scripting."

const L_Text_Error_General02_Text  = "No se puede analizar la l�nea de comandos."

const L_Text_Error_General03_Text  = "C�digo de error de Win32"



'

' Miscellaneous messages

'

const L_Text_Msg_General01_Text    = "Puerto agregado"

const L_Text_Msg_General02_Text    = "No se puede eliminar el puerto"

const L_Text_Msg_General03_Text    = "No se puede obtener el puerto"

const L_Text_Msg_General04_Text    = "Puerto creado/actualizado"

const L_Text_Msg_General05_Text    = "No se puede crear/actualizar el puerto"

const L_Text_Msg_General06_Text    = "No se pueden enumerar los puertos"

const L_Text_Msg_General07_Text    = "N�mero de puertos enumerados"

const L_Text_Msg_General08_Text    = "Puerto eliminado"

const L_Text_Msg_General09_Text    = "No se puede obtener el objeto SWbemLocator"

const L_Text_Msg_General10_Text    = "No se puede conectar con el servicio WMI"





'

' Port properties

'

const L_Text_Msg_Port01_Text       = "Nombre de servidor"

const L_Text_Msg_Port02_Text       = "Nombre del puerto"

const L_Text_Msg_Port03_Text       = "Direcci�n del host"

const L_Text_Msg_Port04_Text       = "RAW de protocolo"

const L_Text_Msg_Port05_Text       = "LPR de protocolo"

const L_Text_Msg_Port06_Text       = "N�mero de puerto"

const L_Text_Msg_Port07_Text       = "Cola"

const L_Text_Msg_Port08_Text       = "Cuenta de bytes habilitada"

const L_Text_Msg_Port09_Text       = "Cuenta de bytes deshabilitada"

const L_Text_Msg_Port10_Text       = "SNMP habilitado"

const L_Text_Msg_Port11_Text       = "SNMP deshabilitado"

const L_Text_Msg_Port12_Text       = "Comunidad"

const L_Text_Msg_Port13_Text       = "�ndice de dispositivo"



'

' Debug messages

'

const L_Text_Dbg_Msg01_Text        = "En la funci�n DelPort"

const L_Text_Dbg_Msg02_Text        = "En la funci�n CreateOrSetPort"

const L_Text_Dbg_Msg03_Text        = "En la funci�n ListPorts"

const L_Text_Dbg_Msg04_Text        = "En la funci�n GetPort"

const L_Text_Dbg_Msg05_Text        = "En la funci�n ParseCommandLine"



main



'

' Main execution starts here

'

sub main



    on error resume next



    dim iAction

    dim iRetval

    dim oParamDict



    '

    ' Abort if the host is not cscript

    '

    if not IsHostCscript() then



        call wscript.echo(L_Help_Help_Host01_Text & vbCRLF & L_Help_Help_Host02_Text & vbCRLF & _

                          L_Help_Help_Host03_Text & vbCRLF & L_Help_Help_Host04_Text & vbCRLF & _

                          L_Help_Help_Host05_Text & vbCRLF & L_Help_Help_Host06_Text & vbCRLF)



        wscript.quit



    end if



    set oParamDict = CreateObject("Scripting.Dictionary")



    iRetval = ParseCommandLine(iAction, oParamDict)



    if iRetval = 0 then



        select case iAction



            case kActionAdd

                iRetval = CreateOrSetPort(oParamDict)



            case kActionDelete

                iRetval = DelPort(oParamDict)



            case kActionList

                iRetval = ListPorts(oParamDict)



            case kActionGet

                iRetVal = GetPort(oParamDict)



            case kActionSet

                iRetVal = CreateOrSetPort(oParamDict)



            case else

                Usage(true)

                exit sub



        end select



    end if



end sub



'

' Delete a port

'

function DelPort(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg01_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict(kPortName)



    dim oService

    dim oPort

    dim iResult

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort='" & strPort & "'")



    else



        DelPort = kErrorFailure



        exit function



    end if



    '

    ' Check if Get succeeded

    '

    if Err.Number = kErrorSuccess then



        '

        ' Try deleting the instance

        '

        oPort.Delete_



        if Err.Number = kErrorSuccess then



            wscript.echo L_Text_Msg_General08_Text & L_Space_Text & strPort



        else



            wscript.echo L_Text_Msg_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                         & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



            '

            ' Try getting extended error information

            '

            call LastError()



        end if



    else



        wscript.echo L_Text_Msg_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



    end if



    DelPort = iResult



end function



'

' Add or update a port

'

function CreateOrSetPort(oParamDict)



    on error resume next



    dim oPort

    dim oService

    dim iResult

    dim PortType

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    DebugPrint kDebugTrace, L_Text_Dbg_Msg02_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict.Item(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict.Item(kPortName)

    DebugPrint kDebugTrace, L_Text_Msg_Port06_Text & L_Space_Text & oParamDict.Item(kPortNumber)

    DebugPrint kDebugTrace, L_Text_Msg_Port07_Text & L_Space_Text & oParamDict.Item(kQueueName)

    DebugPrint kDebugTrace, L_Text_Msg_Port13_Text & L_Space_Text & oParamDict.Item(kSNMPDeviceIndex)

    DebugPrint kDebugTrace, L_Text_Msg_Port12_Text & L_Space_Text & oParamDict.Item(kCommunityName)

    DebugPrint kDebugTrace, L_Text_Msg_Port03_Text & L_Space_Text & oParamDict.Item(kHostAddress)



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    '

    ' If the port exists, then get the settings. Later PutInstance will do an update

    '

    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort.Name='" & strPort & "'")



        '

        ' If get was unsuccessful then spawn a new port instance. Later PutInstance will do a create

        '

        if Err.Number <> kErrorSuccess then



            '

            ' Clear the previous error

            '

            Err.Clear



            set oPort = oService.Get("Win32_TCPIPPrinterPort").SpawnInstance_



        end if



    else



        CreateOrSetPort = kErrorFailure



        exit function



    end if



    if Err.Number <> kErrorSuccess then



        wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        CreateOrSetPort = kErrorFailure



        exit function



    end if



    oPort.Name          = oParamDict.Item(kPortName)

    oPort.HostAddress   = oParamDict.Item(kHostAddress)

    oPort.PortNumber    = oParamDict.Item(kPortNumber)

    oPort.SNMPEnabled   = oParamDict.Item(kSNMP)

    oPort.SNMPDevIndex  = oParamDict.Item(kSNMPDeviceIndex)

    oPort.SNMPCommunity = oParamDict.Item(kCommunityName)

    oPort.Queue         = oParamDict.Item(kQueueName)

    oPort.ByteCount     = oParamDict.Item(kDoubleSpool)



    PortType     = oParamDict.Item(kPortType)



    '

    ' Update the port object with the settings corresponding

    ' to the port type of the port to be added

    '

    select case lcase(PortType)



            case "raw"



                 oPort.Protocol      = 1



                 if Not IsNull(oPort.Queue) then



                     wscript.echo L_Error_Text & L_Colon_Text & L_Space_Text _

                     & L_Help_Help_General14_Text



                     CreateOrSetPort = kErrorFailure



                     exit function



                 end if



            case "lpr"



                 oPort.Protocol      = 2



                 if IsNull(oPort.Queue) then



                     oPort.Queue = L_LPR_Queue



                 end if



            case else



                 '

                 ' PutInstance will attempt to get the configuration of

                 ' the device based on its IP address. Those settings

                 ' will be used to add a new port

                 '

    end select



    '

    ' Try creating or updating the port

    '

    oPort.Put_(kFlagCreateOrUpdate)



    if Err.Number = kErrorSuccess then



        wscript.echo L_Text_Msg_General04_Text & L_Space_Text & oPort.Name



        iResult = kErrorSuccess



    else



        wscript.echo L_Text_Msg_General05_Text & L_Space_Text & oPort.Name & L_Space_Text _

                     & L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _

                     & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



        iResult = kErrorFailure



    end if



    CreateOrSetPort = iResult



end function



'

' List ports on a machine.

'

function ListPorts(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg03_Text



    dim Ports

    dim oPort

    dim oService

    dim iRetval

    dim iTotal

    dim strServer

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set Ports = oService.InstancesOf("Win32_TCPIPPrinterPort")



    else



        ListPorts = kErrorFailure



        exit function



    end if



    if Err.Number <> kErrorSuccess then



        wscript.echo L_Text_Msg_General06_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        ListPrinters = kErrorFailure



        exit function



    end if



    iTotal = 0



    for each oPort in Ports



        iTotal = iTotal + 1



        wscript.echo L_Empty_Text

        wscript.echo L_Text_Msg_Port01_Text & L_Space_Text & strServer

        wscript.echo L_Text_Msg_Port02_Text & L_Space_Text & oPort.Name

        wscript.echo L_Text_Msg_Port03_Text & L_Space_Text & oPort.HostAddress



        if oPort.Protocol = 1 then



            wscript.echo L_Text_Msg_Port04_Text

            wscript.echo L_Text_Msg_Port06_Text & L_Space_Text & oPort.PortNumber



        else



            wscript.echo L_Text_Msg_Port05_Text

            wscript.echo L_Text_Msg_Port07_Text & L_Space_Text & oPort.Queue



            if oPort.ByteCount then



                wscript.echo L_Text_Msg_Port08_Text



            else



                wscript.echo L_Text_Msg_Port09_Text



            end if



        end if



        if oPort.SNMPEnabled then



            wscript.echo L_Text_Msg_Port10_Text

            wscript.echo L_Text_Msg_Port12_Text & L_Space_Text & oPort.SNMPCommunity

            wscript.echo L_Text_Msg_Port13_Text & L_Space_Text & oPort.SNMPDevIndex



        else



            wscript.echo L_Text_Msg_Port11_Text



        end if



        Err.Clear



    next



    wscript.echo L_Empty_Text

    wscript.echo L_Text_Msg_General07_Text & L_Space_Text & iTotal



    ListPorts = kErrorSuccess



end function



'

' Gets the configuration of a port

'

function GetPort(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg04_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict(kPortName)



    dim oService

    dim oPort

    dim iResult

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort.Name='" & strPort & "'")



    else



        GetPort = kErrorFailure



        exit function



    end if



    if Err.Number = kErrorSuccess then



        wscript.echo L_Empty_Text

        wscript.echo L_Text_Msg_Port01_Text & L_Space_Text & strServer

        wscript.echo L_Text_Msg_Port02_Text & L_Space_Text & oPort.Name

        wscript.echo L_Text_Msg_Port03_Text & L_Space_Text & oPort.HostAddress



        if oPort.Protocol = 1 then



            wscript.echo L_Text_Msg_Port04_Text

            wscript.echo L_Text_Msg_Port06_Text & L_Space_Text & oPort.PortNumber



        else



            wscript.echo L_Text_Msg_Port05_Text

            wscript.echo L_Text_Msg_Port07_Text & L_Space_Text & oPort.Queue



            if oPort.ByteCount then



                wscript.echo L_Text_Msg_Port08_Text



            else



                wscript.echo L_Text_Msg_Port09_Text



            end if



        end if



        if oPort.SNMPEnabled then



            wscript.echo L_Text_Msg_Port10_Text

            wscript.echo L_Text_Msg_Port12_Text & L_Space_Text & oPort.SNMPCommunity

            wscript.echo L_Text_Msg_Port13_Text & L_Space_Text & oPort.SNMPDevIndex



        else



            wscript.echo L_Text_Msg_Port11_Text



        end if



        iResult = kErrorSuccess



    else



        wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



    end if



    GetPort = iResult



end function



'

' Debug display helper function

'

sub DebugPrint(uFlags, strString)



    if gDebugFlag = true then



        if uFlags = kDebugTrace then



            wscript.echo L_Debug_Text & L_Space_Text & strString



        end if



        if uFlags = kDebugError then



            if Err <> 0 then



                wscript.echo L_Debug_Text & L_Space_Text & strString & L_Space_Text _

                             & L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _

                             & L_Space_Text & Err.Description



            end if



        end if



    end if



end sub



'

' Parse the command line into its components

'

function ParseCommandLine(iAction, oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg05_Text



    dim oArgs

    dim iIndex



    iAction = kActionUnknown



    set oArgs = Wscript.Arguments



    while iIndex < oArgs.Count



        select case oArgs(iIndex)



            case "-g"

                iAction = kActionGet



            case "-t"

                iAction = kActionSet



            case "-a"

                iAction = kActionAdd



            case "-d"

                iAction = kActionDelete



            case "-l"

                iAction = kActionList



            case "-2e"

                oParamDict.Add kDoubleSpool, true



            case "-2d"

                oParamDict.Add kDoubleSpool, false



            case "-s"

                iIndex = iIndex + 1

                oParamDict.Add kServerName, RemoveBackslashes(oArgs(iIndex))



            case "-u"

                iIndex = iIndex + 1

                oParamDict.Add kUserName, oArgs(iIndex)



            case "-w"

                iIndex = iIndex + 1

                oParamDict.Add kPassword, oArgs(iIndex)



            case "-n"

                iIndex = iIndex + 1

                oParamDict.Add kPortNumber, oArgs(iIndex)



            case "-r"

                iIndex = iIndex + 1

                oParamDict.Add kPortName, oArgs(iIndex)



            case "-o"

                iIndex = iIndex + 1

                oParamDict.Add kPortType, oArgs(iIndex)



            case "-h"

                iIndex = iIndex + 1

                oParamDict.Add kHostAddress, oArgs(iIndex)



            case "-q"

                iIndex = iIndex + 1

                oParamDict.Add kQueueName, oArgs(iIndex)



            case "-i"

                iIndex = iIndex + 1

                oParamDict.Add kSNMPDeviceIndex, oArgs(iIndex)



            case "-y"

                iIndex = iIndex + 1

                oParamDict.Add kCommunityName, oArgs(iIndex)



            case "-me"

                oParamDict.Add kSNMP, true



            case "-md"

                oParamDict.Add kSNMP, false



            case "-?"

                Usage(True)

                exit function



            case else

                Usage(True)

                exit function



        end select



        iIndex = iIndex + 1



    wend



    if Err = kErrorSuccess then



        ParseCommandLine = kErrorSuccess



    else



        wscript.echo L_Text_Error_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_text & Err.Description





        ParseCommandLine = kErrorFailure



    end if



end  function



'

' Display command usage.

'

sub Usage(bExit)



    wscript.echo L_Help_Help_General01_Text

    wscript.echo L_Help_Help_General02_Text

    wscript.echo L_Help_Help_General03_Text

    wscript.echo L_Help_Help_General04_Text

    wscript.echo L_Help_Help_General05_Text

    wscript.echo L_Help_Help_General06_Text

    wscript.echo L_Help_Help_General07_Text

    wscript.echo L_Help_Help_General08_Text

    wscript.echo L_Help_Help_General09_Text

    wscript.echo L_Help_Help_General10_Text

    wscript.echo L_Help_Help_General11_Text

    wscript.echo L_Help_Help_General12_Text

    wscript.echo L_Help_Help_General13_Text

    wscript.echo L_Help_Help_General14_Text

    wscript.echo L_Help_Help_General15_Text

    wscript.echo L_Help_Help_General16_Text

    wscript.echo L_Help_Help_General17_Text

    wscript.echo L_Help_Help_General18_Text

    wscript.echo L_Help_Help_General19_Text

    wscript.echo L_Help_Help_General20_Text

    wscript.echo L_Help_Help_General21_Text

    wscript.echo L_Help_Help_General22_Text

    wscript.echo L_Empty_Text

    wscript.echo L_Help_Help_General23_Text

    wscript.echo L_Help_Help_General24_Text

    wscript.echo L_Help_Help_General25_Text

    wscript.echo L_Help_Help_General26_Text

    wscript.echo L_Help_Help_General27_Text

    wscript.echo L_Help_Help_General28_Text

    wscript.echo L_Help_Help_General29_Text

    wscript.echo L_Empty_Text

    wscript.echo L_Help_Help_General30_Text

    wscript.echo L_Help_Help_General31_Text

    wscript.echo L_Help_Help_General32_Text



    if bExit then



        wscript.quit(1)



    end if



end sub



'

' Determines which program is being used to run this script.

' Returns true if the script host is cscript.exe

'

function IsHostCscript()



    on error resume next



    dim strFullName

    dim strCommand

    dim i, j

    dim bReturn



    bReturn = false



    strFullName = WScript.FullName



    i = InStr(1, strFullName, ".exe", 1)



    if i <> 0 then



        j = InStrRev(strFullName, "\", i, 1)



        if j <> 0 then



            strCommand = Mid(strFullName, j+1, i-j-1)



            if LCase(strCommand) = "cscript" then



                bReturn = true



            end if



        end if



    end if



    if Err <> 0 then



        wscript.echo L_Text_Error_General01_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



    end if



    IsHostCscript = bReturn



end function



'

' Retrieves extended information about the last error that occurred

' during a WBEM operation. The methods that set an SWbemLastError

' object are GetObject, PutInstance, DeleteInstance

'

sub LastError()



    on error resume next



    dim oError



    set oError = CreateObject("WbemScripting.SWbemLastError")



    if Err = kErrorSuccess then



        wscript.echo L_Operation_Text            & L_Space_Text & oError.Operation

        wscript.echo L_Provider_Text             & L_Space_Text & oError.ProviderName

        wscript.echo L_Description_Text          & L_Space_Text & oError.Description

        wscript.echo L_Text_Error_General04_Text & L_Space_Text & oError.StatusCode



    end if



end sub



'

' Connects to the WMI service on a server. oService is returned as a service

' object (SWbemServices)

'

function WmiConnect(strServer, strNameSpace, strUser, strPassword, oService)



   on error resume next



   dim oLocator

   dim bResult



   oService = null



   bResult  = false



   set oLocator = CreateObject("WbemScripting.SWbemLocator")



   if Err = kErrorSuccess then



      set oService = oLocator.ConnectServer(strServer, strNameSpace, strUser, strPassword)



      if Err = kErrorSuccess then



          bResult = true



          oService.Security_.impersonationlevel = 3



          '

          ' Required to perform administrative tasks on the spooler service

          '

          oService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege"



          Err.Clear



      else



          wscript.echo L_Text_Msg_General10_Text & L_Space_Text & L_Error_Text _

                       & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _

                       & Err.Description



      end if



   else



       wscript.echo L_Text_Msg_General09_Text & L_Space_Text & L_Error_Text _

                    & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _

                    & Err.Description



   end if



   WmiConnect = bResult



end function



'

' Remove leading "\\" from server name

'

function RemoveBackslashes(strServer)



    dim strRet



    strRet = strServer



    if Left(strServer, 2) = "\\" and Len(strServer) > 2 then



        strRet = Mid(strServer, 3)



    end if



    RemoveBackslashes = strRet



end function


Youez - 2016 - github.com/yon3zu
LinuXploit