' VBScript source code
const HKEY_LOCAL_MACHINE = &H80000002
Const HARD_DISK = 3
Const W2K3 = 52
Const WXP = 51
Const W2K = 50
Const NT4 = 40

On Error Resume Next
nNotMinReq = 0
nNotRecReq = 0
sWelcomeMsg = "This script will check your PC to see if it meets the requirements for TGMU Software, click OK to continue"
if(MsgBox(sWelcomeMsg, vbOKCancel, "System Check") = vbOK)then
strComputer = "."
'Check OS and SP
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
	sVersion = objOperatingSystem.Version		
    If(StrComp(sVersion, "5.2.0") = 1) Then
		sMsg = "       - OK - "
		nOS = W2K3
	ElseIf(StrComp(sVersion, "5.1.0") = 1)then
		sMsg = "       - OK - "
		nOS = WXP
	ElseIf(StrComp(sVersion, "5.0.0") = 1)then
		sMsg = "       - OK -"
		nOS = W2K
	Else
		sMsg = "       - OS NOT SUPPORTED - "
		nOS = NT4
		nNotMinReq = 1	
	End If		
	sMessageString = "OS Version: " & sVersion & sMsg & VbCrLf
    sSPMajorVersion = objOperatingSystem.ServicePackMajorVersion
    sSPMinorVersion = objOperatingSystem.ServicePackMinorVersion
    Select Case nOS
		Case W2K3
			sMsg = "             - OK - "
		Case WXP
			if(StrComp(sSPMajorVersion, "0") = 1)then
				sMsg = "             - OK - "
			else
				sMsg = "     - SERVICE PACK UPGRADE REQUIRED - "
				nNotMinReq = 1
			end if		
		Case W2K
			if(StrComp(sSPMajorVersion, "3") = 1)then
				sMsg = "             - OK - "
			else
				sMsg = "     - SERVICE PACK UPGRADE REQUIRED - "
				nNotMinReq = 1
			end if    
		Case Else 
			sMsg = "       - NOT SUPPORTED - " 
			nNotMinReq = 1
	End Select

    sMessageString = sMessageString & "Service Pack: " & sSPMajorVersion & "." & sSPMinorVersion & sMsg &_
					 VbCrLf & VbCrLf
Next
'Check Memory
Set colSettings = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
	sSystemName = objComputer.Name 
    sMessageString = "TGMU System Requirements Check" & VbCrLf & VbCrLf &_
					 "System Name: " & sSystemName & VbCrLf & VbCrLf & sMessageString
    sTotalMemory = objComputer.TotalPhysicalMemory    
    if(sTotalMemory > 500000000)then
		sMsg = "       - OK - "
    elseif(sTotalMemory > 250000000)then
		sMsg = "       - ADDITIONAL MEMORY REQUIRED - "
		nNotMinReq = 1
    else
		sMsg = "       - ADDITIONAL MEMORY REQUIRED - "
		nNotMinReq = 1
    end if        
    sMessageString = sMessageString & "Total Physical Memory: " & sTotalMemory & sMsg & VbCrLf & VbCrLf
Next
'Check Processor
Set colSettings = objWMIService.ExecQuery _
    ("Select * from Win32_Processor")
For Each objProcessor in colSettings 
    sProcessor = objProcessor.Description
    sProcessorSpeed = objProcessor.MaxClockSpeed
    if(sProcessorSpeed > 2000)then
        sMsg = "       - OK - "
    elseif(sProcessorSpeed > 1000)then
		sMsg = "       - OK -"
	else
		sMsg = "       - FASTER PROCESSOR REQUIRED -"
		nNotMinReq = 1
    end if
    sMessageString = sMessageString & "Processor: " & sProcessor & VbCrLf
    sMessageString = sMessageString & "Processor Speed: " & sProcessorSpeed & sMsg & VbCrLf
    
Next
sMessageString = sMessageString & VbCrLf
'Check free space
Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
nTotalFree = 0
For Each objDisk in colDisks
    sDeviceID = objDisk.DeviceID
    sFreeSpace = objDisk.FreeSpace
    nTotalFree = nTotalFree + sFreeSpace  
    if(sFreeSpace > 4000000000)then
        sMsg = "       - OK - "
    else
		sMsg = "       - INADEQUATE FREE SPACE - "		
    end if
    sMessageString = sMessageString & "Disk " & sDeviceID & " Free Disk Space: " & sFreeSpace &_
					 sMsg & VbCrLf      
