我正在尝试在PowerShell中运行一个简单的Get-WmiObject调用。
Get-WmiObject -computerName $srv -namespace root\Microsoft\SqlServer\ComputerManagement -class SqlService
在具有远程服务器管理员权限的帐户下运行时,我会收到否响应。该命令完成,但没有显示数据。在没有服务器权限的帐户下运行此命令时,我收到“拒绝访问”消息。
当我直接在远程服务器上运行它时,我得到“无效的命名空间”,但服务器肯定是我们的SQL Server 2008。
为什么这种脚本没有按预期返回对象?
答案 0 :(得分:3)
尝试
Get-WmiObject -computerName $srv -namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlService
在我拥有的几台机器上,命名空间是 ComputerManagement10 。
BTW,以防万一,您需要找到命名空间名称:
Get-WmiObject -ComputerName $srv -NameSpace root\Microsoft\SQLServer -Class "__NAMESPACE" | Select Name
上面的命令将告诉您正确的命名空间名称。
答案 1 :(得分:0)
您是否使用get-service -computername $srv -include “*sql*”
检查了服务?
我还会检查该类是否存在于:
Get-WmiObject -Namespace root\Microsoft\SqlServer\ComputerManagement10 -List