当用户尝试运行我的应用程序(C#.NET4,在WinXP上)时,我需要弹出“运行方式”表单,以便他可以轻松地以其他用户身份登录。它可能在应用程序本身(在C#代码中)或在其他一些前面的批处理/exe文件(“启动器”)等中。我没有找到任何方法来弹出此表单。怎么做到的?谢谢。 最佳答案 如果你想这样做,你最好的选择是创建一个调用CredUIPromptForWindowsCredentials的引导进程。.这将创建一个对话框,提示用户输入凭据。一旦您获得了他们的凭据,然后使用Process.Start的重载,它接受CredUIPrompt
我有一个在WindowsXP及以下系统上作为LocalSystem运行的进程。我正在尝试找到一种方法让它启动另一个进程来模拟另一个用户而不必提供用户密码。原则上这应该是可能的,因为LocalSystem具有“作为操作系统的一部分”的特权。但是我找不到正确的API。谁能告诉我该怎么做:使用API,或者来自批处理文件? 最佳答案 您可以先通过WTSQueryUserToken获取用户的token来完成此操作,然后调用CreateProcessAsUser开始这个过程。请注意,您只能为当前登录系统的用户执行此操作。
我正在使用共享内存映射进行进程间通信。该映射需要在session之间可见,因此我试图在全局命名空间中创建它。我知道正在运行的用户需要SeCreateGlobalPrivilege才能使其正常工作。我已经编辑了本地安全策略(我不在域中)以授予我的用户“创建全局对象”权限,但是当我运行应用程序时,此权限不在访问token中。如果我以管理员身份运行,我会获得特权。我错过了什么?为什么我得不到这个特权? 最佳答案 在调用CreateFileMapping()之前尝试使用OpenThreadToken()和AdjustTokenPrivile
我已经为我的软件制作了安装程序(使用InnoSetup),最终安装在C:\ProgramFiles(x86)\MyApp\myapp.exe像往常一样在Windows平台上运行,并且运行良好。当我的软件试图在此处写入其配置文件时出现问题:C:\ProgramFiles(x86)\MyApp\myapp.cfg这里出现了一个Permissiondenied错误!我找到的唯一解决方案是“以管理员身份运行软件”,但我不喜欢这个解决方案:我不想让最终用户每次都必须执行“以管理员身份运行”他们将使用该软件。是否有一个干净的解决方案可以在C:\ProgramFiles(x86)\MyApp\mya
我对这种情况有疑问:我制作了2个程序:第一个只是打印一个输出,说明是否以管理员权限启动,第二个,以管理员权限执行第一个程序和不使用UAC。问题是第二个程序无法以管理员权限启动第一个程序,我不知道为什么。这是我的代码:第一个程序代码://Thisonlyprintsifyoustartasadministratorornot.boolisElevated;WindowsIdentityidentity=WindowsIdentity.GetCurrent();WindowsPrincipalprincipal=newWindowsPrincipal(identity);isElevate
如何启动应用程序以在Windows7下以访客身份运行或以有限权限运行?当前用户是管理员,我想测试应用程序在以较少权限运行时的行为。我已经知道它在其他系统上有一些问题,但我想在我的计算机/帐户上运行它来调试它。 最佳答案 按住shift键并右键单击可执行文件并选择“以不同用户身份运行”。如果您的问题是寻求程序化解决方案,我们深表歉意。 关于windows-在Windows下以访客身份或以有限权限运行应用程序而无需重新登录?,我们在StackOverflow上找到一个类似的问题:
请告知下面代码中指出的错误,为什么会这样?我是C++的新手。我查看了StackO和MSDN(例如link),但它们对我没有帮助,因为我不知道自己做错了什么。HANDLEhToken;if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)){returnFALSE;}{SetPrivilege(hToken,L"SeBackupPrivilege",1);BOOLSetPrivilege(HANDLEhToken,//accesstokenhandleLPCTSTRlpsz
MSDN文章,EnablingandDisablingPrivilegesinC++,提供了一个代码示例来展示如何在访问token中启用或禁用权限。我引用被质疑的部分:tp.PrivilegeCount=1;tp.Privileges[0].Luid=luid;if(bEnablePrivilege)tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;elsetp.Privileges[0].Attributes=0;Attributes成员的零值是什么意思?根据TOKEN_PRIVILEGES的文档结构,权限的属性可以是以下值的组合:SE
我有一个专为在XP中运行而设计的程序,但随着Windows放弃对该操作系统的支持,是时候升级了。该位置位于ProgramFiles(x86)中,因此当我在没有管理员权限的情况下运行它时,它无法在其文件夹中读取/写入库/程序集文件。我有哪些选择?发现此链接有帮助:AllowaccesspermissiontowriteinProgramFilesofWindows7 最佳答案 自Vista于2007年发布以来,UAC意味着用户无权写入程序文件目录,除非程序以提升权限运行。您需要在其他地方找到需要修改的文件。我不能说这些文件的确切位置。
我有一个小型Delphi应用程序,它向LOCAL_MACHINE注册表写入一个key。当我使用具有管理员权限的用户在Windows7专业版上运行它时,它无法写入值,但是当我右键单击并选择“以管理员身份运行”时,它确实有效。代码是:varreg:TRegistry;beginResult:=false;reg:=TRegistry.Create;reg.RootKey:=HKEY_LOCAL_MACHINE;if(reg.OpenKey('Software\YepYep',TRUE))thenBegintryreg.WriteString('ProductKey',Trim(Produc