Я запускаю эту команду / скрипт:
Exec xp_cmdshell 'powershell.exe Invoke-Command -ComputerName server01.client.local -ScriptBlock
{Get-Process myguiapp -IncludeUserName ^| Format-Table @{Expression={$_.username}}, @{Expression=
{$_.path}}, @{Expression={(((Get-Date) - $_.StartTime).ToString().Substring(0,8))}}}, @{Expression=
{$_.FileVersion.tostring()}}'
Когда я запускаю его в powershell, он работает нормально, но когда я запускаю его в SSMS, я получаю эту ошибку:
Invoke-Command : Cannot convert 'System.Object[]' to the type
'System.Management.Automation.ScriptBlock' required by
parameter 'ScriptBlock'. Specified method is not supported.
At line:1 char:67
+ ... ScriptBlock {Get-Process myguiapp -IncludeUserName | Format-Table @{E ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullyQualifiedErrorId :
CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeCommandCommand
И когда я запускаю его в SSMS без последнего параметра (для FileVersion), он отлично работает:
Exec xp_cmdshell 'powershell.exe Invoke-Command -ComputerName zmcrds01.zmclient.local -ScriptBlock
{Get-Process zmfs.gui -IncludeUserName ^| Format-Table @{Expression={$_.username}}, @{Expression=
{$_.path}}, @{Expression={(((Get-Date) - $_.StartTime).ToString().Substring(0,8))}}}'
Я работаю на SQL Server 2014 с Powershell 5.1
Как я могу это исправить?