问题标签 [restartmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
288 浏览

vbscript - VBScript for Windows 重启管理器?

你好,

是否有用于重新启动管理器的 VBScript 代码(请参阅此处的链接)代码以使 Microsoft Word 关闭并重新打开?

我以 Microsoft Word 为例。我只是想将消息发送到RestartManager以关闭特定的应用程序。

0 投票
1 回答
434 浏览

msdn - Windows 重启管理器的 RmGetList 返回 ERROR_ACCESS_DENIED,为什么?

我有启动Restart Manager会话的代码,然后用几个文件调用 RmRegisterResources ,当它调用RmGetList,返回 ERROR_ACCESS_DENIED (5) ......但是如果我添加一个 Sleep 50ms 然后再试一次......它可以工作... 怎么来的?任何想法?除了睡眠还有什么可以成功调用 RmGetList。

0 投票
0 回答
375 浏览

windows - Windows 重新启动管理器看不到命令​​提示符打开的文件夹在使用中

使用Restart Manager时,如果我在命令提示符窗口中添加当前作为当前工作目录打开的RmRegisterResources的路径,则RmGetList不会返回它,而是返回有关其他锁定文件的信息(例如,加载的可执行文件WinDBG)。

为什么呢?

如果我尝试删除此文件夹,我会得到一个error 32: ERROR_SHARING_VIOLATION,这就是我使用重启管理器来识别阻止我删除文件和文件夹的进程的原因。

0 投票
0 回答
146 浏览

c++ - 会不会是 Windows 重新启动管理器回调 API 中存在错误?

当我正在调查一个只能在 Windows 8 上重现的奇怪崩溃时,我发现EBX寄存器没有从对RmShutdown或的调用中恢复RmRestart。我发现在 Windows 8 上运行的第一个区别是,它ECX在这些功能的 win7 版本使用时使用(并因此恢复)EBX。(我没有仔细调查其他 Windows 版本,只是注意到该错误不会在 Vista 上重现。)

当我进一步挖掘时,我注意到对 的调用RM_WRITE_STATUS_CALLBACK并没有通过从中弹出参数来恢复堆栈,因为调用者似乎也没有这样做。因此,当RstrtMgr!CRestartManager::ShutdownApplications调用RstrtMgr!_EH_epilog3错误的寄存器值时,会从堆栈中弹出。但至少,ESP正确恢复并且RmShutdown正确重置它使用的寄存器的结束,包括EBP在调用和结束之间不使用的寄存器CRestartManager::ShutdownApplications......

所以在 Windows 7 上,一切都很好......但是 Windows 8 版本,因为ECX使用而不是EBXEBX没有恢复,如果调用代码依赖它...... BOOM !!!

为了解决这个问题,我只是将回调函数更改为使用__stdcall(这意味着我不能使用真实RM_WRITE_STATUS_CALLBACK类型,需要将其类型转换为 API 期望的类型,或者使用GetProcAddress在 XP 上运行相同代码所需的技术反正)。

我是否遗漏了什么,或者这真的是 API 的问题吗?EDI和怎么样ESI?即使在 Windows 7 上,它们也没有正确恢复。在我的情况下,它们没有被使用,所以没关系,但我不敢相信这些函数的调用者都不需要正确恢复这些寄存器......对吗?

我想我会为此向微软提交一个错误......除非有人能提出更好的解释......

0 投票
2 回答
3821 浏览

wix - Wix 在卸载/升级时停止服务:防止“重新启动弹出窗口”(文件使用中的情况)

我遇到了问题,卸载(或升级)时,重新启动管理器抱怨文件正在使用中,因此强制重新启动:

RESTART MANAGER 抱怨的服务是基于 java 的服务。该服务(这里称为 myservice.exe)递归地启动 java 子进程:

  myservice.exe --run
   ↳ javaw.exe --someArguments
      ↳ someother.exe --someArguments
         ↳ javaw.exe --someMoreArguments

服务定义的 wix 片段:

现在,有趣的部分:

  • 该服务可以在安装时启动

卸载时:

  • 如果不运行,它将被删除
  • 如果正在运行,并且只是同意重新启动
    • 它确实在大约 2-3 秒内停止(我猜是通过 StopServices 操作)
    • 并成功删除(通过 RemoveServices 操作)

到目前为止,Service* Tables 中的条目对我来说似乎很好。


因此,分解所有内容: 似乎重新启动管理器没有识别出 java 进程是子进程并且将被 StopServices 操作停止。

我在这里发现了一些类似的问题: https
://www.mail-archive.com/wix-users@lists.sourceforge.net/msg57924.html Wix 安装程序问题:为什么 RestartManager 将服务标记为 RMCritical 而不是 RMService

提前感谢您为解决此问题提供的任何帮助!

0 投票
1 回答
1677 浏览

wcf - RestartManager 导致工作者角色重新启动

最近遇到了 Azure Worker Role 服务几乎每天都会重启的问题。这对我们来说是一个大问题,因为我们的服务需要大约 20 分钟来初始化,而这些重启可能会导致停机。
我通过 RDP 登录到实例并查看事件日志以找出导致这些看似随机重启的原因。我遇到了一些总是在重新启动之前的条目:

在此处输入图像描述

MsiInstaller 安装的服务是“Windows Azure Remote Forwarder”。我假设已安装此服务,因为我们在工作人员角色配置中启用了远程桌面。有趣的是,我们已经启用了 RDP 很长一段时间(大约 2 年),但随机重启只是在 4 周前发生。
但是有几件事我不太明白:

  1. 为什么此服务安装或更新如此频繁?
  2. 我知道 RestartManager 负责安装/更新服务,而无需通过停止其他阻止文件的服务来重新启动机器。
    我们的服务是否有可能阻止一些重要文件?
    我们使用本地磁盘存储临时文件会不会是个问题?
  3. 是否可以告诉 RestartManager 不理会我们的 Worker Role 服务?
  4. 这只是巧合吗?重启是由我们的服务以某种方式触发的,尽管没有日志表明我们这边有错误?

任何帮助是极大的赞赏。

谢谢,
卡斯滕

0 投票
1 回答
1641 浏览

wix - 使用 Windows 安装程序重新启动管理器行为

使用 Windows 安装程序 4.0 和重新启动管理器,是否可以安全地假设“重新启动管理器”将负责关闭应用程序,因此不需要任何类型的自定义操作来处理保存文件的进程的关闭,这意味着要更新?

是否存在“重新启动管理器”可能无法关闭应用程序的例外情况?当然,我了解当强制执行 DisableAutomaticApplicationShutdown 等策略时,Restart Manager 会被禁用。

要关闭的进程是否必须满足某些条件才能被 Restart Manager 关闭?我正在默默地运行我的 msi 包。

如果 msi 包请求重新启动,即使启用了“重新启动管理器”,我该如何推断?

0 投票
0 回答
127 浏览

wix - Wix 尝试在 .Net 安装后重新启动之前关闭 Wix 应用程序

我有一个 WIX 设置,它按顺序执行以下操作:

  1. 安装 Windows 更新
  2. 重新开始
  3. 继续 蜡应用
  4. 安装 .Net 4.6.1
  5. 提示“此应用程序正在停止系统重新启动”,并带有重新启动/取消选项。想要在没有用户交互的情况下重新启动后运行 7
  6. 无提示重启
  7. 安装

控制中心

无论如何重新启动会关闭 Wix 应用程序,并且不会在重新启动后继续我的应用程序。Cancels 取消应用程序并显示失败。

  1. /passive(重新启动时没有 UI,但有提示)

  2. /q(以提示和其他我不想要的 UI 交互重新启动)

  3. /norestart /q(不重新启动系统)

以下是我的节点:

  • 项目清单

< ExePackage Id="NetFx461Web" DisplayName="Microsoft .NET Framework 4.6.1" Compressed="no" Cache="no" PerMachine="yes" Permanent="yes" Vital="yes" Protocol="netfx4" SourceFile= "..\WinUpdates\Media\NDP461-KB3102436-x86-x64-AllOS-ENU.exe" InstallCommand="/passive /chainingpackage ControlCenter" DetectCondition="!(wix.NetFx461WebDetectCondition)" InstallCondition="!(wix.NetFx461WebInstallCondition) "> < ExitCode Behavior="forceReboot" Value="1641" /> < ExitCode Behavior="forceReboot" Value="3010" />

也使用了以下但没有用

< 属性 ID="MSIRESTARTMANAGERCONTROL" 值="禁用"/>

如果这不是正确的论坛,请告诉我

0 投票
1 回答
829 浏览

winapi - 当使用 Ez 文件锁定器锁定文件但与另一个文件锁定实用程序一起使用时,RmGetList() API 失败

我在使用 Restart Manager API 时遇到了一个奇怪的问题:RmGetlist()。为了模拟文件锁定场景,我正在使用以下第 3 方文件锁定实用程序:

Ez 文件柜 - http://www.xoslab.com/efl.html -

文件柜 http://www.jensscheffler.de/filelocker

这里奇怪的问题是,这两个实用程序都锁定了某个文件,但是,RMGetList() 使用第一个文件锁定实用程序(Ez File lock)失败并出现访问被拒绝错误(5),而它与第二个文件锁定实用程序一起使用。

这里可能有什么问题?为什么 RmGetList() 会在一个文件锁定实用程序上失败,但在另一个文件锁定实用程序上工作?

以下是正在使用的代码:

0 投票
1 回答
966 浏览

inno-setup - 在卸载期间使用 RestartManager (Inno Setup)

在 Inno Setup 中,可以使用CloseApplication启用 Windows 重新启动管理器,并检查正在运行的实例。但是,这不适用于卸载。安装程序会删除所有未使用的文件,并显示一条消息“并非所有文件都可以删除,请手动删除它们”。

检查在卸载运行期间似乎工作的正在运行的实例的唯一方法是使用 AppMutex。

有没有办法在卸载过程中启用重启管理器?