我需要一種方法來查找操作系統版本而不使用winmgmts。我需要找到OS,VISTA,WIN7的名稱的平臺無關的方式等如何在VBScript中不使用WMI查找操作系統名稱?
回答
的VBScript:
Set oShell = CreateObject("WScript.Shell")
os_name=oShell.ExpandEnvironmentStrings("%OS%")
WScript.Echo os_name
Option Explicit
Dim oShell
Dim oShellExec, oStdOutputText, sText, iElement, aOS, sOS
Set oShell = CreateObject("Wscript.Shell")
Set oShellExec = oShell.Exec("%comspec% /c ver")
Set oStdOutputText = oShellExec.StdOut
Do While Not oStdOutputText.AtEndOfStream
sText = oStdOutputText.ReadLine
aOS = Array("Windows 95", "Windows 98", "Windows NT", "Windows 2000", "Windows XP", "Microsoft Windows [Version")
For iElement = LBound(aOS) To UBound(aOS)
If InStr(sText, aOS(iElement)) <> 0 Then
If aOS(iElement) = "Microsoft Windows [Version" Then
If InStr(sText, "Version6.0") <> 0 Then
sOS = "Windows Vista"
ElseIf InStr(sText, "Version 6.1")<>0 Then
sOS = "Windows 7"
Else
sOS = "Windows 2003"
End If
Else
sOS = aOS(iElement)
End If
End If
Next
Loop
WScript.Echo sOS
這不區分XP和Vista/Win7,在Win7上這返回Windows 2003 – toddstavish 2012-08-12 18:35:44
@toddstavish:已修復支持Vista和Windows 7. – 2012-08-13 23:37:15
我們必須分析在用戶路徑在2K/XP上不同的帳戶,然後他們在Vista/Win7上。 comspec返回如下所示:Microsoft Windows [Version 6.1.7600]。 2k/XP是版本5.x和Vista/Win7是版本6.x.
Set shell = CreateObject("WScript.Shell")
Set getOSVersion = shell.exec("%comspec% /c ver")
version = getOSVersion.stdout.readall
wscript.echo version
Select Case True
Case InStr(version, "n 5.") > 1 : GetOS = "XP"
Case InStr(version, "n 6.") > 1 : GetOS = "Vista"
Case Else : GetOS = "Unknown"
End Select
wscript.echo GetOS`
謝謝! :)我使用了case語句的修改版本,但是使用WMI對象獲得了版本號:'Set oWMI = GetObject(「winmgmts:\\。\ root \ cimv2」)'...和:'Set rows = oWMI.ExecQuery(「從Win32_OperatingSystem選擇版本」,48)'...接着循環「行」(僅1)以獲取版本。 – Chiramisu 2014-08-23 01:33:05
這page提供了獲得通用的Windows操作系統的信息,所有使用該GetVersionEx API的單一調用幾個包裝程序。
Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each os in oss
Wscript.Echo "Caption: " & os.Caption
Wscript.Echo "Code Set: " & os.CodeSet
Wscript.Echo "Country Code: " & os.CountryCode
Wscript.Echo "Debug: " & os.Debug
Wscript.Echo "Encryption Level: " & os.EncryptionLevel
dtmConvertedDate.Value = os.InstallDate
dtmInstallDate = dtmConvertedDate.GetVarDate
Wscript.Echo "Install Date: " & dtmInstallDate
Wscript.Echo "Licensed Users: " & os.NumberOfLicensedUsers
Wscript.Echo "Organization: " & os.Organization
Wscript.Echo "OS Language: " & os.OSLanguage
Wscript.Echo "OS Product Suite: " & os.OSProductSuite
Wscript.Echo "OS Type: " & os.OSType
Wscript.Echo "Primary: " & os.Primary
Wscript.Echo "Serial Number: " & os.SerialNumber
Wscript.Echo "Version: " & os.Version
Next
- 1. 不使用WMI獲取操作系統
- 2. 查找EC2 AWS操作系統名稱中使用SDK
- 3. 使用JScript查找操作系統名稱/版本
- 4. 如何使用Java-ME查找移動操作系統名稱和操作系統版本?
- 5. 如何獲得操作系統名稱
- 6. WMI - 獲取未本地化的操作系統名稱
- 7. 通過Java中的Jsch查找遠程操作系統名稱
- 8. 如何使用VBScript在HTA文件中操作DropDownBox名稱
- 9. 如何找到操作系統的名稱?
- 10. 如何使用word vba檢查操作系統系統日期
- 11. 如何在Windows Powershell中使用函數獲取操作系統名稱
- 12. VBScript中:使用WMI
- 13. 不正確的操作系統名稱在Java中獲得
- 14. 操作系統名稱變量
- 15. 返回Android操作系統名稱
- 16. 如何在Google Dart中查找操作系統架構?
- 17. 如何在非Windows操作系統的WiX安裝程序中獲取操作系統名稱?
- 18. java中操作系統的名稱(不是「os.name」)
- 19. Traceroute命令「名稱」在不同的操作系統?
- 20. WMI查詢 - 使用並非所有操作系統都可用的屬性
- 21. 如何在32位操作系統上使用VBScript顯示64位雙數?
- 22. 如何獲得操作系統的語言名稱
- 23. 如何獲得「友好」操作系統版本名稱?
- 24. 在WIX中獲取完整的操作系統名稱
- 25. 使用Spring-mvc/tomcat查找用戶操作系統
- 26. 如何獲取使用C#運行代碼的操作系統的名稱?
- 27. 將在所有操作系統上工作的路徑名稱
- 28. Windows操作系統簽名
- 29. 使用反射在某些操作系統上使用名稱空間
- 30. 使用不同名稱的系統類?
該解決方案將返回Windows_NT爲WinXP中,Vista中,和Win7。我需要區分不同版本的NT。 – toddstavish 2012-08-12 17:53:59