Next
if(nTotalFree < 4000000000)then
	nNotMinReq = 1
end if

sMessageString = sMessageString & VbCrLf

'Check for Frameworks
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\.NETFramework\policy\v1.1"
strValueName = "4322"
strValue = ""
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
If(StrComp(strValue, "") = 1) Then
	sMsg = "       - OK - "		
Else	
	sMsg = "       - NOT INSTALLED - "		
End If		
sMessageString = sMessageString & "Microsoft Framework 1.1: " & sMsg & VbCrLf & VbCrLf       

'Get connection speed
Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_Tcpip_NetworkInterface",,48)
nCount = 0
For Each objItem in colItems
	sCurrentBandwidth = objItem.CurrentBandwidth	
	sAdapterName = objItem.Name
	if(StrComp(sAdapterName, "") = 1)then
		'have an adapter - check to see of it is loopback
		if not(StrComp(sAdapterName, "MS TCP Loopback interface") = 0)then
			'not loopback	
			nCount = nCount + 1
			sMessageString = sMessageString & "Network Adapter: " & sAdapterName & VbCrLf
			if(sCurrentBandwidth >= 100000000)then
				sMsg = "       - OK - "		
			elseif(sCurrentBandwidth >= 36000000)then
				'wireless 54G
				sMsg = "       - OK - "		
			else
				sMsg = "       - SLOW CONNECTION 100 MG RECOMMENDED -"
			end if
			sMessageString = sMessageString & "Bandwidth: " & sCurrentBandwidth & sMsg & VbCrLf & VbCrLf       
		end if
	end if
Next
if(nCount = 0)then
	sMessageString = sMessageString & "Network Adapter: - UNABLE TO CHECK - Please verify connection speed is 100 MG." & VbCrLf & VbCrLf
end if


'Get IP address
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 
For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.IPAddress) Then 
        For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
            sIPAddress = IPConfig.IPAddress(i)
            sMessageString = sMessageString & "IP Address: " & sIPAddress & VbCrLf
        Next
    End If
Next
if(nNotMinReq = 1)then
	sMessageString = sMessageString & VbCrLf & "This system DOES NOT meet TGMU MINIMUM requirements." 
else
	sMessageString = sMessageString & VbCrLf & "This system meets TGMU requirements." 
end if
 
MsgBox sMessageString, vbOKOnly, "System Check"

Set IPConfigSet = nothing
Set colItems = nothing
Set oReg = nothing
Set colDisks = nothing
Set colSettings = nothing
Set objWMIService = nothing

end if 


