在我们的ERP应用程序中,我们每天从生产中刷新一个测试实例数据库,通常首先关闭前端应用程序。我们目前使用从数据库服务器发出的psexec来管理远程调用,并在数据库刷新开始之前传递一些命令来关闭应用程序。
当我们转向不支持运行psexec的网络时,我正在寻找想法或帮助使用WMI或Powershell添加到SQL刷新作业以远程关闭应用程序。
通常,一旦我们在远程服务器上获得了cmd shell访问权限,我们就会发出:
SET APPSERVER=HCM83CPY
SET DATABASE=HR83CPY
echo Shutting down %DATABASE% Application Server...
echo.
ECHO Shutting down Application Server
d:
CHDIR D:\psoft\HR\%APPSERVER%\appserv
psadmin -c shutdown! -d %DATABASE%
感谢回复
答案 0 :(得分:0)
WMI可能很难配置,特别是如果您在安全的网络上。如果您想沿着这条路走下去,那么这里是some guidance。
你没有说出你们两端的操作系统是什么。如果您使用的是2008 R2或更高版本,那么您已经拥有了PowerShell 2.0。如果您可以安装3.0或4.0,您将获得更好的体验(例如,更容易set up remoting,自动加载模块)。只要您使用PowerShell 2.0,就应该看看PowerShell远程处理。启动PowerShell并运行:
help about_remoting
从那里,你将成为:
有相当多的阅读要做,我不可能在这里做正义,但为了激发你的胃口,一旦配置远程处理,你可以在源机器上发出这个:
Invoke-Command -ComputerName server1 -ScriptBlock { Get-ChildItem C:\ }
获取server1的C:的内容。您不仅限于运行PowerShell命令。例如,
Invoke-Command -ComputerName server1 -ScriptBlock { ipconfig /all }
将从server1返回详细的ipconfig。您可以使用变量(本地和远程)建立会话并运行多个命令。如果需要,您也可以使用WMI,但使用运行在WinRM上的新CIM cmdlet - 与PowerShell远程处理相同的技术 - 而不是邪恶的DCOM。尝试Get-Command *cim*
获取列表,然后使用“帮助”获取更多信息。