我正在写一个调整实用工具,修改HKEY_CLASSES_ROOT下的一些键。 所有在Windows XP下工作良好等等。 但我收到错误Requested registry access is not allowed在Windows 7下。Vista和2008我也猜。 我应该如何修改我的代码来添加UAC支持?
我有一个应用程序,需要检测是否运行与提升特权或不。 我目前有这样的代码设置: static bool IsAdministrator() { WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole (WindowsBuiltInRole.Administrator); } 这用于检测用户是否是pipe理员,但是如果以pipe理员身份运行,则不起作用。 (例如在vshost.exe中)。 我怎样才能确定提升是否[已经生效或可能] ?
我想我的Python脚本在Vista上复制文件。 当我从一个正常的cmd.exe窗口运行它,没有错误生成,但文件不被复制。 如果我运行cmd.exe “作为pipe理员”,然后运行我的脚本,它工作正常。 这很有意义,因为用户帐户控制(UAC)通常会阻止许多文件系统操作。 有没有一种方法可以从Python脚本中调用UAC提升请求(那些类似于“这样和那样的应用程序需要pipe理员访问的对话框,是这样吗?”) 如果这是不可能的,有没有一种方法我的脚本可以至less检测到它没有提升,所以它可以优雅地失败?
我想我的batch file只运行提升。 如果不boost,请提供一个选项让用户重新启动批次。 我正在写一个batch file来设置系统variables,将两个文件复制到Program Files位置,然后启动一个驱动程序安装程序。 如果Windows 7 / Windows Vista用户( UAC已启用,即使他们是本地pipe理员)在没有右键单击并select“以pipe理员身份运行”的情况下运行它,他们将得到“访问被拒绝”,复制这两个文件并写入系统variables。 如果用户实际上是pipe理员,我想使用一个命令自动重启批处理。 否则,如果他们不是pipe理员,我想告诉他们他们需要pipe理员权限来运行batch file。 我使用xcopy来复制文件和REG ADD来写入系统variables。 我正在使用这些命令来处理可能的Windows XP机器。 我在这个主题上发现了类似的问题,但没有处理将batch file重新启动的问题。