午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    自動寫入文件上傳到指定服務器SoftwareMeteringCLS.vbs源碼
    來源:易賢網 閱讀:1671 次 日期:2016-07-20 14:25:33
    溫馨提示:易賢網小編為您整理了“自動寫入文件上傳到指定服務器SoftwareMeteringCLS.vbs源碼”,方便廣大網友查閱!

    本次文章其中所用腳本代碼為ghiconan版主提供的由Branimir petrovic編寫的代碼,我在后面根據我公司現(xiàn)有的網絡情況做了一些文件管理的添加與刪除,最后有用FTP批處理的方法上傳到服務器內!

    代碼如下:

    ' FileName: SoftwareMeteringCLS.vbs

    ' ////////////////////////////////////////////////////////////////////

    If (WScript.ScriptName = "SoftwareMeteringCLS.vbs") Then Call demo_SoftwareMeteringCLS()

    ' ====================================================================

    Function getSoftwareList(sHost)

    ' Callable by *.wsf; will return list (safe array) of installed

    ' software on the sHost system (sHost is ComputerName or IP address).

    '

    ' The assumption is that sHost is available and has WMI installed.

    Set oSoftMeter = new SoftwareMeteringCLS

    sProgsAry = oSoftMeter.getList(sHost)

    Set oSpftMeter = Nothing

    getSoftwareList = sProgsAry

    End Function

    ' ====================== CLASS =======================================

    Class SoftwareMeteringCLS

    ' Author: Branimir Petrovic

    ' Date: 6 Sept 2002

    ' Version: 1.0.3

    '

    ' Revision History:

    ' 30 March 2002 V 1.0.0

    '

    ' 08 April 2002 V 1.0.1

    ' Added error handling - if the target system is not present,

    ' or does not have WMI, getList(sHost) will return empty list.

    '

    ' Added global function getSoftwareList(sHost) to be used

    ' from *.wsf scripts when caller script is JScript (since

    ' JScript can not instantiate VBS classes directly).

    '

    ' 21 April 2002 V 1.0.2

    ' Replacing "[" with "(" and "]" with ")" in "DisplayName"

    ' Some strings like: [See Q311401 for more information]

    ' can cause troubles, therefore replacement.

    '

    ' 6 Sept 2002 V 1.0.3

    ' Win2K's SP3 for Windows 2000 introduced slight (but silent)

    ' 'improvement' in a way registry provder's EnumValues method

    ' deals with empty keys. EnumValues method called against

    ' keys without any values (except the Default, empty value)

    ' will now return Null value (previously array of size 0 was

    ' returned). Added (previously unneeded) type checking...

    '

    '

    ' Dependancies:

    ' WSH 5.6

    '

    ' Methods:

    ' - getClassName()

    ' - getVersion()

    ' - getList(sHost) sHost parameter can be computer name or IP address

    ' Enumerates all subkeys in:

    ' "Software\Microsoft\Windows\CurrentVersion\Uninstall"

    ' Returns array of strings, each string item containing:

    ' "DisplayNameKeyValue[ --Version: DisplayVersionKeyValue]"

    '

    ' If sHost parameter is empty string or non-string value,

    ' function returns list of installed software on this host.

    ' Otherwise it will connect to host pointed to by sHost string

    ' (provided sufficient level of permissions)

    '

    ' - getHostString() Returns name of the system or IP address

    ' --- Private data members

    Private HKLM ' Points to HKEY_LOCAL_MACHINE hive

    Private UNINSTALL_ROOT ' Software\Microsoft\Windows\CurrentVersion\Uninstall

    Private SUPRESS_HOTFIX_ENTRIES ' By default is TRUE (set in Class_Initialize)

    ' (supressess listing of installed hotfixes)

    Private CLASS_NAME

    Private VERSION

    Private REG_SZ

    Private oReg

    Private sComputerName

    ' --- Public

    Public Function getClassName()

    getClassName = CLASS_NAME

    End Function

    Public Function getVersion()

    getVersion = VERSION

    End Function

    Public Function getList(sHost)

    If TypeName(sHost)="String" AND sHost<>"" Then

    sComputerName = sHost

    Else

    sComputerName = WScript.CreateObject("WScript.Network").ComputerName

    End If

    On Error Resume Next

    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}//" &_

    sComputerName & "/root/default:StdRegProv")

    If Err.Number<>0 Then

    ' Computer is not accessable or does not have WMI, return empty array

    getList = Array()

    Else

    ' Computer is on the network and does have working WMI,

    ' return the list (safe array) of installed software

    getList = listInstalledProgs(oReg)

    End If

    On Error GoTo 0

    End Function

    Public Function getHostString()

    getHostString = sComputerName

    End Function

    ' --- Private helper routines

    Private Sub Class_Initialize

    ' Initialize various values used by this class

    HKLM = &H80000002 ' Hive: HKEY_LOCAL_MACHINE

    UNINSTALL_ROOT = "Software\Microsoft\Windows\CurrentVersion\Uninstall"

    REG_SZ = 1

    SUPRESS_HOTFIX_ENTRIES = true

    CLASS_NAME = "SoftwareMeteringCLS"

    VERSION = "1.0.3"

    End Sub

    Private Function listInstalledProgs(oReg)

    ' returns array of strings DisplayName & " " & DisplayVersion

    Dim oRegX, nCnt, sSubKeysAry, sProgName

    Dim sProgsAry(): ReDim sProgsAry(1)

    sSubKeysAry = getKeys(oReg, HKLM, UNINSTALL_ROOT)

    If SUPRESS_HOTFIX_ENTRIES Then

    ' Supress looking into all hot fix related sub keys (like Q252795, etc...)

    Set oRegX = new RegExp

    oRegX.Pattern = "^Q\d+$" ' will detect patterns like: Q252795

    oRegX.IgnoreCase = true

    For nCnt = 0 To UBound(sSubKeysAry)

    If NOT oRegX.Test(sSubKeysAry(nCnt)) Then

    sProgName = getProgNameAndVersion(oReg, HKLM, _

    UNINSTALL_ROOT & "\" & sSubKeysAry(nCnt))

    If NOT (IsEmpty(sProgName) OR sProgName="") Then

    If NOT IsEmpty(sProgsAry(UBound(sProgsAry) - 1)) Then

    ReDim Preserve sProgsAry(UBound(sProgsAry)+1)

    End If

    sProgsAry(UBound(sProgsAry)-1) = sProgName

    End If

    End If

    Next

    Else

    ' List all sub keys including hotfix related ones (like Q252795, etc...)

    For nCnt = 0 To UBound(sSubKeysAry)

    sProgName = getProgNameAndVersion(oReg, HKLM, _

    UNINSTALL_ROOT & "\" & sSubKeysAry(nCnt))

    If NOT (IsEmpty(sProgName) OR sProgName="") Then

    If NOT IsEmpty(sProgsAry(UBound(sProgsAry) - 1)) Then

    ReDim Preserve sProgsAry(UBound(sProgsAry)+1)

    End If

    sProgsAry(UBound(sProgsAry)-1) = sProgName

    End If

    Next

    End If

    listInstalledProgs = sProgsAry

    End Function

    Private Function getKeys(oReg, HIVE, sKeyRoot)

    ' Returns array of strings of subkey names

    Dim vKeysAry

    Call oReg.EnumKey(HIVE, sKeyRoot, vKeysAry)

    getKeys = vKeysAry ' >>>

    End Function

    Private Function getProgNameAndVersion(oReg, HIVE, sKeyRoot)

    ' If both values "DisplayName" and "DisplayVersion" exist in sKeyRoot, return:

    ' "DisplayNameKeyValue --Version: DisplayVersionKeyValue"

    '

    ' If only "DisplayName" exists, return:

    ' "DisplayNameKeyValue"

    '

    ' Otherwise EMPTY is returned

    Dim sKeyValuesAry, iKeyTypesAry, nCnt, sValue, sDisplayName, sDisplayVersion

    oReg.EnumValues HIVE, sKeyRoot, sKeyValuesAry, iKeyTypesAry 'fill the arrays

    ' 6 Sept 2002

    ' SP3 for Win2K altered behavior of registry provider's EnumValues method!

    ' EnumValues method after SP3 does not return empty array any more for all

    ' those registry keys that have only empty Default value.

    ' Therefore sKeyValuesAry must be tested to see if it is an array or not.

    If NOT IsArray(sKeyValuesAry) Then

    Exit Function ' ' >>>

    End If

    For nCnt = 0 To UBound(sKeyValuesAry)

    If InStr(1, sKeyValuesAry(nCnt), "DisplayName", vbTextCompare) Then

    If iKeyTypesAry(nCnt) = REG_SZ Then

    oReg.GetStringValue HIVE, sKeyRoot, sKeyValuesAry(nCnt), sValue

    If sValue<>"" Then

    sDisplayName = sValue

    sDisplayName = Replace(sDisplayName, "[", "(")

    sDisplayName = Replace(sDisplayName, "]", ")")

    End If

    End If

    ElseIf InStr(1, sKeyValuesAry(nCnt), "DisplayVersion", vbTextCompare) Then

    If iKeyTypesAry(nCnt) = REG_SZ Then

    oReg.GetStringValue HIVE, sKeyRoot, sKeyValuesAry(nCnt), sValue

    If sValue<>"" Then sDisplayVersion = sValue

    End If

    End If

    If (sDisplayName<>"") AND (sDisplayVersion<>"") Then

    getProgNameAndVersion = sDisplayName & " --Version: " & sDisplayVersion

    Exit Function ' >>>

    End If

    Next

    If sDisplayName<>"" Then

    getProgNameAndVersion = sDisplayName

    Exit Function ' >>>

    End If

    End Function

    End Class

    ' ====================== END OF CLASS ================================

    Function demo_SoftwareMeteringCLS()

    Dim oSoftMeter, sProgsAry, sComputer

    'sComputer = "W-BRANIMIR-666"

    'sComputer = "W-Branimir-079"

    sComputer = "" ' query local host

    sProgsAry = getSoftwareList(sComputer)

    Call WScript.Echo(Join(sProgsAry, vbCrLf))

    End Function

    更多信息請查看腳本欄目

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網