Tag: uac

如何截屏UAC提示?

我试图用一系列屏幕截图logging工作stream程。 在stream程中的一个点上,出现一个UAC提示符,我想抓取一个位图来完成我的故事板。 由于UAC提示是在虚拟桌面(或类似的东西),通常的Alt + PrintScreen不起作用。 有什么build议么?

如何检测我的进程是否正在运行UAC提升?

我的Vista应用程序需要知道用户是以“pipe理员”(提升)还是以标准用户(非提升)启动它。 我怎样才能在运行时检测到?

无法以pipe理员身份访问PowerShell中的networking驱动器

我正在Windows 7 x64虚拟机中运行PowerShell。 我有一个映射为networking驱动器(Z :)的主机上的共享文件夹。 当我正常运行PS时,我可以访问该驱动器,但如果以“pipe理员身份”运行它,则会告诉我: Set-Location : Cannot find drive. A drive with the name 'Z' does not exist. At line:1 char:13 + Set-Location <<<< Z: + CategoryInfo : ObjectNotFound: (Z:String) [Set-Location], DriveNotFoundException + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand 如何以pipe理员身份访问networking驱动器?

UAC提示符显示msi的临时随机程序名称,可以显示正确的名称?

我正在为Windows创buildMSI安装程序并使用signtool签署安装程序。 当我运行.msi进行testing时,UAC(用户帐户控制)提示出现问我是否要继续安装。 这很好,但提示显示了一些字段,并且对于Program Name字段,它显示类似“403b3.msi”的内容。 这不是我正在运行的msi的名称。 我怎样才能得到正确的程序名称显示?

程序兼容性助理认为我的应用程序是安装程序

我已经在Win 7 RTM x64上创build了.NET C#WinForms应用程序,我们可以说我已经调用了DataInstaller。 当我在debugging器之外运行这个程序(只是一个没有function的空表单),直到我closures表单才能正常工作。 然后我从程序兼容性助手那里得到一条消息: 该程序可能没有正确安装 然后,我可以select使用推荐的设置重新安装,或者说安装按预期工作。 如果我命名应用程序“DataThingy”,这不是一个问题,我想这与名为* Setup的程序获得UAC盾牌图标的方式有关。 我认为会有一些简单的东西,我可以把应用程序清单,以防止这一点? 我不确定这是否发生在Vista上,因为我目前没有访问权限。 更改名称不是一个选项,closuresUAC不是一个选项,所以请不要这样做! 编辑: 我的天啊。 看来,如果以下任何一个是真的,UAC坚持它的桨: exe名称包含单词安装程序 AssemblyInfo.cs中 AssemblyTitle contains the word 'Installer' eg [assembly: AssemblyTitle("DataInstaller")] AssemblyProduct contains the word 'Installer' eg [assembly: AssemblyProduct("Data Installation Utility")] “安装程序”也可以是“安装程序”。 这是乞丐的信念,它确实如此。 很显然,一个老的VB6程序员被搬到了Redmond的UAC团队。 我仍然需要一个解决方法,我不准备接受我的应用程序不能被称为安装程序,因为它不会触摸registry或将任何文件放在Program Files文件夹中。 如果我试图执行名为IAmAVirus.exe的应用程序,我认为UAC会将机器置于完全locking状态。 (其实,我不敢尝试,因为我不完全相信我只是傻)

允许与不匹配完整性级别的.NET COM服务器连接

我有一个基于COM的客户端服务器设置的问题。 COM服务器用C#(.NET 4.0)编写,并作为(注册的)本地服务器运行。 取决于哪个应用程序连接到服务器,其他客户端将收到服务器执行失败(HRESULTexception:0x80080005(CO_E_SERVER_EXEC_FAILURE) 这里解释了底层的问题(在COM部分是完整性感知) 。 我了解它的方式是由于高级应用程序创build具有更高完整性级别的服务器而造成的。 当另一个未升级的应用程序连接时,不允许连接到同一个实例。 当一个非提升的应用程序创build该进程时,会发生同样的情况。 我试图实现页面上描述的解决scheme:修改registry以设置应允许所有客户端连接的安全描述符。 在C ++中有一个代码示例 ,但是这在.NET中有效地实现了相同的function: // Security Descriptor with NO_EXECUTE_UP var sd = new RawSecurityDescriptor("O:BAG:BAD:(A;;0xb;;;WD)S:(ML;;NX;;;LW)"); byte[] securityDescriptor = new Byte[sd.BinaryLength]; sd.GetBinaryForm(securityDescriptor, 0); RegistryKey key = Registry.ClassesRoot.OpenSubKey("AppID\\{APP-ID-GUID}", true); if (key == null) { key = Registry.ClassesRoot.CreateSubKey("AppID\\{APP-ID-GUID}"); } using (key) { key.SetValue("LaunchPermission", securityDescriptor, RegistryValueKind.Binary); } 但是,这并没有达到预期的效果。 当第二个客户端试图创build有问题的对象的实例时,Windows会尝试启动我的COM服务器的一个单独的实例,但服务器阻止两个实例作为相同的用户运行。 鉴于我设定的权限,我不希望第二个实例首先启动。 由于其中一个客户端应用程序在Medium […]

“以pipe理员身份运行”时Windowsbatch file的起始目录

我有一个batch file是在一个目录中,并且必须从那里运行,因为它更新此目录中的文件。 这工作得很好,除非用户以pipe理员身份运行batch file(在Vista上是必需的)。 那么起始目录是C:\ Windows \ System32。 有什么办法仍然能够知道batch file从哪个目录运行? 我不希望用户手动进入目录。

如何在batch file中请求pipe理员访问权限

我正在尝试为我的用户编写一个batch file,以从UAC的Vista计算机运行。 该文件正在重写他们的主机文件,因此需要使用pipe理员权限运行。 我需要能够发送一个电子邮件与链接到.bat文件。 所需的行为是,当他们右键单击文件并打开,他们将得到其中一个UAC对话框,使屏幕变暗,并强制他们回答是否要授予应用程序权限以pipe理员身份运行。 相反,他们只是在命令行窗口中看到“拒绝访问”。 这可能做不同吗?

给应用程序提高UAC

我有一个需要UAC提升的应用程序。 我有代码让我给,但应用程序打开两次..这是问题.. 所以这里是Form1中的代码: public Form1() { InitializeComponent(); WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); if (!hasAdministrativeRight) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; startInfo.Verb = "runas"; try { Process p = Process.Start(startInfo); } catch (System.ComponentModel.Win32Exception ex) { return; } } } 这是代码programs.cs static void Main() […]

我如何从Java提升我的UAC权限?

我需要使用Preferences API的systemRootfunction,但是如果UAC处于打开状态,则由于Windows上的权限不足而失败。 我试图findpopupUAC提示的技术细节,并提升我的权限,以允许systemRoot更新成功。