【问题标题】:Powershell to find Server Operating systemPowershell 查找服务器操作系统
【发布时间】:2017-10-12 02:34:26
【问题描述】:

我的任务是查找我们在 AD 中拥有的所有服务器的操作系统,以满足某些 Microsoft 许可证要求。

有人做过吗?

【问题讨论】:

    标签: powershell operating-system find windows-server


    【解决方案1】:

    我想通了。

    请随意使用和修改。如果您有任何问题,请告诉我。

    这是一个简单的命令。希望它可以帮助某人。这为您提供了您拥有的操作系​​统类型。我仅基于 Windows Server 和活动的计算机帐户进行筛选。然后按名称排序并选择唯一的操作系统。

    Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (Enabled -eq "True")} -Properties OperatingSystem | Sort Name | select -Unique OperatingSystem
    

    输出:

    OperatingSystem
    ---------------
    Windows Server 2012 R2 Standard
    Windows Server 2008 R2 Standard
    Windows Server 2012 R2 Standard Evaluation
    Windows Server 2008 R2 Enterprise
    

    下一个命令是获取所有服务器并显示它们的操作系统。同样,我基于 Windows 服务器操作系统和活动计算机帐户进行过滤。我正在按操作系统对列表进行排序:

    Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (Enabled -eq "True")} -Properties OperatingSystem | sort OperatingSystem | ft DNSHostName, OperatingSystem
    

    您也可以将以上内容保存在一个变量中,然后获取每个操作系统类别中的服务器数量:

    $Servers = Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (Enabled -eq "True")} -Properties OperatingSystem | Sort Name
    
    $servers | group operatingsystem  
    

    【讨论】:

      【解决方案2】:
      $OSIs64BitArch = ([System.Environment]::Is64BitOperatingSystem)
      $OSArchString = if ( $OSIs64BitArch ) {"x64"} else {"x86"}
      $OSIsServerVersion = if ([Int]3 -eq [Int](Get-WmiObject -Class Win32_OperatingSystem).ProductType) {$True} else {$False}
      $OSVerObjectCurrent = [System.Environment]::OSVersion.Version
      if ($OSVerObjectCurrent -ge (New-Object -TypeName System.Version -ArgumentList "6.1.0.0")) {
          if ($OSVerObjectCurrent -ge (New-Object -TypeName System.Version -ArgumentList "6.2.0.0")) {
              if ($OSVerObjectCurrent -ge (New-Object -TypeName System.Version -ArgumentList "6.3.0.0")) {
                  if ($OSVerObjectCurrent -ge (New-Object -TypeName System.Version -ArgumentList "10.0.0.0")) {
                      if ( $OSIsServerVersion ) {
                          Write-Output ('Windows Server 2016 ' + $OSArchString + " ... OR Above")
                      } else {
                          Write-Output ('Windows 10 ' + $OSArchString + " ... OR Above")
                      }
                  } else {
                      if ( $OSIsServerVersion ) {
                          Write-Output ('Windows Server 2012 R2 ' + $OSArchString)
                      } else {
                          Write-Output ('Windows 8.1 ' + $OSArchString)
                      }
                  }
              } else {
                  if ( $OSIsServerVersion ) {
                      Write-Output ('Windows Server 2012 ' + $OSArchString)
                  } else {
                      Write-Output ('Windows 8 ' + $OSArchString)
                  }
              }
          } else {
              if ( $OSIsServerVersion ) {
                  Write-Output ('Windows Server 2008 R2 ' + $OSArchString)
              } else {
                  Write-Output ('Windows 7 OR Windows 7-7601 SP1' + $OSArchString)
              }
          }
      } else {
          Write-Output ('This version of Windows is not supported.')
      }
      

      【讨论】:

        猜你喜欢
        • 2019-10-05
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        • 2019-03-01
        • 2018-07-13
        • 2016-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多