×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

VBScript FAQ

WMI

Checking for the version of Intel Wireless Proset for 3945ABG and 2200BG wireless NIC cards w/E-mail by computerhighguy
Posted: 20 Aug 07 (Edited 20 Aug 07)

This script I used to identify if the latest version of the Intel Proset for Wireless is installed on a system.  It queries WMI for the existance of the wireless card.  That means that some form of the driver must exist.  I would make sure all my images had the base drivers in them. It then queries for the file  

%programfiles%\Intel\Wireless\Drivers\iProDifx.dll

for its version.  It uses this file to determine the version of the installed ProSet.  If it is less than the one specified in the these variables

    MajVer = 10
    MinVer = 5
    Build  = 1

It starts an install (yes you must have admin rights to install this software).  The above is equal to Intel ProSet verion 10.5.1.xxxxx.

This script uses the a popup window that times out.  It assumes that you always want to install the latest version of the software.  It works surprisingly well.  The only issues I have had with it had to do with a bad NIC once and couple of XP machines with corrupt WMI subsystems.

Once this script runs, it will update the driver along with the Intel Proset.  This was designed for the 32bit version of Windows XP.  
__________________________________________________________
__________________________________________________________

' // **************************************************
' //      ComputerHighGuy's Intel Wireless Checker
' //
' // **************************************************



Sub IntelWireless()

    on error resume next
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set ProgFiles = WScript.CreateObject ("WScript.Shell")
    Set WshShell = WScript.CreateObject ("WScript.Shell")
    
    MajVer = 10
    MinVer = 5
    Build  = 1
    baseInstall = "\\Server\share\Intel Proset 10.5.1\IntelSetup.exe"
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter",,48)
    For Each objNIC in colItems
        pos3945 = InStr(objNIC.Name,"3945ABG")
        pos2200 = InStr(objNIC.Name,"2200BG")
        if pos3945 <> "0" or pos2200 <> "0" then
            ' \\ If an adapter exists, echo that it exists.
            'wscript.echo "Intel NIC Exists"
            IntelExists = "True"
        end if
    Next

    If IntelExists = "True" then
        If filesys.FileExists(ProgFiles.ExpandEnvironmentStrings("%PROGRAMFILES%") & "\Intel\Wireless\Drivers\iProDifx.dll") then
            MyArray = Split(filesys.GetFileVersion(ProgFiles.ExpandEnvironmentStrings("%PROGRAMFILES%") & "\Intel\Wireless\Drivers\iProDifx.dll"),".")
            ' wScript.echo MyArray(0)
            ' wScript.echo MyArray(1)
            ' wScript.echo MyArray(2)
            ' wScript.echo MyArray(3)
            MajVersion = CInt(MyArray(0))
            ' Wscript.echo MajVersion    
            MinVersion = CInt(MyArray(1))
            BuildNum = CInt(MyArray(2))
        
            If MajVersion < MajVer or MinVersion < MinVer or BuildNum < Build then
                    Set WshShell = CreateObject("WScript.Shell")
                    WshShell.Popup "Your system has an older version of the Intel Proset Software (for the Intel Wireless NIC Card) on your system." _
                        & vbCRLF & vbCRLF & "Press OK to update the driver.  Please be patient as the install file is quite large (50 MB)!" & vbCRLF & vbCRLF _
                        & "                                                                                                                  ---- IT Department" & vbCRLF & vbCRLF _
                        & "Currently Installed Version: " & MajVersion & "." & MinVersion & "." & BuildNum & vbCRLF & vbCRLF _
                        & "Version to be Installed: " & MajVer & "." & MinVer & "." & Build,15,"Dell Quickset is out of Date!",48
                    'Wscript.echo BaseInstPath
                    ' \\ Copy the install file to the %temp% directory for install.  It will not work over the network.
                    filesys.CopyFile baseInstall, ProgFiles.ExpandEnvironmentStrings("%TEMP%" & "\IntelSetup.exe"),True
                    WshShell.Run (ProgFiles.ExpandEnvironmentStrings("%TEMP%") & "\IntelSetup.exe"),1,True
            End If
        else
            ' \\ Install Intel Software
            filesys.CopyFile baseInstall, ProgFiles.ExpandEnvironmentStrings("%TEMP%" & "\IntelSetup.exe"),True
            WshShell.Run (ProgFiles.ExpandEnvironmentStrings("%TEMP%") & "\IntelSetup.exe"),1,True
        End If
    End If
    
    If err.number <> 0 then
        call sendMail("Script error in Intel Wireless installation routine of os.vbs",vbCRLF & vbCRLF & "This user had an error while in the Intel wireless" & vbCRLF & vbCRLF & "Current Error = " & Err.Number)
    End if
    on error goto 0
End Sub

Sub sendMail (mailSubject,mailBody)

    Set objEmail = CreateObject("CDO.Message")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = WScript.CreateObject ("WScript.Shell")

    computerName = objShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
    userName = objShell.ExpandEnvironmentStrings("%USERNAME%")
    

    objEmail.From = userName & "@domain.com"
    objEmail.To = "email@domain.com"
    objEmail.Subject = mailSubject
    objEmail.Textbody = "User: " & userName & " on computer \\" & computerName & " " & mailBody
    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
        "smtp.domain.com"
    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objEmail.Configuration.Fields.Update
    objEmail.Send

End Sub

Back to VBScript FAQ Index
Back to VBScript Forum

My Archive

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close