【问题标题】:Powershell to return the value only for Cluster ResourcePowershell 仅返回集群资源的值
【发布时间】:2013-01-25 20:48:56
【问题描述】:

我正在尝试使用 powershell 评估集群服务器上 SQL 代理设置的 powershell 命令值。我对 Powershell 非常陌生,但我们想设置一个监视器以确保我们所有的 Windows Server 2008 r2 集群都具有正确的设置。

我确实通过在 PS 提示符下使用以下内容找到了有问题的设置...

cluster resource 'SQL Server Agent' /prop : RestartAction

问题是我希望它只返回以下输出中“值”列下的数字(1 或 1(0x1) 都可以)。

Listing properties for 'SQL Server Agent':

T  Resource             Name                           Value
-- -------------------- ------------------------------ -----------------------
D  SQL Server Agent     RestartAction                  1 (0x1)

因为这将是一个监视器,所以我需要能够评估值是否 = 1,然后在不是时报告。如果我可以让 powershell 只返回简单的值,我可以在 T-SQL 中完成其余的设置监视器。

我一直在互联网上寻找答案,但一切都与 cmdlet 和函数有关,我想要的只是要返回的 windows 服务器值。也许它并不是那么简单,但我想在进行漫长的脚本冒险之前检查一下。

感谢任何帮助,谢谢!

【问题讨论】:

    标签: powershell windows-server-2008-r2 sql-server-agent


    【解决方案1】:

    您可以使用 FailoverClusters 模块吗?

    (Get-ClusterResource -Cluster Cluster1 -Name 'SQL Server Agent').RestartAction
    

    如果不是,则字符串解析:

    PS> $clus = cluster /cluster:cluster1 resource 'SQL Server Agent' /prop:RestartAction
    PS> $clus[10]
    D  SQL Server Agent     RestartAction                  1 (0x1)    
    
    PS> $clus[10] -replace '^.+\((.+)\)$','$1'
    0x1
    

    【讨论】:

      【解决方案2】:

      如果无法加载failoverclusters模块且无需解析,可以使用WMI:

      gwmi -ComputerName cluster1 -Authentication PacketPrivacy -Namespace "root\mscluster" -Class MSCluster_Resource -Filter "name LIKE 'SQL Server Agent%'" |
      select -ExpandProperty RestartAction
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-26
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 2023-01-27
        • 2015-09-02
        • 1970-01-01
        • 2017-09-15
        相关资源
        最近更新 更多