为了更新我们的软件,我们使用了具有更新级别和不同更新源的 VB6 更新程序。它将必要的文件从更新源复制到本地目标 (C:\program files\company\product)。
VB6 程序只能使用服务助手(srvany 或类似的)作为服务运行,并且没有足够的权限在给定文件夹中更改或添加新文件。但即使是 .NET 程序也没有必要的权限来执行此操作,前提是您在服务上设置了管理员凭据。
如果客户端不使用管理员凭据设置服务,我们如何使用服务或服务调用的程序来更改给定文件夹中的文件,这意味着它具有管理权限。
由于给定的更新级别(具有不同程序和报告版本的不同用户),MSI/MSP 是不可能的。
我们试图从具有提升的 C#.NET 服务调用外部程序,但没有办法......我们检查了清单文件的一些提示和技巧,或者考虑制作一个可能具有管理权限的 COM 对象,但我认为这是错误的方法。
另一种可能性是通过给予“最高特权”来创建计划任务。但这行得通吗?如果任务应该在登录后运行并且不同的用户可以使用这台计算机,你应该为每个用户定义一个任务......我们不知道客户端计算机上的每个登录,因为它们经常变化。
有人可以帮忙吗?