将程序安装在客户端计算机上后,如何强制程序在Windows 7上以管理员身份运行?


#1楼

在Visual Studio 2008上工作时,右键单击Project -> Add New Item ,然后选择Application Manifest File

在清单文件中,您将找到标记requestedExecutionLevel ,并且可以将级别设置为三个值:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

要么

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

要么

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

要设置您的应用程序以管理员身份运行,您必须选择中间一个。


#2楼

按照

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

如果您还没有或不知道如何添加应用程序清单,则需要添加该清单。 由于某些项目不会自动添加单独的清单文件,因此请首先转到项目属性,导航至“ 应用程序”选项卡,然后检查以确保您的项目不排除水龙头底部的清单。

  • 接下来,右键单击项目
  • 新增项目
  • 最后,找到并单击“应用程序清单文件”

#3楼

我实现了一些代码来手动执行此操作:

using System.Security.Principal;
public bool IsUserAdministrator()
{bool isAdmin;try{WindowsIdentity user = WindowsIdentity.GetCurrent();WindowsPrincipal principal = new WindowsPrincipal(user);isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);}catch (UnauthorizedAccessException ex){isAdmin = false;}catch (Exception ex){isAdmin = false;}return isAdmin;
}

#4楼

右键单击您的可执行文件,转到“属性”>“兼容性”,然后选中“以管理员身份运行该程序”框。

如果要对所有用户以管理员身份运行它,请在“更改所有用户的设置”中执行相同的操作。


#5楼

您可以在EXE文件中嵌入清单文件,这将导致Windows(7或更高版本)始终以管理员身份运行该程序。

您可以在步骤6:创建和嵌入应用程序清单(UAC) (MSDN)中找到更多详细信息。


#6楼

您将需要修改嵌入到程序中的清单。 这适用于Visual Studio 2008和更高版本:Project + Add New Item,选择“ Application Manifest File”。 将<requestedExecutionLevel>元素更改为:

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

用户在启动程序时收到UAC提示。 明智地使用; 他们的耐心会很快耗尽。


#7楼

向清单中添加一个requestedExecutionLevel元素仅是成功的一半。 您必须记住可以关闭UAC 。 如果是这样,如果用户不是管理员,则必须执行旧的检查方式并显示错误对话框
(在线程的CurrentPrincipal上调用IsInRole(WindowsBuiltInRole.Administrator) )。


#8楼

做到这一点的另一种方法(仅在代码中)是检测进程是否以admin的身份运行,就像@NG的答案一样。 。 然后再次打开该应用程序并关闭当前的应用程序。

当应用程序在某些条件下(例如将自身安装为服务时)仅在某些情况下运行时需要管理员权限时,将使用此代码。 因此,不需要像其他答案一样一直以管理员身份运行。

请注意,以下代码NeedsToRunAsAdmin是一种检测在当前条件下是否需要管理员特权的方法。 如果返回false则代码本身不会提升。 这是该方法相对于其他方法的主要优点。

尽管此代码具有上述优点,但确实需要重新启动自身,作为一个新过程,但这并不总是您想要的。