'' SIG '' Begin signature block
'' SIG '' MIIOdQYJKoZIhvcNAQcCoIIOZjCCDmICAQExCzAJBgUr
'' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
'' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB
'' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFBAvPytuFino
'' SIG '' zbVgw0L0nRKmfJw2oIIL/zCCAjwwggGlAhBwuuQdENkp
'' SIG '' NLY4ynsDzLq/MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNV
'' SIG '' BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3
'' SIG '' MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBD
'' SIG '' ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkw
'' SIG '' MDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYT
'' SIG '' AlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUG
'' SIG '' A1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0
'' SIG '' aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
'' SIG '' AQEFAAOBjQAwgYkCgYEAyVxZnvIbigEUtBDfBEDb41ev
'' SIG '' akVAj4QMC9Ez2dkRz+4CWB8l9yqoRAWq7AMfeH+ek7ma
'' SIG '' AKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBv
'' SIG '' mA/4rCNfcCk2pMmG57GaIMtTpYXnPb59mv4kRTPcdhXt
'' SIG '' D6JxZExlLoFoRacCAwEAATANBgkqhkiG9w0BAQIFAAOB
'' SIG '' gQC7TBIrzywmAE8UE92m+/wKEYSM8ygcZ5IvfLbF+t/w
'' SIG '' 6JW8HY9sLKhRzHPYpMBT8E7WJsB2AVeBkl4h8dGx/+fQ
'' SIG '' IVjNaRfjRBycGUQ5iVzcnAAPVo0Cme2ikEVM5LsQpD3w
'' SIG '' MgMO8c746MlRjOZin+afwH23cpzJNjprn06o/2QNZDCC
'' SIG '' BL8wggQooAMCAQICEEGRoVo5eN/PSWVmOB1MdcIwDQYJ
'' SIG '' KoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNV
'' SIG '' BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
'' SIG '' cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24g
'' SIG '' QXV0aG9yaXR5MB4XDTA0MDcxNjAwMDAwMFoXDTE0MDcx
'' SIG '' NTIzNTk1OVowgbQxCzAJBgNVBAYTAlVTMRcwFQYDVQQK
'' SIG '' Ew5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
'' SIG '' Z24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMg
'' SIG '' b2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
'' SIG '' bS9ycGEgKGMpMDQxLjAsBgNVBAMTJVZlcmlTaWduIENs
'' SIG '' YXNzIDMgQ29kZSBTaWduaW5nIDIwMDQgQ0EwggEiMA0G
'' SIG '' CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+vO68fu+D
'' SIG '' 6+A3T/sDEDi+CNKMfZ36kn8ZDMJr7kJSjN7THEgTJerB
'' SIG '' Y3r5UWXu06o79fCUnCv78mbUJNr39Z9uGTk2vNCjdgge
'' SIG '' IickbDiRJ+KESa4biqH9JYIsEDDocaso6HdKUfHszfjw
'' SIG '' VNRvwONtCo/Z2GSNY7ItTif2hQ7+beMpmeKFR3wthn/o
'' SIG '' V4+tZ8IzMpETIPypIxSabcKES3ZoBNVxLF0h+ogNJv0f
'' SIG '' LZEr5wFVTfJtNSiC39lrXLbW2aqB/V/Ng7pjndAi/Kk7
'' SIG '' Qmmyjjq1vLSeD17E6iyCiyj9UwiW3bUBINH5pRjnwO5R
'' SIG '' cDfhtgVIUkhvOOrD6Gx7RIS7AgMBAAGjggGgMIIBnDAS
'' SIG '' BgNVHRMBAf8ECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYL
'' SIG '' YIZIAYb4RQEHFwMwKjAoBggrBgEFBQcCARYcaHR0cHM6
'' SIG '' Ly93d3cudmVyaXNpZ24uY29tL3JwYTAxBgNVHR8EKjAo
'' SIG '' MCagJKAihiBodHRwOi8vY3JsLnZlcmlzaWduLmNvbS9w
'' SIG '' Y2EzLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB
'' SIG '' BQUHAwMwDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIB
'' SIG '' AQQEAwIAATApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMR
'' SIG '' Q2xhc3MzQ0EyMDQ4LTEtNDMwHQYDVR0OBBYEFAj1Uej7
'' SIG '' /j09ZDZ8aM9beKjfucU3MIGABgNVHSMEeTB3oWOkYTBf
'' SIG '' MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
'' SIG '' IEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVibGljIFBy
'' SIG '' aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHmCEHC6
'' SIG '' 5B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQEFBQADgYEA
'' SIG '' rjoXuEp7VfpkVexApO1JQZCZnIm8ry4dyngj+RwZD3/r
'' SIG '' aLwy2Yg43tw/04m0P7GClvGkWrrtLibT3nwBbgAKAKQG
'' SIG '' khFICUD5HBh5ZyMk4LvV4VCuG/UO3eAugc2Ao2xST5F1
'' SIG '' VYq6IvLS6kF1iC9jVX0eVFqVWcrZNIHAX172erUwggT4
'' SIG '' MIID4KADAgECAhASNO8zdQVqUOamit9PHPjhMA0GCSqG
'' SIG '' SIb3DQEBBQUAMIG0MQswCQYDVQQGEwJVUzEXMBUGA1UE
'' SIG '' ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
'' SIG '' aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
'' SIG '' IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
'' SIG '' b20vcnBhIChjKTA0MS4wLAYDVQQDEyVWZXJpU2lnbiBD
'' SIG '' bGFzcyAzIENvZGUgU2lnbmluZyAyMDA0IENBMB4XDTA4
'' SIG '' MDEwOTAwMDAwMFoXDTExMDQwNDIzNTk1OVowgbsxCzAJ
'' SIG '' BgNVBAYTAlVTMRUwEwYDVQQIEwxTb3V0aCBEYWtvdGEx
'' SIG '' ETAPBgNVBAcTCE1pdGNoZWxsMSAwHgYDVQQKFBdJbm5v
'' SIG '' dmF0aXZlIFN5c3RlbXMsIExMQzE+MDwGA1UECxM1RGln
'' SIG '' aXRhbCBJRCBDbGFzcyAzIC0gTWljcm9zb2Z0IFNvZnR3
'' SIG '' YXJlIFZhbGlkYXRpb24gdjIxIDAeBgNVBAMUF0lubm92
'' SIG '' YXRpdmUgU3lzdGVtcywgTExDMIGfMA0GCSqGSIb3DQEB
'' SIG '' AQUAA4GNADCBiQKBgQDH/q+Gxv6nXT6OfTqliWRXtGvx
'' SIG '' cvC24SD3dbAs5IgVfXiqPa1jehEzLLYdvePTwJMFHYgO
'' SIG '' /NJVWgRk0W7ykib0lAeg1VJpCvBoSriCkvmDBz6ux2ft
'' SIG '' qq2FwxX1lwf2efABV7Kpwh9969llnusKSAXCGdk2aSUq
'' SIG '' ChCmGgWQBQDsMwIDAQABo4IBfzCCAXswCQYDVR0TBAIw
'' SIG '' ADAOBgNVHQ8BAf8EBAMCB4AwQAYDVR0fBDkwNzA1oDOg
'' SIG '' MYYvaHR0cDovL0NTQzMtMjAwNC1jcmwudmVyaXNpZ24u
'' SIG '' Y29tL0NTQzMtMjAwNC5jcmwwRAYDVR0gBD0wOzA5Bgtg
'' SIG '' hkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxodHRwczov
'' SIG '' L3d3dy52ZXJpc2lnbi5jb20vcnBhMBMGA1UdJQQMMAoG
'' SIG '' CCsGAQUFBwMDMHUGCCsGAQUFBwEBBGkwZzAkBggrBgEF
'' SIG '' BQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24uY29tMD8G
'' SIG '' CCsGAQUFBzAChjNodHRwOi8vQ1NDMy0yMDA0LWFpYS52
'' SIG '' ZXJpc2lnbi5jb20vQ1NDMy0yMDA0LWFpYS5jZXIwHwYD
'' SIG '' VR0jBBgwFoAUCPVR6Pv+PT1kNnxoz1t4qN+5xTcwEQYJ
'' SIG '' YIZIAYb4QgEBBAQDAgQQMBYGCisGAQQBgjcCARsECDAG
'' SIG '' AQEAAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCJThMNC7I5
'' SIG '' PKlhdMZxINvtwP61OhO8r92Yz0g3/M8Tst+w7sVE+EqP
'' SIG '' DeBFrkQN1I7W2MQcGaquNdMp0ZXKKQPtkZlTm3Tm4DPO
'' SIG '' RKCmCCUzioksRqvqXADtwLY0/XsBN4TVeqclFmUafRNb
'' SIG '' wgqZKfdxeYGRLKXLcSFtbCsIHvKc9jP7yFXMV2NE6ika
'' SIG '' sBB5JYLZJ2S8/YYlFjqnWFimWt1RYowocgjBCDj9oXd5
'' SIG '' 9U6vTWRoL+63rdvba18b9u2NQMtNuGIJEPgJyNgraI7D
'' SIG '' UqI7A9q0QjcQANkJfR/PbnZbcUW8y9fm4AbvNn6iffGV
'' SIG '' xHiw8JFNXQw2FmFZhkLwM+kEMYIB4jCCAd4CAQEwgckw
'' SIG '' gbQxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
'' SIG '' biwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3Qg
'' SIG '' TmV0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0
'' SIG '' IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMp
'' SIG '' MDQxLjAsBgNVBAMTJVZlcmlTaWduIENsYXNzIDMgQ29k
'' SIG '' ZSBTaWduaW5nIDIwMDQgQ0ECEBI07zN1BWpQ5qaK308c
'' SIG '' +OEwCQYFKw4DAhoFAKBwMBAGCisGAQQBgjcCAQwxAjAA
'' SIG '' MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
'' SIG '' AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3
'' SIG '' DQEJBDEWBBSMp57IduNbA9QtSMhhP3vVbMYBKDANBgkq
'' SIG '' hkiG9w0BAQEFAASBgHd1guj71p4EoRVQKRy/7Hq1mMm5
'' SIG '' lWCCQA0VU28RHEk6xad3tCpWv9FLP8lVB1Gxrrwc5G4c
'' SIG '' k0Ge/mJJOOHphGEYM6Z/zxMFZGkrhSEk8FqEnM6f6M5r
'' SIG '' 9nFVug1Afy6qO1kGI+dTnQR9aCKp6MVUg4HJHWOAssTl
'' SIG '' 0xsSTdYoJQSE
'' SIG '' End signature block
