远程Powershell访问被拒绝

问题描述 投票:2回答:1

我有一个带有一些表和触发器的SQL Server数据库,触发器将在ServerA上创建FolderA或在ServerB上创建FolderB,这是我在ServerA的触发器中传递的命令:

SET @folder = 'powershell.exe  invoke-command -computername ServerA { powershell.exe  -NoProfile -ExecutionPolicy Bypass  -File C:\FolderScript\FolderA.ps1 "' +@folderName+'" }'

EXEC master.dbo.xp_cmdshell @folder

我有一个间歇性的问题,它会停止工作几天,然后我必须从ServerA上的PS手动运行它。

因为它是间歇性的,那么我们可以排除防火墙,权限,PowerShell启用远程。我有一个基于Web的应用程序(asp.net),用户从他们的机器运行它并连接到触发器所在的SQL Server数据库。

是否有某种会话需要保持开放以防止访问被拒绝错误?我想不出任何可能导致这个问题的事情?

sql-server powershell
1个回答
0
投票

我怀疑问题出在您的命令中发生的引用:

SET @folder = 'powershell.exe -Command "Invoke-Command -ComputerName ServerA { & ''C:\FolderScript\FolderA.ps1'' ' + @folderName + ' }"'

这应该足以解决您的问题。您不需要重复调​​用powershell.exe,因为您可以使用调用运算符(&)本机调用脚本。

© www.soinside.com 2019 - 2024. All rights reserved.