是否可以通过 Windows Server 2016 Nano 上的 powershell 命令获取 windows 版本?

是否可以通过 Windows Server 2016 Nano 上的 powershell 命令获取 windows 版本?

我正在使用 Windows Server 2016 nano 的最新预览版。

使用远程 powershell 会话,我通过 连接到远程系统Enter-PSSession,然后我尝试使用最常用的技术来检查 Windows 版本,因为完整的 .Net 框架不可用。此外,Get-WmiObject cmdlet 不可用。

我可以看到一些信息的唯一方法是使用这个非 powershell 命令 DISM:

Dism /Online /Get-Feature

这给了我这个输出以及已安装功能的列表:

Deployment Image Servicing and Management tool
Version: 10.0.10514.0

Image Version: 10.0.10514.0

Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.10514.0

从高于我的 Windows 10 桌面的 10514 值中,我可以对内核构建有所了解,有趣的是,Windows 10 桌面具有相同的“Microsoft-Windows-Foundation-Package”,但内核构建编号较低。

是否有人找到可以编写的 cmdlet 或某些 powershell 函数或别名,它们可以以某种不太可能中断的方式帮我检测我的 powershell 脚本是否正在 nano 服务器上运行,或者任何可以实际打印出“Windows Server 2016 Nano Server”的命令?

更新:这更接近我想要的,但有点黑客攻击:

  Get-Item -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion'

更新 2:Get-WmiObject 不存在,尽管以下操作有效,但它仅报告内核版本:

[System.Environment]::OSVersion.Version

上面将报告版本 10514,而 Windows 10 客户端操作系统 RTM 目前报告 10240,但上面实际上是一个“内核构建”,而不是操作系统产品/版本/服务包级别。

答案1

您可以尝试以下操作,我没有 nano 服务器可以尝试。select如果它为您提供了其他内容,请将其删除,然后查看您想要的内容是否存储在 Server 2016 Nano 中的其他属性下

Get-CIMInstance -ClassName Win32_OperatingSystem -Property * | select caption

在真实的 Nano 实例上测试时,不需要 -session 参数,但如果您将来需要它,可以使用 -session 的变体:

$cuser = "Your username"
$cservername = "Your Servername"
$csession = New-CimSession –Credential $cuser –ComputerName $cservername
Get-CIMInstance –session $csession -ClassName Win32_OperatingSystem -Property * | select caption

答案2

这只是您编辑的扩展,但通过仅获取 ProductName 来清理输出

$(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' ProductName).ProductName

答案3

Microsoft 方式(也称为 Cert 方式)是使用Get-WindowsEdition -Online

有关该命令及其所有选项的更多信息,请访问这里!

答案4

PowerShell 管理命令提示符并输入:

 Get-WmiObject -Class Win32_Operatingsystem

返回:

Build Number and Version

相关内容