c# - 使用用户上下文 GUI 在 C# WPF 应用程序中运行管理后台工作
问题描述
我对整个 WPF/UAC 的东西并没有真正的经验,因为我主要使用 PowerShell 和 AutoIt 编写脚本......但现在我正在为拥有超过 100.000 台设备的企业环境开发一个应用程序,它可以执行一些管理员权限工作在后台向用户显示一个 GUI(允许他执行一些操作)。
它应该如何工作:
- 应用程序安装程序通过软件分发以系统权限运行,它安装 WPF 应用程序,为其创建一个任务计划程序条目(每天运行)和一个开始菜单快捷方式。
- 然后应用程序由调度程序启动,它会针对一些先决条件进行一些背景检查。
- 如果满足先决条件,它会触发 Win10 Toast 通知,向用户显示一些信息并指示他打开 GUI。
现在,棘手的部分:
- 如果用户单击通知打开应用程序或用户从“开始”菜单快捷方式启动它,应用程序应该运行良好并向他显示要与之交互的 GUI(在时间范围内推迟检查/立即采取行动)。
我尝试了什么:
- 让应用程序始终以管理员权限运行。例如,如果应用程序是由普通用户从“开始”菜单启动的,这将不起作用。显然,鉴于企业环境,用户没有管理员权限,因此他们将无法在 UAC 提示符下提供凭据(如果您将 requestedExecutionLevel 设置为管理员)。即使他们愿意,从用户体验的角度来看,这也是不行的......
- 将后台管理工作构建到 Windows 服务中,并从主应用程序 (GUI) 调用此服务。这也不起作用,因为简单企业用户拒绝访问服务...我尝试将安装程序中的服务访问修饰符设置为公共,但这也无济于事。
我已经准备好所有代码(约 7.500 行),但我无法使用它,我开始失去理智了!请帮助 IT 同胞避免陷入疯狂的垃圾箱 :)
解决方案
推荐阅读
- asp.net-core - 从 ASP.NET Core 5 MVC Web 项目调用微服务的最佳实践/实现
- regex - 打字稿正则表达式匹配,即使一部分匹配
- node.js - 何时在 MongoDB 中使用嵌入与引用
- android - 主屏幕上自动出现多个灰色图标
- python - 使用 pandas loc 时进行索引
- python - Python dict 的工作方式类似于 oderedDict?
- json - 在 Grails 中以 JSON 格式渲染复杂对象
- python - python代码根据给定条件查找素数或合数
- mongodb - 即使我连接并使用该数据库,Mongo shell 也会抛出“ReferenceError db is not defined”?
- asp.net - ASP.NET 返回响应并继续执行