如何在Windows 2012R2上运行C#服务的UAC特权?
我有一项需要提高管理权限的服务.该服务在Windows XP和Windows 2008R2上运行良好,但是当我运行代码时,该代码检查应用程序是否在Windows 2012R2上的高架管理上下文下执行 - 结果始终为FALSE. . 我已经尝试在应用程序清单中添加 ,当我运行与控制台应用程序相同的代码时,这可以正常工作 - 但是,作为服务,应用程序仅执行而没有提高权限 - 未能执行需要需要该操作的操作行政许可. 另外,我正在接受的答案中使用代码在这里确定我是否在升高权限的情况下运行. 解决方案 在我单击"保存"按钮之前,至少需要出现30个字符.
0 2023-12-08
编程技术问答社区
C# 访问另一个用户的注册表
我目前正在使用Windows服务问题.基本上,我将一些值存储在HKCU注册表中(从GUI工具作为管理员运行),从该GUI中,我正在启动服务.该服务使用SYSTEM帐户运行,我相信这是我的问题 - 我无法访问使用我的GUI工具在服务中存储的注册表键,因为它指向了不同的HKCU! 我如何"重定向" 使用它存储的用户的HKCU服务? (实际上,我可以将用户名传递给服务或SID如果有人指向我如何在GUI中检索它,但是我不知道我应该用什么来"更改" 用户指向正确的一个) 编辑1: 我使用静态类访问注册表,GUI和Service都使用它,并且检索基本密钥的功能为(rootKey是字符串变量保存子键名称): private static RegistryKey GetBaseKey(bool writable = false) { try { RegistryKey reg = RegistryKey.OpenBaseKey(RegistryHi
0 2023-12-08
编程技术问答社区
有没有办法允许标准用户访问远程服务器上的Active Directory?
我会尽力解释这一点,但是很抱歉,如果它的遇到很好. 我们在RDP上有一个远程SharePoint Web服务器(Windows 2012 R2),以添加用户,创建网站收集等. 我们在服务台上有一个或两个用户,服务器上的任务是创建/编辑用户或重置密码.我试图将它们设置为标准用户,并在AD中委派其在其内部委派执行这些任务,但是当它们登录并打开Active Directory用户和计算机时,他们会被提示.管理员用户/密码. 有没有办法让他们访问广告,而无需将其提升为管理或域控制器,我不想这样做? 预先感谢. 解决方案 我怀疑这个问题确实是mmc.exe,因为ADUC(dsa.msc)实际上只是MMC的快照.您可以尝试的一件事是告诉Windows始终运行mmc.exe,其启动的任何高程,而不是触发UAC.您可以通过将兼容性选项设置为RunAsInvoker. 来完成此操作. 有几种方法可以做到这一点.要为整个计算机设置它,您可以在注册表中设置它: [
0 2023-12-08
编程技术问答社区
在.NET中使用Process.Start和UAC进行冒名顶替
我正在尝试从另一个.NET程序运行程序,该程序需要使用Process.start(System.Diarostics)方法的模拟选项来提升.模拟用户是本地管理员. O/S是2008年,UAC已打开. 每当呼叫过程启动时,我都会获得Win32许可错误: "请求的操作需要高程" 解决方案 如果您要调用的.NET应用程序在App.Manifest中正确配置. app.manifest设置: 其他解决方案 您可能会发现一些信息: /a> 在//msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.impersonate%28vs.71%29.aspx
0 2023-12-08
编程技术问答社区
Java getruntime().执行一个需要UAC的EXE
因此,我们有一个以Windows服务运行的Java过程.它需要使用Runtime.getRuntime().exec(command)执行命令.它执行的命令需要UAC.这是在Windows Server 2008上,听起来您无法禁用单个可执行文件的UAC,因此是否有其他方法可以使此工作? 解决方案 如果您的Java应用程序以Windows服务运行,则很可能在其中一个系统帐户下运行:系统(最可能),本地服务或网络服务.因此,如果服务在系统帐户下运行,那么您从服务开始的所有内容都将继承帐户.无论如何,您的服务必须允许与桌面互动. 总结一下,如果您的过程以升高的速度运行,那么从中开始的过程也将运行. 要提升,您必须使用如果Runtime.getRuntime().exec(command)是通过Shellexecute实现的,则用适当的清单标记.EXE将起作用;如果exec使用 creatseprocess 将从当前的用户特权开始,即未提升;此外
0 2023-12-08
编程技术问答社区
如何使VS2010设置项目的setup.exe要求有管理员权限?
我有一个问题,我猜这真的很容易解决...但是 我正在用VS2010部署.NET应用程序.我有一个C#Windows表单项目和一个部署项目.我需要安装程序可以使用Admin特权运行,因为该应用程序均为所有用户安装,并且已完成注册表的条目. 启动setup.exe时,我没有提示我提高特权高程.安装程序将启动并建议安装到程序文件(x86),这很好.单击下一步后,安装程序运行并完成了成功消息.这基本上是一个谎言,因为它没有成功安装.相反,它将应用程序直接放在C:\. 中 如何使安装程序要求管理员特权.或者我必须依靠我的客户右键单击设置,然后选择" admin",这是非常错误的? ? 澄清我的设置: 在设置项目的文件系统视图中,我添加了(除其他内容)" Project01(Active)的主要输出"和"从Project01(Active)到"应用程序文件夹"的构建输出.我还将快捷键添加到"主输出"进入"用户程序菜单\ CompanyName \ programName
0 2023-12-08
编程技术问答社区
用msiexec和c#安装msi文件
在静音模式下在C#应用程序中安装.msi的最佳方法是什么.我想使用msiexec安装.msi文件,但我不知道该怎么做.问题是要使用/qn使用msiexec,您必须在cmd.exe进程"作为管理员"中运行它,我不知道如何使用C#应用程序完成类似的事情(有关更多详细信息,请详细信息,WPF Project在VS 2010中).我来的最好的是: Process p = new Process(); p.StartInfo.FileName = "runas.exe"; p.StartInfo.Arguments = "/user:Administrator cmd"; p.Start(); 一个窗口会弹出并索要密码,但我发现这种行为非常丑陋.我的意思是,我不想向用户询问他的密码.无论如何,是否有启动我的项目的方法,将其设置为一种"作为管理员运行"(UAC将弹出,但这没关系),然后运行MSIEXEC命令?还是有其他方法可以安装.msi文件? 谢谢 解决方案 尽管有人没有发
0 2023-12-08
编程技术问答社区
是否可以用有限的权限安装到程序文件中?
我的应用程序将被部署为MSI软件包(在Wix中撰写). 我决定是否根据安装程序的要求指定elevated或limited特权. 该应用程序不包括任何需要提高特权的内容,除了默认安装位置,该位置在程序文件下. 现在问题: 如果我指定升高的特权,则在安装过程中,UAC提示用户以获取管理员密码.这不是必需的,并且可以防止非Admin用户安装. 如果我指定有限的特权,则会使用对话框呈现用户,以选择默认的Program Files的安装位置.如果他们不更改安装位置(95%的最终用户可能不会),那么安装程序将失败,并发出一条消息,即他们应该联系管理员或以管理员的身份运行应用程序.如果他们以管理员的身份启动安装程序,那么他们可以毫无问题地安装到程序文件中 - 但是大多数用户可能不知道如何启动安装程序作为管理员. 我可以将默认安装位置设置为例如c:\ company name \ program \,但这对我来说似乎不是标准的,大多数用户可能不会喜欢这样(他们可能习惯
0 2023-12-07
编程技术问答社区
Wix Burn Bootstrapper不要求我的MSI管理权
我创建了一个带有WIX的MSI,需要提高权限才能正常工作.在MSI项目中,我通过 指定了这一点 现在,我基于 wixwpf boottrapper . 据我了解,引导程序本身不应改变机器状态,因此不应需要提高特权. 我现在希望Bootstrapper能够自动启动具有升高特权的集成MSI,并在必要时通过UAC对话框提示用户.但这不是.相反,安装只是失败. 但是,当我以管理员的身份显式地运行Bootstrapper可执行器时. 安装MSI时,如何使Bootstrapper要求提高权限? 解决方案 由于 intast未设置,它默认为每个用户安装,而Bootstrapper应用程序则认为它不需要任何管理/提升的权利即可运行它. 现在,就您而言,您是MSI的作者,它很容易使您可以在包装元素中添加installScope. InstallScope="perMachi
0 2023-12-07
编程技术问答社区
安装变更不要求UAC权限
我为我们的产品实施了安装程序. 安装程序需要管理员特权,所以我将设置Bootstrapper 用清单文件(如建议 shere )在启用UAC的Windows机器上获得这些特权.安装和卸载良好 - 要求用户获得许可,并且安装程序可以做需要做的事情. 但是,如果您运行控制面板→程序和功能并为已安装程序选择"更改"*,则会发生 error 从安装程序启动条件中),告诉安装程序需要管理特权.而且我找不到任何方法在这种情况下要求获得许可 - Windows只是运行MSI文件,并且对所需的权限一无所知. 更奇怪的是维修功能 - 它要求使用许可,但随后未能使用SetupBootStrapper执行一些操作. 我发现了一个类似的问题在这里: 但是,在我们的情况下,提出的解决方案是不可接受的. 现在,更改功能的唯一解决方法是始终使用setupbootstrapper,并且不使用程序和功能菜单菜单,但这不是非常用户友好,并迫使用户将安装程序保持在上面他/她的硬盘. 有人更
0 2023-12-07
编程技术问答社区
C++ MSI软件包的管理权限
这是我遇到的问题, 我有一个C ++应用程序,该应用程序通过将数据写入.txt文件运行,我想为应用程序创建一个MSI软件包. 当我构建和运行应用程序时,一切都很好,但是当我运行MSI设置文件时,创建的应用程序确实获得了正确的特权来函数. 我找不到允许应用程序写入.txt文件所需的方法,即使我将它们包含在软件包中并将它们设置为系统文件. 如果我"作为管理员运行"一切都很好,但是这并不是很合理的,因为我需要在"运行作为用户"时功能. 无论如何,在安装时是否会提示用户同意具有管理员权限的安装,因此在每个启动及时启动之前不必手动完成. 任何可以再次运行我的代码的东西都非常出色,谢谢. 解决方案 Longer Writeup: system.unauthorizedAccessexception在程序文件下运行.exe时(除了下面列出的其他选项之外). ). peruser文件夹 :我认为您应该将有关文件安装到每个用户文件夹(可用于用户 - 例如
0 2023-12-07
编程技术问答社区
标记MSI,所以它必须以高架管理员账户运行。
我有一个自定义作为MSI的一部分. 它必须作为本地管理员帐户的成员运行. 它不能使用Nodromentate Flag作为NT Authority \ System运行自定义操作,因为它将无法访问网络资源. 在Vista/2008上启用了UAC,如果NoImpersonate关闭,则它将以执行用户的身份运行,但使用 nopileded 令牌,无法访问诸如.installstate之类的本地资源. 参见UAC架构 任何人都知道一种方法 迫使MSI以高架令牌与从高架命令提示下运行的方式一样? 迫使自定义运行(清单中的需求adeadministrator似乎不起作用)? 如果启用了UAC,并且是否尚未升级UAC,并且如果是这样,请警告或取消安装? 解决方案 回答我自己的任何其他可怜的S0D的问题. 您不能向MSI添加清单.您可以添加一个setup.exe或bootstrapper来掩盖MSI,并用需求eadministrator表现出来,
0 2023-12-07
编程技术问答社区
如何防止Vista上的 "这个程序可能没有正确安装 "信息
我有一个产品设置可执行文件,将某些文件复制到用户的硬盘驱动器中.从正常意义上讲,它不是典型的安装程序(它不会在开始菜单或程序文件文件夹中添加任何内容). 每次设置程序在vista上运行,在EXE终止之后,Vista会产生一个任务对话框: 此程序可能无法正确安装 使用推荐设置重新安装 此程序正确安装了 我需要从EXE或注册表条目中调用一个函数,以向操作系统指示该程序正确安装的操作系统(或至少要额外使用此消息)? 相关问题: "此程序可能没有正确安装" Windows 7 RC (对于Windows 7特定问题) 解决方案 您需要在注册表的AppCompat部分中添加一些信息. 请参阅此外,显然还有一种方法涉及将清单文件添加到您的设置可执行文件以将其标记为" Vista-Aware". 其他解决方案 在程序的清单文件中包括此部分:
0 2023-12-07
编程技术问答社区
具有管理权限的Windows窗体启动
我有一个Windows表单应用程序,需要管理权限以进行运行,为此,我使用此代码: 完成开发的下一步是此Windows表单应用程序在Windows重新启动后启动,关闭并再次打开或用户登录. 这是我的问题,此应用程序需要管理员的权限,并且需要在系统启动之后启动启动,但我不知道这样做. 我做的事情: 将应用程序可执行路径放在regedit 上 Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 我确实创建了Windows Services Project https://lealen.microsoft.com/en-us/dotnet/framework/windows-se
0 2023-12-07
编程技术问答社区
git状态只有在 "以管理员身份运行 "时才正确,由于Windows VirtualStore导致的问题
我有一个我写的excel addin的git存储库,所以路径是" c:\ program files \ microsoft Office 15 \ root \ office15 \ liblary \ btrtools"(该'library'路径是所需的安装path Excel加入供他们正常工作,因此我无法更改).我在Win7和Win8.1中都打开了UAC.在Win7中,一切正常,但是在Win8.1中,我获得了"一切都更改"的状态(但即使是一些奇怪的文件,首先提到的"已删除",然后再次提及"未跟踪".存储库确实是尽管git状态说了什么,但"干净",但我无法拉或重置 - hard或其他任何东西. 如果我使用" As As Aiderator"选项运行'Console2'(我从中发出git bash命令的应用程序),则一切都可以正常工作,并且状态很干净(无列出的更改).我可以正确进行拉动和任何其他命令. 在Win7和Win8.1中,我已经为用户手动授予了对Btrtools文件
0 2023-12-07
编程技术问答社区
用Visual Studio 2012、Windows 8和用户账户控制进行调试
首先 - 这全都与RTM版本有关. Windows 8对UAC有一些更改,因为我们都从 http://wwww.brianbondy学到.com/blog/id/140/,不能禁用副作用. 现在问题开始: 我们的主要应用需要提高特权(至少是服务器部件).调试只有在高架模式下运行VS时才有效.但是,当我以VS的高架模式启动Silverlight项目时,IE被启动进行调试的开始是正常的特权,并且不可能进行调试.为了使事情变得更加复杂,我们并没有在所有(700多个)项目中运行解决方案,而是在命令行中执行很多Dev-stuff(编译,启动,测试).这也需要提升. 为此目的,UAC的正确配置是什么:我希望能够调试在Internet Explorer中运行的Silverlight应用程序,任何类型的应用程序,由VS" F5"启动,服务器流程从Commandline开始,并且(也许)C#/xaml Metro-Apps? 在Windows 7中,它只是禁用UAC,一切都很好.现在,我
0 2023-12-07
编程技术问答社区
WindowsError。[错误740] 即使在禁用UAC后,所请求的操作也需要提升。
我已禁用UAC并在Python中运行我的脚本. command = "abcd.exe" subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate() 另外,我将应用程序abcd.exe从其属性设置为管理员. 运行 然后我会收到以下错误: WindowsError:[错误740]请求的操作需要高程 解决方案 您可以尝试使用: subprocess.call(["abcd.exe"], shell=True) 基本上重要的部分是shell=True;如果设置为 false ,那么您将获得以下错误. WindowsError:[错误740] 其他解决方案 我相信问题是使用subprocess.popen. 我还认为您的问题已经在这里得到回答: 请求UAC高度来自python脚本吗?
0 2023-12-07
编程技术问答社区
你能在Windows 8中强制Visual Studio始终以管理员身份运行吗?
在Windows 7中,您可以进入程序兼容性设置,然后检查以始终作为管理员运行. Windows 8中是否有类似的选项? 我一直在机器上禁用UAC,并且在Windows 8升级后也这样做了,或者我想.事实证明,没有off选项,只能关闭通知. 这意味着尽管在管理员组中,但没有作为管理员运行.当我尝试调试时,我需要继续关闭和重新打开我的游戏机\ Visual Studio(附加过程,而不是 f5 ),这非常令人沮丧. 我需要记住要采取额外的步骤作为管理员打开它,或者告诉我第一次进行调试时要关闭并重新打开. 解决方案 在Windows 8,Windows 10和Windows 11中,您必须右键单击devenv.exe并选择"故障排除兼容性". 选择"故障排除程序" 检查"该程序需要额外的权限" 单击"下一步" 单击"测试程序..." 等待该程序启动 单击"下一步" 选择"是的,为此程序保存这些设置" 单击"关闭" 如果您打开视觉工作室时,它
0 2023-12-07
编程技术问答社区
为什么我的代码在Windows 7下不能在 "C:\Program Files "中创建一个目录?
我正在使用Windows 7,我必须在该Windows中运行一个程序,但是该程序在Windows XP中工作.这是一个Visual C ++程序,我正在使用Visual Studio 2008.当我运行应用程序时,它不会丢弃任何错误,但不会在" C:\ Program Files \"中创建目录.那么谁能帮助我创建目录和EXE文件? 这是我正在使用的代码: char szAppPath[MAX_PATH]; char szFileName[MAX_PATH]; DWORD dwResult; WIN32_FIND_DATA FindFileData; HANDLE hFind; dwResult = ExpandEnvironmentStrings( NULL, szAppPath, MAX_PATH); // "%ProgramFiles%" // do same for NSim directory strcat(szAppPath,"\\NSim"); hFin
0 2023-12-07
编程技术问答社区