【问题标题】:Get operating system without using WMI在不使用 WMI 的情况下获取操作系统
【发布时间】:2012-08-13 15:06:31
【问题描述】:

我有一个 Powershell 脚本,我需要在其中获取各种服务器的操作系统。到目前为止,我一直在使用 WMI 来完成此任务,但是我已经阅读了有关 WMI 如何获取超时的信息,所以我想知道是否有另一种获取服务器操作系统的方法?这是我目前使用并希望更改以避免 WMI 的代码:

$serverVersion = Get-WMIObject -computer $server -class Win32_OperatingSystem

【问题讨论】:

    标签: powershell wmi virtual-machine code-cleanup


    【解决方案1】:

    您可能会在注册表中找到您要查找的内容。从 Windows 2000 开始,ProductName 值可以在以下位置找到:HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion。

    要使用 Powershell 查询此注册表值,请尝试:

    (get-itemproperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName).ProductName
    

    【讨论】:

      【解决方案2】:

      根据你需要多少粒度,你也可以使用.Net的System.Environment.OSVersion:

      PS C:\> $os = [Environment]::OSVersion
      

      在窗户上:

      PS C:\> $os
      Platform ServicePack    Version        VersionString
      -------- -----------    -------        -------------
       Win32NT Service Pack 1 6.1.7601.65536 Microsoft Windows NT 6.1.7601 Service Pack 1
      

      在 Linux (Ubuntu 18.04) 上:

      PS /home> $os
      Platform ServicePack Version   VersionString
      -------- ----------- -------   ------------- 
      Unix             4.15.0.36 Unix 4.15.0.36
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 2015-10-10
        • 2010-10-26
        • 2012-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多