【问题标题】:Shut down application remotely before database refresh在数据库刷新之前远程关闭应用程序
【发布时间】:2013-10-26 21:09:25
【问题描述】:

在我们的 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%

感谢回复

【问题讨论】:

    标签: sql-server powershell wmi


    【解决方案1】:

    WMI 配置起来很麻烦,尤其是在您使用安全网络的情况下。如果你想走那条路,这里是some guidance

    你没有说你在每一端都有什么操作系统。如果您使用的是 2008 R2 或更高版本,则您已经拥有 PowerShell 2.0。如果可以安装 3.0 或 4.0,您将获得更好的体验(例如更容易set up remoting,自动加载模块)。只要您使用的是 PowerShell 2.0,就应该了解一下 PowerShell 远程处理。启动 powershell 并运行:

    help about_remoting
    

    从那里,您将被带到:

    • about_PSSessions
    • about_Remote_Disconnected_Sessions
    • about_Remote_Requirements
    • about_Remote_FAQ
    • about_Remote_TroubleShooting
    • about_Remote_Variables

    有很多阅读工作要做,我不可能在这里做到公正,但为了激发您的胃口,一旦配置了远程处理,您就可以在源计算机上发出这个:

    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* 获取列表,然后使用“帮助”获取更多信息。

    【讨论】:

    • 感谢您的反馈,好评!我将花时间首先使用 Powershell,看看它会把我带到哪里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 2017-02-19
    • 2013-12-17
    • 1970-01-01
    • 2018-03-27
    • 2013-05-18
    相关资源
    最近更新 更多