代码之家  ›  专栏  ›  技术社区  ›  Ariel

WMI:尝试检索“SqlServerAlias”作用域时“无效命名空间”

wmi
  •  0
  • Ariel  · 技术社区  · 15 年前

    以下代码引发ManagementException:“无效命名空间”。知道吗?

    private ManagementClass GetManagementObject()
    {
        const String client = @"localhost";
        const String sqlServerAliasScope = @"SqlServerAlias";
        const String aliasScopePart = @"\root\Microsoft\SqlServer\ComputerManagement10";
    
        ManagementScope scope = new ManagementScope(@"\\" + client + aliasScopePart);
        ManagementClass clientAlias =
            new ManagementClass(scope, new ManagementPath(sqlServerAliasScope), null);
        clientAlias.Get(); // *** THROWS HERE ***
    
        return clientAlias;
    }
    

    此PS脚本也会失败,如果上面的脚本最终失败,则应该:

    Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlServerAlias
    

    我是不是错过了安装服务器的机会?

    2 回复  |  直到 15 年前
        1
  •  1
  •   SiegeX    15 年前

    这对我很有用:

    Get-WmiObject -computer SERVER -namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlServerAlias
    

    返回:

    __GENUS          : 2
    
    __CLASS          : SqlServerAlias
    
    __SUPERCLASS     :
    
    __DYNASTY        : SqlServerAlias
    
    __RELPATH        : SqlServerAlias.AliasName="SQLALIAS"
    
    __PROPERTY_COUNT : 4
    
    __DERIVATION     : {}
    
    __SERVER         : SERVER
    
    __NAMESPACE      : root\Microsoft\SqlServer\ComputerManagement10
    
    __PATH           : 
    
    \\SERVER\root\Microsoft\SqlServer\ComputerManagement10:SqlServerAlias.AliasName="SQLALIAS"
    
    AliasName        : SQLALIAS
    
    ConnectionString : 7001
    
    ProtocolName     : tcp
    
    ServerName       : SERVER\SQLALIAS
    
        2
  •  0
  •   SiegeX    15 年前

    您正在查询远程服务器吗?

    get-wmiobject -computername SERVER -list -namespace "root\Microsoft\SqlServer\ServerEvents\INSTANCE" -Class SQLServerAlias
    

    我可以成功地运行它(没有无效的命名空间错误),但不会返回任何结果,尽管我没有配置任何别名。