Powershell远程执行SQL Server安装msi失败

时间:2014-10-23 07:37:49

标签: sql-server powershell chef powershell-remoting

我正在尝试在远程虚拟机上使用Powershell远程调用“厨师本地模式”。

我使用的是Powershell代码:invoke-command -session $session -ScriptBlock{}

调用Chef recipe的代码在远程VM远程桌面Powershell窗口中正常工作。

但它始终无法进入该配方的“调用msi”步骤。(顺便说一下,我正在使用官方厨师SQL Server配方)。

错误日志没有显示任何内容,但它看起来就像我在远程VM上本地安装时手动强制关闭SQL Server安装应用程序的弹出窗口。

关于新窗口spawn或其他东西的Powershell远程控制有限制吗?

我有类似的问题直接使用Powershell脚本调用MSI,我必须首先安排Windows任务并立即启动它。

2 个答案:

答案 0 :(得分:0)

PowerShell远程处理受到严格限制,请参阅Quota Management for Remote Shells,最重要的是MaxMemoryPerShellMB,默认值为1GB。即使非预期的SQL安装正确,由于此约束,MSI可能会耗尽内存。可以修改默认值,请参阅Learn How to Configure PowerShell Memory

但很可能您无法正常运行无人参与的安装。远程会话不允许与桌面交互,所以不,它们不能生成窗口。阅读Install SQL Server 2014 from the Command PromptInstall SQL Server 2014 Using a Configuration File。只有在本地验证无人参与安装正确后,才尝试远程运行它。

我不知道“官方SQL Server”的配方是做什么的,但我不相信任何此类配方。我会确保运行正确的无人值守安装并从中构建自己的配方。

答案 1 :(得分:0)

正如我在评论中提到的,在应用Microsoft的Hotfix之后,我仍然遇到同样的问题。而且,我再次使用schedule job来执行安装程序。这是Vagrant Core 1.6中可接受的方法

  

插件中最困难的部分是提升的跑步者,它接受任何命令并通过计划任务运行它们,而不是直接通过当前的WinRM shell。由于Windows权限模型,需要整个rigamarole。您可能正在以管理员身份运行WinRM shell,但它与在本地运行管理员不同。这会导致尝试在Windows客户机上安装软件的用户遇到各种意外错误。

通过here

来自Vagrant的实施代码是here