![为什么有些管理员不喜欢从服务器共享执行 exe 文件?](https://linux22.com/image/521276/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%89%E4%BA%9B%E7%AE%A1%E7%90%86%E5%91%98%E4%B8%8D%E5%96%9C%E6%AC%A2%E4%BB%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%B1%E4%BA%AB%E6%89%A7%E8%A1%8C%20exe%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我分发了一个面向开发人员的实用程序,该实用程序旨在驻留在服务器共享上,并从本地 PC 或终端服务/Citrix 会话上的服务器执行。它不需要任何管理员权限。除了将其拖放到服务器共享上之外,没有其他安装过程。它是数字签名的。
我听说有些 IT 部门不喜欢以这种方式在服务器共享中安装 exes。我能做些什么来帮助向 IT 部门解释我的实用程序是无害的。
添加
我是这个工具的开发者,自动 FE 更新程序,并且特意设计为不需要管理员权限。它是一个独立的 exe,除了开发人员使用该工具创建的几个配置 (INI) 文件外,没有其他安装依赖项。
用户只需短暂执行此工具即可检查服务器上的 Access 前端数据库和相关文件是否有任何更新。使用该工具的开发人员可能会在更新设置时运行它两到五分钟。
答案1
以下是我为什么不喜欢讨厌通过网络启动的可执行文件:
- 客户端锁定会阻止工具更新,直到没有人执行该文件为止。从用户的角度来看,这消除了按需更新的概念
- 在某些情况下,当客户端断网或进程死亡导致出现悬空锁时,服务器必须重新启动
- 额外的网络带宽开销
- 客户端需要额外的加载时间,这通常会导致网络速度变慢
编辑:
您添加的信息使情况变得更糟!现在还有其他外部依赖项,进一步增加了失败的风险。
编辑2
无论进程中发生了什么,最好的做法是从本地磁盘启动它们。在超过 15 年的 IT 生涯中,我从未见过任何进程通过网络共享启动的好处大于我列出的风险。(我会在标准 Windows 工作站/文件服务器环境中进行限定;我没有 *nix 经验来做出这种说法)。
至于您对标准 Windows API 的调用,一切都很好。是的,它们本身相当稳定。将 Access 纳入其中可以带来更多好处。但该过程仍在通过网络启动,我和其他人已经提到的风险仍然存在。小过程仍然是一个过程,它仍然容易受到不稳定的影响如果可以通过将二进制文件本地移动到客户端来避免这种情况,那么当一个客户端进程出现故障时,关闭整个服务器根本不值得。
是的,较小的进程具有较短的生命周期,因此发生故障的风险较小,因此导致我们所描述的不良后果的风险也较小。不过,我的管理理念相当保守,因此我不希望在我的环境中看到这种情况。也许在您的环境中这种情况没问题,我不知道。
答案2
正如其他人所列出的,管理员不希望在网络上拥有可执行文件的原因有很多。
What can I do to help explain to IT departments that my utility is benign
没什么。他们的政策是既定的,你作为局外人无法控制,除非公司内部有足够重要的人需求(或者真的您希望在网络上安装和使用您的软件。
答案3
不管我对前任有何感觉咳嗽,我不想看到她被处决,而且我是一名管理员。
话虽如此,您并没有给我们提供太多背景信息,所以我必须做一些假设。
我无法具体告诉你为什么有些管理员不喜欢在他们的共享中安装 .exe。例如,当您从服务器共享启动可执行文件时,可能会出现安装问题。您还做了一个相当大的假设,即您的可执行文件不需要任何管理员权限运行。你怎么知道?
我会告诉你,如果你从事程序销售业务,至少在 Windows 环境中,以 msi 格式分发程序对管理员来说更友好。我无法想象他们会对在服务器共享上放置 msi 感到不安。
更新后添加:
Tony,如果你还没有发现的话,随着时间的推移,你会发现越来越多的环境需要被锁定。无论是否合法,在当今时代这样做都是有意义的。虽然花在使你的程序尽可能适应这种情况上的时间可能很多,但我相信从长远来看,这将带来巨大的好处(而试图让系统管理员置身事外则不会)。
系统管理员的工作不是阻止人们工作。恰恰相反。如果您希望在技术支持电话的另一端结交某个朋友,那么这个人就是试图让您的软件正常运行的系统管理员。您希望他/她能够更轻松地部署和更新您的软件。
答案4
就我个人而言,我不允许“远程”exe,因为如果我允许,用户将能够下载任何不需要安装程序的东西并在网络上运行。从安全角度来看,这很不酷 - 我只允许应用程序从“C”执行,并且用户对“C”具有读取和执行权限。