powershell命令wmiobject不提供输出

时间:2018-12-07 14:45:29

标签: sql powershell

我正在通过SQL运行powershell命令,请找到以下代码

     declare @sql varchar(200)

set @sql = 'powershell.exe Get-WmiObject -Class MSFT_PhysicalDisk -Namespace root\Microsoft\Windows\Storage| select FriendlyName'


EXEC xp_cmdshell @sql

它给了我输出

 output
'select' is not recognized as an internal or external command,
operable program or batch file.
NULL

如果我删除select而不是powershell命令正在工作,为什么会这样

1 个答案:

答案 0 :(得分:1)

您需要将引号放在这样的引号中:

declare @sql varchar(200)
set @sql = 'powershell.exe "Get-WmiObject -Class MSFT_PhysicalDisk -Namespace root\Microsoft\Windows\Storage| select FriendlyName"'
EXEC xp_cmdshell @sql

现在,它基本上正在运行两个单独的命令:

powershell.exe Get-WmiObject -Class MSFT_PhysicalDisk -Namespace root\Microsoft\Windows\Storage|

然后

select| FriendlyName

因此第二个命令无效并导致错误,引号将它们组合在一起以使其处理为一个。