Windows 管理规范 - 如何获取服务器角色和连接的服务/驱动器

Windows 管理规范 - 如何获取服务器角色和连接的服务/驱动器

对于一个工作项目,我负责开发一个 Python 脚本,该脚本从在 Windows Server 2019 Standard Eval 中运行的 Windows 故障转移群集中读取角色。如果我需要提供更多信息,我可以这样做

问题:

我找不到 WMI 类/对象来获取所需信息,特别是角色和驱动器。此信息可在 Windows Server 上的 Windows 故障转移群集管理器中查看。

我尝试过的:

我已经可以收集有关群集磁盘的信息和有关群集的常见信息。我尝试在 Google 上搜索如何获取角色信息,但没有成功。我希望这里有人可以提供帮助。这是我的工作 Python 代码中的一个示例:

import wmi
wmi_MSCluster = wmi.WMI(namespace="MSCluster")
class MSCluster_Cluster(object):
def __init__(self, name, description, preferredsite, fqdn, caption, quorumpath, roles, sharedvolumesroot, status):
    self.name = name
    self.description = description
    self.preferredsite = preferredsite
    self.fqdn = fqdn
    self.caption = caption
    self.quorumpath = quorumpath
    self.roles = roles
    self.sharedvolumesroot = sharedvolumesroot
    self.status = status

wmi_mscluster = wmi.WMI(moniker='//./root/MSCluster:MSCluster_Cluster')
for MScluster in wmi_mscluster():
    ClusterObject: MSCluster_Cluster = MSCluster_Cluster(MScluster.Name, MScluster.Description,
                                                             MScluster.PreferredSite, MScluster.Fqdn, MScluster.Caption,
                                                             MScluster.QuorumPath, MScluster.Roles,
                                                             MScluster.SharedVolumesRoot, MScluster.Status)

在 WMI 中的哪里可以获取有关服务器角色以及与该角色连接的服务/驱动器的信息。我找不到合适的地方查找。

答案1

有许多工具可以向您显示对象模型。例如 Microsoft WMIExplorer.exe- https://devblogs.microsoft.com/scripting/weekend-scripter-announcing-wmi-explorer-2-0 或者 https://archive.codeplex.com/?p=wmie

有此的 PowerShell 版本。

您只需要知道要询问的命名空间。例如,如果我使用 VBScript 来跟踪服务器角色,我只需执行以下操作:

# cscript wmi-server-roles-and-features.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRoleFeatures = objWMIService.ExecQuery ("Select * from Win32_ServerFeature")
For Each objRoleFeatures in colRoleFeatures
    wscript.echo objRoleFeatures.Name
Next

... 我从事自动化/脚本编写工作多年,但从未使用过 Python。所以,我帮不了你。

在 PowerShell 中执行此操作很直接,因为它有特定的本机 cmdlet。

安装或卸载角色、角色服务或功能

以及诸如...之类的东西

Get-WmiObject -namespace "root\mscluster" ...

或者 ...

Get-WmiObject -Query "select GroupComponent from mscluster_nodetoactivegroup" -namespace root\mscluster -computername ....

相关内容