A VB Script that checks registry for installed hotfix

本文介绍了一种使用VBScript批量检查计算机上特定热修复补丁(如KB902400)安装状态的方法。该脚本通过读取输入文件中列出的计算机名称,并利用WMI查询每台计算机上的注册表,来确定指定热修复补丁是否已安装。查询结果将被写入到输出文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

———————————————————————-

'Checks the registry of each computer listed in INPUT_FILE_NAME
'for a the hotfix listed in HOTFIX
'It uses the WMI registry provider to do this.
'Besides writing to the screen, it writes the output to
'the file in OUTPUT_FILE_NAME in comma delimted format, producing 2 columns:
'the computer name, and the result of the query
'
'21/10/2005 Robert Kloosterhuis: v1.0
'http://www.geekswithblogsnet/jemimus


On Error Resume Next

INPUT_FILE_NAME = "serverlist.txt"
OUTPUT_FILE_NAME = "scan_hotfix_MS05_051.csv"
HOTFIX = "KB902400"

Const FOR_READING = 1
'objFSO.OpenTextFile method uses paramater value 8 to append to file
Const FOR_WRITING = 8
const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

Set StdOut = WScript.StdOut

'Set up objFSO variable for file reading and writing operations
Set objFSO = CreateObject("Scripting.FileSystemObject")

'delete OUTPUT_FILE_NAME if it already exists
Set oldfile = objFSO.GetFile(OUTPUT_FILE_NAME)
oldfile.delete

'Set up the output file
Set objOutputFile = objFSO.OpenTextFile(OUTPUT_FILE_NAME, FOR_WRITING, true)


'Read the input file
Set objFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
strComputers = objFile.ReadAll
objFile.Close

'Make an array out of the list it reads from the input file
arrComputers = Split(strComputers, vbCrLf)

'setting up some initial values
DIM result
DIM noresult
result = 0
noresult = 0

'Our main loop. Everything below this is run for every entry in the imput file
For Each strComputer In arrComputers

  'first column in the file we are writing to is the computer name.
  'Every bit of info we want to provide is ended with a comma for delimitation
   objOutputFile.Write
   objOutputFile.Write
   objOutputFile.Write strComputer
   objOutputFile.Write ","
  
  
  Err.Clear
  'Connect to the WMI registry provider
  Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _
     strComputer & "/root/default:StdRegProv")
        'Error Handling If it cant connect to the WMI provider,
        'exit with the Error Description
     If Err.Number <> 0 Then
           Wscript.Echo strComputer & " " & "Error Number " & _
           Err.Number &  ": " & Err.Description
           Err.Clear
           Else
  
          'The Registry path we are going to read from
    strKeyPath = "SOFTWARE/Microsoft/Windows NT/CurrentVersion/HotFix"
    objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

    
    'Everytime we run though the loop, these values are reset first.
    result = 0
    noresult = 0
    
    'If it comes across the hotfix we are looking for,
    'it changed the value for this loop
    For Each Subkey in arrSubKeys
                   
        IF Subkey = HOTFIX Then
        result = 1
        noresult = 0
       
        Else
        noresult = 1
       
     End IF           
              
    Next          
          
    
     'Now we have a value, lets print some text about it,
     'both to the screen, and to our output file
     IF result = 1 Then
       
       WScript.Echo strComputer & " " & HOTFIX & " installed!!!"
       objOutputFile.Write HOTFIX & " installed!!!"
     Else
       WScript.Echo strComputer & " " & HOTFIX & " not found!"
       objOutputFile.Write HOTFIX & " not found!"
     End IF

     
        'End with a comma for this column
        objOutputFile.Write ","
        
        
       
      
        

     end if
     
     'Start a new line  
     objOutputFile.Writeline
     
Next
objOutputFile.Close 

内容概要:文章基于4A架构(业务架构、应用架构、数据架构、技术架构),对SAP的成本中心和利润中心进行了详细对比分析。业务架构上,成本中心是成本控制的责任单元,负责成本归集与控制,而利润中心是利润创造的独立实体,负责收入、成本和利润的核算。应用架构方面,两者都依托于SAP的CO模块,但功能有所区分,如成本中心侧重于成本要素归集和预算管理,利润中心则关注内部交易核算和获利能力分析。数据架构中,成本中心与利润中心存在多对一的关系,交易数据通过成本归集、分摊和利润计算流程联动。技术架构依赖SAP S/4HANA的内存计算和ABAP技术,支持实时核算与跨系统集成。总结来看,成本中心和利润中心在4A架构下相互关联,共同为企业提供精细化管理和决策支持。 适合人群:从事企业财务管理、成本控制或利润核算的专业人员,以及对SAP系统有一定了解的企业信息化管理人员。 使用场景及目标:①帮助企业理解成本中心和利润中心在4A架构下的运作机制;②指导企业在实施SAP系统时合理配置成本中心和利润中心,优化业务流程;③提升企业对成本和利润的精细化管理水平,支持业务决策。 其他说明:文章不仅阐述了理论概念,还提供了具体的应用场景和技术实现方式,有助于读者全面理解并应用于实际工作中。
To check if an element exists in a tuple using a `for` loop in Rust, you don't need to use a separate data structure like lists (`Option` or `Vec`) since tuples are immutable by default. Here's how you can do it: ```rust // Define a tuple with some elements let tuple: (u8, String, i32) = (42, "hello".to_string(), 1337); fn contains_element(element: &u8, tup: &(_, _, _)) -> bool { // Iterate over the tuple using a pattern matching for loop for (e, _, _) in tup { // Compare the current element with the target element if *e == element { return true; // Found the element, exit the loop and return true } } false // Element not found after the loop, return false } // Check if an element exists in the tuple if let Some(index) = Some(0) { // Assuming you have the index of the element to search let element_to_find = 42; if contains_element(&element_to_find, &tuple) { println!("The element {} exists in the tuple.", element_to_find); } else { println!("The element {} does not exist in the tuple.", element_to_find); } } ``` In this example, the `contains_element` function takes a reference to the target element and a tuple as parameters. It iterates through the tuple using a pattern-matched `for` loop and checks if each element matches the target. If it finds a match, it returns `true`; otherwise, it returns `false`. Note that the code assumes you already know the index of the element you want to search within the tuple. If you're dynamically searching for an element without an index, you might need to use a different approach.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值