[英]Running admin process with user interface from a windows-service
我们想开发一个 Windows 10 设备,其中嵌入了我们的软件套件。 此设备将有两个帐户:管理员帐户和受限帐户。 最终用户(位于世界各地)将使用受限帐户并且不知道管理员密码。
我们面临的问题是我们无法运行具有 gui 和 admin 权限的软件(即更新我们的软件套件的设置)。
直到现在我们尝试过:
是否有任何解决方法可以通过 Windows 服务的用户界面启动管理进程? 我知道我们可以使用具有管理员权限的服务与非管理员 gui 进程(使用命名管道、mqtt 或...)进行通信,但这对于 installshield(或 nsis 或...)设置是不可行的。
或者我们的问题还有其他解决方案吗?
感谢您的任何答复。
Team Viewer 有一个 API 可以解决所有这些问题。 它还允许您选择必须向用户提供哪些凭据。 您可以很好地使用它来打开您的用户帐户,然后在安装 TeamViewer API 和所有准备好权限集的东西之后使用它。 你可以建立一个像样的连接。
使用团队查看器 API,您可以从 cmd 类型控制您的 cmd: start /pathtoteamviewer.exe
然后,将访问您要使用的 PC 的远程主机将告诉用户输入用户 PC 的 ID 和密码。 而 Kaboom 你已经轻松完成了你想要的。
如果您在 TeamViewer 中启用远程连接的密码功能,这也将有助于您将项目带到下一个级别。
我希望这有帮助。
我已经理解你的问题。 回到我编程的那一天,我为自己制定了一个解决方案;
创建一个 Powershell 脚本来从你的网站下载东西(一个 Update.txt 文件); 请参阅: https : //blog.jourdant.me/post/3-ways-to-download-files-with-powershell
$url = " http://mirror.internode.on.net/pub/test/Update.txt "
$output = "$PSScriptRoot\\Update.txt"
$start_time = 获取日期
Invoke-WebRequest -Uri $url -OutFile $output
写输出“所用时间:$((Get-Date).Subtract($start_time).Seconds) second(s)”
在该文件中写入版本号,并且在您创建的程序中也有一个 version.txt,如果它不等于请用户更新的 Update.txt,则通过简单的逻辑比较它们。
在用户出现“是/否”对话框后,再次使用 Powershell 脚本下载更新安装程序。
使用管理员权限运行更新程序请参阅: 如何在 C# 中以管理员模式启动进程
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.