是否可以使用 samba 找到远程 PC 运行的 Windows 版本?

Kri*_*s_R -1 windows samba

由于微软明年 4 月停止支持 Windows XP,我被要求检查哪些 PC 仍在运行比 Windows 7 旧的 Windows 版本。是否可以通过一些 Samba 查询来找出客户端操作系统的版本?

Rya*_*ies 8

当你只有一磅碎牛肉时,你问我们如何做猪排。IMO,没有充分的理由为此使用 Samba。

如果它们位于 AD 域中,则客户端已将其操作系统版本存储在其计算机对象的 OperatingSystem 属性中。使用 ActiveDirectory Powershell 模块:

Get-ADComputer -Filter * -Properties OperatingSystem | Select Name, OperatingSystem
Run Code Online (Sandbox Code Playgroud)

如果它们不在 AD 域中,则使用以下内容分别检查每台计算机:

$Creds = Get-Credential
Foreach($_ In Get-Content  .\servers.txt)
{
    Get-WMIObject Win32_OperatingSystem -ComputerName $_ -Credential $Creds | Select PSComputerName, Caption
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您所在的企业安装了更多高端管理工具,则 System Center Configuration Manager 之类的软件会立即告诉您这些信息。

实际上任何其他监控或配置管理系统都将如此。

除了您要使用的任何东西

如果您出于某种原因需要从 Linux 执行此操作,我建议使用 wmic,我最后听说它有一个 RPM 包:

rpm -ivh wmic-4.0.0tp4-0.x86_64.rpm

wmic -U [domain/]adminuser%password //host "select Caption from Win32_OperatingSystem"
Run Code Online (Sandbox Code Playgroud)

  • 首先不包括这样的细节就是为什么你的问题被否决了。尽管如此,我还是尝试猜测并包含了*三种*可能的解决方案,其中只有一种假设是 AD 域,而另外两种是基于 Linux 的。哦,不能全部赢。尽管如此,我还是希望 Jure1873 回来并将他们的评论变成答案。我会赞成它,你可以接受它。 (2认同)