我们有一个内部应用程序F趣s,它是由10-30个用户使用Citrix.所有用户都有自己的实例。exe文件驻留在由Citrix负载平衡的Windows2003 R2的多个服务器上。当新版本到达时,必须更改exe文件。如果只有少数几个用户,它过去是用来动态更改exe文件的。然后,新用户获得了新版本,而现有用户必须重新启动才能获得该版本。但是对于许多用户来说,Windows可能会以某种方式锁定exe文件。那么,我们必须在更改之前驱逐所有用户。
一个知道原因,甚至更好地解决问题的人?因为我们不想一直使用远程桌面来访问它,所以我们有一些文件到目录中,用于exe。这意味着什么吗?
发布于 2009-09-03 19:27:29
使用托管共享文件的服务器上的命令"net file“查看用户打开了什么文件。
使用同一框中的命令"net file /close“强制第一个命令返回的任何会话都要关闭。
然后您将能够更新该文件。
C:\Users\tf>net file /?
The syntax of this command is:
NET FILE
[id [/CLOSE]]或者使用计算机管理中的“共享”部分来实现相同的目标。
发布于 2009-09-03 20:02:24
您可以使用手柄来查找谁在锁定文件。甚至移除锁。唉,这不是一个安全的行动。可能运行应用程序的用户将动态加载您刚刚替换为不兼容版本的dll。我不认为它与共享有关(句柄实用程序会告诉您它),我也不知道有什么解决方案:-(。
发布于 2009-09-03 20:48:10
看看GNU Emacs做了什么。
启动时,它会查找更新的版本;emacs-版本.exe,其中的版本比当前版本更新。然后,他们安装了emacs.exe和emacs-版本的.exe,只有当后者无法安装时才会抱怨。
对于内部内容,如果您没有版本,只需考虑查找main-1.exe,失败main-2.exe等等,只要在安装时创建一个新文件即可。make main.exe搜索编号最高的版本.
如果您愿意,安装程序还可以删除旧的main-N.exe文件。
https://serverfault.com/questions/62142
复制相似问题