以管理员身份运行与管理员组运行

2024-03-07

我有一个 C# 应用程序,需要允许用户更改计算机名称。这是一项相当特权的操作。仅当用户以管理员身份运行应用程序(Windows 7,右键单击可执行文件,“以管理员身份运行”)时,我才能使其正常工作。很好,但是用户是管理员,那么为什么他们需要运行AS管理员?我已经尝试过几次了。如果用户(管理员)尝试正常运行应用程序,它总是会失败。如果他们以“以管理员身份运行”运行它,它总是有效。

如果答案是,“它就是这样工作的,即使你是管理员,你也必须以管理员身份运行”,我的问题是如何检测它们是否以超级管理员权限运行?我发现this https://stackoverflow.com/questions/1220213/c-detect-if-running-with-elevated-privileges,但它只是检查用户是否属于管理员用户组,我已经指出,这是不够的(并引发空指针异常)。

我在这里错过了什么吗?我需要从另一个角度来看待它吗?


这是因为用户帐户控制 (UAC)。在 Vista 中引入,这改变了管理员用户帐户的操作方式。

当管理员组的用户登录时,系统会为该用户分配两个令牌:一个具有所有权限的令牌,一个具有较低权限的令牌。当该用户创建新进程时,默认情况下该进程将获得降低的权限令牌。因此,尽管用户拥有管理员权限,但默认情况下她并不行使这些权限。这是一件“好事”™。

要行使这些权利,用户必须以提升的权限启动该流程。例如,通过使用“以管理员身份运行”动词。当她这样做时,完整的令牌将被交给新进程,并且可以行使全部权利。

您几乎肯定不想检测您的进程是否正在提升运行。最佳实践是标记程序中需要提升的部分,并强制系统在程序的这些部分执行时显示 UAC 提升对话框。

绑定是提升只能在流程开始时发生。因此,如果您需要将应用程序拆分为需要提升的部分和不需要提升的部分,则需要多个进程。虽然您可以将整个应用程序标记为需要提升,但如果唯一需要提升的情况是更改计算机名称的极少数情况,则不应这样做。

