【发布时间】:2011-06-19 08:29:19
【问题描述】:
我有一个小的 C# 程序来修改位于Program Files 下的 xml 文件。该机器是Windows 7 机器。这个小程序是由一个批处理文件(称为A.bat)启动的,因为我想向它传递一个参数。
我有一个主批处理文件(称为M.bat),它是起点。 M.bat 将启动安装程序并等待安装完成。然后M.bat 将启动A.bat,它将启动我的带有参数的小程序。
现在我得到以下异常:
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\MyTest\Test.config' is denied.
我知道这是由 Win7 中更严格的安全性引起的。它在 XP 下运行良好。
我无法使用“以管理员身份运行”启动M.bat 或手动“以管理员身份运行”启动A.bat,因为两者都会报告找不到目标可执行文件(因为启动位置并不是真正的“当前”位置然后)。
有没有办法在批处理文件中以管理员身份启动可执行文件?还是在 C# 程序中我可以给自己管理员权限?
或者...
【问题讨论】:
-
我真的不知道你在这里问什么。未经用户许可,应用程序和批处理文件都不能将其权限提升为管理员。你已经知道这就是问题所在。尝试修复代码中阻止您使用“以管理员身份运行”的错误,即不假设特定的开始位置,难道不是更好吗?
标签: c# .net scripting windows-7 batch-file