问题标签 [uac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
11282 浏览

.net - 如何在 Vista (.NET) 中运行不提升

我有一个必须以管理员身份运行的应用程序。

该应用程序的一小部分是使用 Process.Start 启动其他应用程序

启动的应用程序也将以管理员身份运行,但我宁愿看到它们以“普通”用户身份运行。

我该如何做到这一点?

/约翰/

0 投票
1 回答
1615 浏览

windows-vista - 在带有 UAC 的 Vista 上使用带有 Windows AccessCheck() 的 SSPI (NTLM) Api

摘要 客户端 (Windows XP SP3) 服务器 (Windows Vista Business SP1) / 作为 LocalSystem 服务运行

Api 序列客户端 - AcquireCredentialsHandle 客户端 - Initializesecuritycontext 服务器 - Acquirecredentialhandle 服务器 - AcceptSecurityContext 客户端/服务器 - CompleteAuthnToken 服务器 - ImpersonateSecurityContext 服务器 - AccessCheckAndAuditAlarm (MAXIMUM_allowed) 服务器 - 然后我将请求的访问与允许的访问进行比较。

我对使用 createprivateobjectsecurityex 创建的私有安全对象调用访问检查。打开 Uac 后,我从 accesscheck 中获得了成功,但没有任何特权被保留。关闭 uac 后,我可以通过 GantedAccess 参数中的所有权限获得成功

详细信息 该应用程序有两个组件,一个客户端和一个服务器。它使用 tcp 通过不安全的网络进行通信。为了验证传入连接,我使用上面列出的 sspi api,并模拟调用用户。一旦调用用户被模拟,我使用 Accesscheckandauditalarm,如果失败,我将恢复为仅 accesscheck。打开 UAC 后,我从 accesscheckandauditalarm 获得了成功,但所有访问权限都不在 grandedaccess 参数中,但如果 uac 关闭,它会按预期工作。我检查了服务器进程的完整性级别并将其设置为高,我查看了用于模拟调用用户的模拟令牌的完整性级别并将其设置为中。我尝试将调用用户的完整性级别设置为高,成功,但访问检查仍然返回不正确的结果。想我可能有一个链接令牌,我尝试调用 GetTOkenInformation(TokenLInkedToken) 链接令牌,结果为 0x520。任何关于我下一步可能尝试的想法将不胜感激。

验证后的代码。

0 投票
3 回答
17812 浏览

c# - UAC 对控制台应用程序的需求

我有一个控制台应用程序需要使用一些需要管理员级别的代码。我读过我需要添加一个清单文件 myprogram.exe.manifest ,如下所示:

但它仍然没有提高 UAC(在控制台中或在 VS 中调试)。我该如何解决这个问题?

更新

如果我在 Administrator 中运行解决方案或在 Administrator 中运行 /bin/*.exe,我能够使其工作。我仍然想知道是否有可能在应用程序启动时弹出一些东西,而不是明确地右键单击>以管理员身份运行?

0 投票
4 回答
9347 浏览

windows-vista - vbscript 检测 UAC 是否升高

我的 vbscript 如何检测它是否在 UAC 提升的上下文中运行?

我检测用户并查看用户是否在管理员组中没有问题。但这仍然不能回答在 Vista 或 Windows 2008 下运行时进程是否提升了 privs 的问题。请注意,我只需要检测此状态;不要试图提升或(错误..)去提升。

0 投票
1 回答
1431 浏览

windows-vista - 在 UAC 提升期间保留映射的驱动器号信息

我们有一个应用程序需要知道执行它的路径(始终是网络路径)。

我们根据启动应用程序的路径设置了部分配置,我们真的希望该配置使用映射的网络驱动器路径而不是资源的 UNC 路径。

我们发现,当我们在没有 UAC 提升的情况下启动应用程序时,我们能够获取应用程序启动时使用的目录

但是当我们启动提升(我们实际上需要这样做)时,返回的缓冲区为我们提供了基于 UNC 的路径,而不是基于驱动器号的路径。

请注意,我们总是通过导航到映射驱动器号的文件夹树从 Windows 资源管理器启动。

有没有人对如何从运行提升的进程中获取基于驱动器号的 EXE 路径有任何建议?

0 投票
3 回答
510 浏览

c# - 有时以管理员身份运行

我有一个程序大部分时间都需要以普通用户的身份运行,但有时我需要停止并启动一项服务。如何制作一个大多数时间以普通用户身份运行但针对某些功能提升为管理员模式的程序?

0 投票
2 回答
297 浏览

windows-vista - 我可以在 Windows Vista 上使用任何帐户将数据写入到哪里,并且可以从所有其他帐户查看?

我需要写一些注册数据(唯一的电脑号,和对应的激活码)。

计算机编号需要从其他程序和所有帐户中可见({Admin|Non Admin} 用户访问控制已打开 {On|Off} )

仅从管理员帐户写入计算机编号和激活码是可以接受的,但它需要可从任何其他帐户读取。

目前(我需要对此进行更多测试)似乎如果 CN 和激活码是在关闭 UAC 的情况下写入的,那么当用户打开 UAC 时,计算机编号是不可见的。

0 投票
5 回答
20204 浏览

tortoisesvn - TortoiseSvn 和 Windows Server 2008 用户帐户控制

这里有一个问题:
TortoiseSvn 可以在不关闭用户帐户控制的情况下在 Windows 2008 上工作吗?

故事是这样的:我刚刚将我的测试服务器移至 Windows 2008,但我遇到了 TortoiseSvn 问题。我以管理员身份登录,但是当我从 Subversion 存储库更新一些代码时,我收到一条消息: 错误无法设置文件 'C:\dev\trunk.svn\entries' 读写:访问被拒绝 所以我看到了这样的消息,我知道要运行清理。但是当我运行 cleanup 我得到: Cleanup failed to process the following paths: C:\dev\trunk

因此,进一步的调查使我确信我有权限问题。从命令提示符运行svn status显示目录被锁定并且运行svn cleanup失败,就像乌龟清理一样。但是当我以管理员身份启动命令提示符时,我可以毫无问题地运行svn cleanup并且可以运行svn up并更新我的文件。

更新:这是一个 Windows UAC 权限问题。关闭 UAC 可以解决此问题。但我想找到一个不需要关闭 UAC 的解决方案。由于 Tortoise 是一个 windows shell 扩展,我不知道如何让它以管理员身份运行。

有什么建议么?

0 投票
3 回答
827 浏览

uac - 即使不需要特权,应用程序也不会在 UAC 下运行

我们在长期启用 UAC 的情况下运行我们开发的应用程序时遇到了严重问题。

安装后(安装程序几乎立即与 UAC 一起失败)似乎可以打开 UAC 并使应用程序工作。但是,一段时间后,它将停止工作,出现关于找不到刚刚创建的文件的奇怪错误。

只是为了弄清楚这一点:

该软件在任何地方都没有权限检查。如果我正确理解文档,任何作为受限用户工作的东西都应该使用 UAC;然而事实证明并非如此。

编辑:我必须为提出比最初出现的问题更难的问题道歉。事实上,我们在文件夹虚拟化中发现了至少一个错误,并且认为还有更多错误。此时,让它运行的唯一合理希望是找到一个可以作为受限用户执行的 API 调用,该调用禁用调用进程及其产生的任何进程的文件夹虚拟化(递归)。我们不能只添加清单的原因是软件调用第三方软件实际上可能因机器而异。

0 投票
3 回答
19335 浏览

c# - 标记 MSI,因此它必须作为提升的管理员帐户运行

我有一个 CustomAction 作为 MSI 的一部分。

它必须作为域帐户运行,该域帐户也是本地管理员帐户的成员。

它不能使用 NoImpersonate 标志以 NT Authority\System 的身份运行自定义操作,因为它将无法访问网络资源。

在启用了 UAC 的 Vista/2008 上,如果 NoImpersonate 关闭,那么它将作为执行用户运行,但使用非特权令牌,并且无法访问本地资源,例如 .installState。请参阅 UAC 架构

任何人都知道一种方法

  • 以与从提升的命令提示符运行相同的方式强制 MSI 使用提升的令牌运行?

  • 强制 CustomAction 运行提升(清单中的 requireAdministrator 似乎不起作用)?

  • 确定 UAC 是否已启用,是否尚未提升,如果是,则警告或取消安装?