下一步是在 MSDN 上深入了解详细信息。例如:

  • http://msdn.microsoft.com/en-us/library/windows/desktop/bb756996.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/bb756996.aspx
  • http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以管理员身份运行与管理员组运行 的相关文章

  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • win32 GUI 应用程序在作为“app.exe --help”调用时将使用文本写入标准输出

    如何创建执行以下操作的 Windows 应用程序 当不使用命令行参数调用时 它是一个常规的 GUI 应用程序 指定可选的 help 命令行参数会导致应用程序将使用文本写入标准输出 然后终止 它必须是单个可执行文件 让控制台应用程序执行第二个
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • Vue 过渡与 Tailwind css 在淡出时不可见

    我使用 Tailwind css 和 Vue js 创建模式 由于 Tailwind 不支持 Vue 2 我必须添加过渡 您可以在这里看到想要的效果 https tailwindui com components application u
  • VideoView的setVideoPath和setVideoURI有什么区别

    视频查看 http developer android com reference android widget VideoView html有两种不同的方式来指定要播放的视频 设置视频路径 http developer android c
  • 如何在仅引用数据的表中循环

    我正在使用功能模块RSAQ QUERY CALL 取回一张桌子 DATA gr data TYPE REF TO data CALL FUNCTION RSAQ QUERY CALL EXPORTING query ZXXXXXXXX us
  • 通过 docker 实现 RSelenium

    我的操作系统是windows 8 1 R的版本是3 3 3 我已经安装了 RSelenium 软件包 并尝试使用以下命令运行它 library RSelenium start RSelenium server startServer che
  • 如何在步骤 1 中单击“下一步”时让 JQuery-Steps 调用 ajax 服务

    我正在使用 jquery 步骤 尽管我需要在单击第一个 下一步 时通过 ajax 调用 c 服务 但这是否可以在显示步骤 2 之前调用并返回 尽管 ajax 事件在加载步骤 2 后返回 但以下代码仍然有效 非常感谢 感谢任何帮助 Jquer
  • Java 形式类型参数定义(泛型)

    我想定义一个泛型类型 其实际类型参数只能是 数字基元包装类之一 Long Integer Float Double String 我可以用这样的定义满足第一个要求 public final class MyClass
  • 以编程方式重新启动设备

    在我的 Android 应用程序中 我想在单击按钮时重新启动我的 Android 设备 但它不起作用 到目前为止我已经做到了 ImageButton restartmob ImageButton this findViewById R id
  • 传单图块在移动设备上加载不正确

    我遇到了传单地图在移动设备上加载不正确的问题 该地图的加载纬度 经度为 25 748503 80 286949 迈阿密市中心 但在移动设备上加载的纬度 经度约为 25 584223 80 028805 大西洋沿岸 将地图拖回到正确的位置似乎
  • 我可以将 terraform 输出设置为环境变量吗?

    因此 terraform 生成了一堆我感兴趣的输出 如何将这些值通过管道传递给环境变量或其他东西 以便我的脚本能够在有人运行后获取它们terraform apply Terraform 无法直接修改调用它的 shell 的环境 一般来说 程
  • 在谷歌地图中为每个国家提供不同的颜色

    有谁知道如何在谷歌地图中为每个国家提供不同的颜色 e g 在世界地图上 蓝色覆盖英国 然后红色中国 等 我想知道google是否提供API来为每个国家提供颜色 Thanks 使用谷歌地图这确实不容易 正如 oezi 所说 你需要为你想要着色
  • 使用以位集作为键的映射时出现问题

    我正在尝试创建一个map在 C 中bitset作为钥匙 但是编译器会生成以下错误消息 In file included from usr include c 4 6 string 50 0 from usr include c 4 6 bi
  • Presto 中的用户定义函数

    我目前正在使用 Presto 0 80 我必须编写一个用户定义的函数来在选择查询期间将摄氏度转换为华氏度 我使用 Hive QL 做了同样的事情 但想知道我们是否可以在 Facebook Presto 中复制相同的内容 任何帮助将不胜感激
  • GAE组织数据结构问题

    好的 我正在与 GAE 合作 我想创建这样的东西 我有类型 组 主题 标签 每个 组 可以有尽可能多的 根据需要 主题 每个 主题 可以有任意多个 标签 如所须 每个 组 可以有任意多个 标签 如所须 它就像一个圆圈 现在我有这样的事情 c
  • QuickDraw 中的 python3 递归动画

    我有一个文本文件 其中包含行星及其相应的卫星 卫星以及它们的轨道半径和周期 我想用它来创建动画quickdraw类似于下面的 文本文件如下 RootObject Sun Object Sun Satellites Mercury Venus
  • 如何通过 Golang 的 json 解组嵌套数组中的对值

    JSON 数据如下 xxx xxx asks 0 00000315 1022 53968253 0 00000328 200 0 00000329 181 70008541 bids 0 00000254 2685 36319716 0 0
  • _PFBatchFaultingArray 对象索引:

    2012 06 15 17 53 25 532 BadgerNew 3090 707 Terminating app due to uncaught exception NSRangeException reason PFBatchFaul
  • 两个不同表中任意一个的参考键[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有以下两个表 employees id name address designation salary phone email bu
  • 使用MVC设计模式时如何加载重型模型

    我正在使用 wxPython 和使用 Tensorflow 创建的深度学习模型构建一个应用程序 我使用的设计模式是MVC 我的问题是深度学习模型非常重 需要很长时间才能加载 大约 2 分钟 同时 GUI 会挂起 我创建了一个描述该过程的示例
  • Typescript 中 `typeof x` 的类型是什么?

    在打字稿中 您可以像这样定义一个类 class Sup static member any static log console log sup 如果您执行以下操作 let x Sup 为什么 x 的类型等于typeof Sup 当我在 v
  • 以管理员身份运行与管理员组运行

    我有一个 C 应用程序 需要允许用户更改计算机名称 这是一项相当特权的操作 仅当用户以管理员身份运行应用程序 Windows 7 右键单击可执行文件 以管理员身份运行 时 我才能使其正常工作 很好 但是用户是管理员 那么为什么他们需要运行A