Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sub GetOSVersion
- Dim strComputer, oWMIService, colOSInfo, oOSProperty, strCaption, strOSFamily
- strComputer = "."
- Set oWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
- Set colOSInfo = oWMIService.ExecQuery("Select * from Win32_OperatingSystem")
- 'I hate looping through just to get one property. But dunno another way!
- For Each oOSProperty in colOSInfo
- strCaption = oOSProperty.Caption
- Next
- If InStr(1,strCaption, "Vista", vbTextCompare) Then strOSFamily = "Vista"
- If InStr(1,strCaption, "2008", vbTextCompare) Then strOSFamily = "2008"
- If InStr(1,strCaption, "XP", vbTextCompare) Then strOSFamily = "XP"
- If InStr(1,strCaption, "2003", vbTextCompare) Then strOSFamily = "2003"
- If InStr(1,strCaption, "2000", vbTextCompare) Then strOSFamily = "2000"
- If strOSFamily = "" Then
- Wscript.Echo "No known OS found. (Script can detect Windows 2000, 2003, XP, Vista, 2008.)"
- Else
- Wscript.Echo "OS Family = " & strOSFamily
- End If
- Select Case strOSFamily 'if Vista/2008 then call CheckforElevation
- Case "Vista"
- CheckforElevation
- Case "2008"
- CheckforElevation
- Case Else
- Exit Sub
- End Select
- end sub
- sub CheckforElevation 'test whether user has elevated token
- Dim oShell, oExecWhoami, oWhoamiOutput, strWhoamiOutput, boolHasElevatedToken
- Set oShell = CreateObject("WScript.Shell")
- Set oExecWhoami = oShell.Exec("whoami /groups")
- Set oWhoamiOutput = oExecWhoami.StdOut
- strWhoamiOutput = oWhoamiOutput.ReadAll
- If InStr(1, strWhoamiOutput, "S-1-16-12288", vbTextCompare) Then boolHasElevatedToken = True
- If boolHasElevatedToken Then
- Wscript.Echo "Current script is running with elevated privs."
- Else
- Wscript.Echo "Current script is NOT running with elevated privs."
- End If
- end sub
Add Comment
Please, Sign In to add comment