private static void Main(string[] args)
{if (NeedsToRunAsAdmin() && !IsRunAsAdmin()){ProcessStartInfo proc = new ProcessStartInfo();proc.UseShellExecute = true;proc.WorkingDirectory = Environment.CurrentDirectory;proc.FileName = Assembly.GetEntryAssembly().CodeBase;foreach (string arg in args){proc.Arguments += String.Format("\"{0}\" ", arg);}proc.Verb = "runas";try{Process.Start(proc);}catch{Console.WriteLine("This application requires elevated credentials in order to operate correctly!");}}else{//Normal program logic...}
}private static bool IsRunAsAdmin()
{WindowsIdentity id = WindowsIdentity.GetCurrent();WindowsPrincipal principal = new WindowsPrincipal(id);return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

#9楼

详细步骤如下。

  1. 将应用清单文件添加到解决方案
  2. 将应用程序设置更改为“ app.manifest”
  3. 将“ requestedExecutionLevel”标签更新为requireAdministrator。

请注意,使用此代码需要关闭ClickOnce的安全性设置,为此,请进入“属性”->“安全性”->“ ClickOnce安全性”


#10楼

您可以使用ClickOnce安全设置创建清单,然后将其禁用:

Right click on the Project -> Properties -> Security -> Enable ClickOnce Security Settings

单击它之后,将在项目的属性文件夹下创建一个名为app.manifest的文件,创建该文件后,您可以取消选中“ Enable ClickOnce Security Settings选项

打开该文件并更改此行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

至:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这将使程序需要管理员权限。


#11楼

这是@NG上面的this 答案的简化版本

public bool IsUserAdministrator()
{try{WindowsIdentity user = WindowsIdentity.GetCurrent();WindowsPrincipal principal = new WindowsPrincipal(user);return principal.IsInRole(WindowsBuiltInRole.Administrator);}catch{return false;}
}

#12楼

在Visual Studio 2010中,右键单击您的项目名称。 点击“查看Windows设置”,这将生成并打开一个名为“ app.manifest”的文件。 在该文件内,将“ asInvoker”替换为“ requireAdministrator”,如文件内注释部分所述。

如何强制.NET应用程序以管理员身份运行?相关推荐

  1. c#中程序以管理员身份运行的三种办法

    三种办法: 一.设置程序本身的属性:勾选"以管理员身份运行此程序",必要时设置"更改所有用户设置-以管理员身份运行此程序",当然这种办法是被动的,也不是最实际的 ...

  2. c#通过app.manifest使程序以管理员身份运行

    通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行.微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以 ...

  3. c#通过app.manifest使程序 右键 以管理员身份运行

    c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次 微软在Windows Vista开始引入 ...

  4. 联想计算机管理员权限设置,管理员身份运行,详细教您如何设置以管理员身份运行程序...

    在使用电脑的过程中,难免会遇到一些权限问题,而一些软件则需要以管理员的身份才能运行,如果我们经常需要打开这个软件,每一次都需要右击选择"以管理员的身份运行"选项才能打开,比较麻烦. ...

  5. Win10以最高管理员身份运行程序的方法总结

    一.前言 Windows 中有些地方可能需要以管理员身份运行,而且频繁的模态确认框体验感非常差,还有提示音也不是特别友好.以最高管理员身份运行的方法通常有以下几种: 设置程序的兼容性以管理员身份运行: ...

  6. win7如何设置以管理员身份运行

    win7如何设置以管理员身份运行 对于win7新用户,可能很多朋友在运行软件或者安装的时候,会经常遇到以管理员身份运行的窗口,对于用户来说,真的会有些烦恼,这里为大家提供一些办法,希望对大家有所帮助. ...

  7. Windows 10 上强制Visual Studio以管理员身份运行

    Windows 10 的一个既安全又蛋疼之处是UAC的行为被改变了.以往在Windows 7中,只要关闭了UAC,自己的帐号又是本机管理员组的,任何程序都会以管理员身份启动.然而,在Windows 8 ...

  8. [Winform]默认以管理员身份运行程序

    摘要 在使用setupfactory打包之后,想让程序默认以管理员身份运行,因为涉及到创建文件删除文件的操作,如果权限比较低的话,会出现没有权限操作的bug. 解决办法 在项目中找到app.manif ...

  9. 如何自动以管理员身份运行.NET程序?

    windows 7和vista提高的系统的安全性,同时需要明确指定"以管理员身份运行"才可赋予被运行软件比较高级的权限,比如访问注册表等.否则,当以普通身份运行的程序需要访问较高级 ...

最新文章

  1. python操作excel表格-python如何操作excel表格
  2. sql计算留存_链家面试题:如何分析留存率?
  3. LeetCode:Unique Binary Search Trees
  4. 基于Xml 的IOC 容器-载入<bean>元素
  5. Zuul使用正则表达式指定路由规则
  6. 从STGW流量下降探秘内核收包机制
  7. python日期对照表_2020年日期表-python实现
  8. iOS蓝牙4.0基础开发
  9. Linux curl 命令下载文件
  10. vive手柄按键开发说明
  11. Python_Pandas_分组汇总数据和创建数据透视表
  12. 中国石油大学《输气管道设计与管理(含课程设计)》第三阶段在线作业
  13. 替换字符串中的通配符
  14. 00018计算机应用基础2021,2021年全国自考10月00018计算机应用基础历年试题含答案.doc...
  15. 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——3A - Groundless Beliefs(无根据的信念)
  16. 内置在maven项目的服务器,IDEA使用maven中tomcat插件来启动服务器配置
  17. 数据结构《顺序栈》知识点详解+C语言完整代码-超详细
  18. Unable to create the django_migrations table 迁移文件时报错
  19. 计蒜客习题3:堆积木(vector)STL
  20. 政务云系统——亿网软通“互联网+”政务云解决方案

热门文章

  1. 12.allegro环境设置[原创]
  2. 20个全屏响应式菜单效果荟萃
  3. How to Use File Choosers
  4. SQL SERVER日期函数详细用法
  5. [原创]Tsung压力测试工具简介及安装
  6. .NET 框架中的字符串(转自MSDN,关于字符串的详细解说!)
  7. VMware Linux RAID5 介绍
  8. 1 MySQL 主从同步
  9. ELK下logstash收集java日志,多行合并成一行
  10. linux 创建LVM磁盘