Articles of UAC

运行EXE文件没有pipe理员权限

我用installshield创build了一个Word Add-In setup.exe文件,我试图找出如何在不需要pipe理权限的情况下安装它。 此外,我需要安装沉默(没有用户界面)。 我能够通过从可执行文件中提取msi文件并使用它来运行它 msiexec /i setup.exe /passive 这在我的机器上完美地工作,但它不会为客户端系统中的任何其他用户。 客户端使用不同的系统,所以当我尝试相同的命令时,我看到文件被添加到我的程序文件中,但它不在我的已安装程序列表中,并且registry项未设置。 我无法对其系统进行任何更改,所以我试图find一种方法来绕过这个无论是第三方程序还是我可以在命令提示符下使用的一个小骗子。 我曾尝试以下几点: 在运行上面的命令之前closuresUAC。 我已经从清单文件中删除了该节点。 命令提示符中有很多命令。 其他人有任何其他的build议或想法,我怎么能解决这个问题? 谢谢!

什么是导致桌面盾牌图标覆盖* SOME *桌面上

我有一个C ++ Builder / Delphi应用程序。 它具有以下清单作为资源embedded: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" processorArchitecture="*" version="1.0.0.0" name="Manufacturer.Division.MyName" /> <description>MyName</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" /> <!– Win Vista and Win Serv […]

启动后进程能否升级?

启动后,进程是否有可能获得pipe理员权限? 如果是这样,怎么样? 例子应该在C或C ++中。 编辑 – 例子也应该使用不受pipe理的代码。

C ++:在Windows上与高级subprocess进行通信

我有以下设置:我正在写的DLL在运行时dynamic加载,并提供一些类似API的function,以主机应用程序。 主机应用程序没有运行pipe理员权限(因此我的DLL不是)。 我的DLL需要完成的一些任务需要pipe理员权限,特别是我必须保存和复制文件到程序文件文件夹。 我目前的做法是通过ShellExecute和“runas”动词来启动外部应用程序,从而触发UAC提示。 这尤其意味着由用户触发的多个后续操作总是会导致额外的UAC提示,这可能是非常烦人的。 所以这个想法是一次启动一个单独的,升级的过程,然后在后台运行并接收相应的命令并执行它们。 这让我想起了我的问题:哪一种沟通方式甚至可能在一个未升级的过程和其较高的儿童过程之间? 由于显而易见的安全原因,访问stdin似乎被禁止,但是命名pipe道或共享内存呢? 是否适用相同的限制?

如何提升使用UAC的Perl进程

假设我有一个脚本,需要从普通用户不允许阅读的地方(例如其他用户的文件夹)读取信息。 目前我所能做的只是抱怨没有被当作“超级用户”而退出,但我宁愿喜欢脚本来提高自己。

如何用Java编写系统首选项? 我可以调用UAC吗?

如何使用Preferences.systemRoot()来编写系统首Preferences.systemRoot() ? 我试着用: Preferences preferences = Preferences.systemRoot(); preferences.put("/myapplication/databasepath", pathToDatabase); 但是我得到了这个错误信息: 2010-maj-29 19:02:50 java.util.prefs.WindowsPreferences openKey VARNING: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(…) returned error code 5. Exception in thread "AWT-EventQueue-0" java.lang.SecurityException: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002: Access denied at java.util.prefs.WindowsPreferences.openKey(Unknown Source) at java.util.prefs.WindowsPreferences.openKey(Unknown Source) at […]

如何通过非交互式login模拟获得提升权限(UAC)?

我有一个类库,保存系统范围的configuration数据在registry中(HKLM \ Software \ XXX)。 这个库被用于各种版本的Windows(XP,2003,7,2008 R2)中的各种应用程序(服务,窗体,Web应用程序,控制台应用程序)。 因此,应用程序的身份不一致,甚至可能不是本机pipe理员组的成员。 所以我创build了一个AD域pipe理员用户,并进行模拟以获得对registry的写入权限。 这在XP / 2003中完美工作,但在UAC系统(7 / 2008R2)中不能。 我的理解是,只有交互式login将令牌拆分,这意味着非交互式login(服务标识,应用程序池标识等)不会。 我找不到任何证实,但从这个假设工作,我所做的冒充应该工作。 我编写了一个包装类,使用本机LogonUser(networkinglogintypes,默认提供程序)和DuplicateTokenEx(模拟,主令牌),然后使用WindowsIdentity.Impersonate()进行模拟。 我得到一个对我的根键的引用: using (ECR.Impersonator imp = new ECR.Impersonator("XXX", "XXX", "XXX")) { _root = Registry.LocalMachine.CreateSubKey("SOFTWARE\\XXX", RegistryKeyPermissionCheck.ReadWriteSubTree); } 根据MSDN ,通过使用ReadWriteSubTree,这应该是安全检查完成的唯一时间。 我可以将值写入该键,创build子键(也使用ReadWriteSubTree)并将值写入这些子键,而不需要另外的安全检查。 所以我认为我只需要做一次昂贵的模仿 – 获得对我的根键的引用。 我可以写我的根键的值就好了: _root.SetValue("cachedDate", value.ToBinary(), RegistryValueKind.QWord); } 但是当我用ReadWriteSubTree创build/打开一个子键时: RegistryKey key = _root.CreateSubKey("XXX", RegistryKeyPermissionCheck.ReadWriteSubTree); 它炸弹与Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\XXX\XXX' […]

以用户身份运行我的程序

Windows 7,Vista,Server 2008,UAC已激活 程序必须用pipe理员权限进行说明才能进行一些安装操作。 之后,我希望我的程序继续使用非pipe理员权限。 我怎样才能重新启动它没有pipe理权限? PS 我的程序重新安装。 我不想分发任何额外的程序。 所以我的步骤是: 在临时目录中下载新版本 在pipe理员权限下重新启动 重命名旧的exe文件,并从临时目录复制新的exe文件 在非pipe理员权限下重新启动

检查另一个进程在.NET中是否具有pipe理员权限

我正在寻找一种方法来检查远程进程是否拥有来自我的(完全托pipe)代码的pipe理员权限。 假设我的代码将以pipe理员权限运行,这是安全的,所以我不在乎这种技术如何实现我的目标,但是我正在寻找一种完全pipe理的方式,它必须与XP SP3 x86兼容一路下降到win7 x64。 提前致谢! 编辑 :为了澄清,我正在谈论一个进程在同一台机器上运行,无论谁启动它的用户。 我想要确保与进程相关的身份属于pipe理员组,或者主线程具有完全权限,特别关注inheritance由提升进程打开的句柄,并且无限制地写入存储区,但是应用于进程以“以pipe理员身份运行”选项产生。

如何在Vista中使用SetWindowsHookEx并挂钩pipe理应用程序与UAC?

我试图找出是否有一种方法来使用SetWindowsHookEx,并能够影响在Vista上使用pipe理权限运行的应用程序,启用UAC。 这是一个应用程序,需要添加一个小button到其他窗口的标题栏,以启用一些多监视器感知处理。 我原以为这不可能完成,但我看到一个似乎是这样做的应用程序。 据我所知,这个其他应用程序没有使用pipe理员权限运行,但它可以影响系统中的所有应用程序,包括那些具有pipe理员权限的应用程序。 似乎有办法做到这一点,但是,我对此感到茫然。 我的应用程序只需要能够在窗口标题栏上绘制,并能够影响他们的运动和大小。 我不需要做任何事情。