如果应用程序以windows上的管理权限从cmd打开,则会出现访问冲突

Access Violation comes if application opening from cmd with administrative privilege on windows

本文关键字:打开 cmd 访问冲突 权限 windows 应用程序 管理权 管理 如果      更新时间:2023-10-16

我使用的是简单的代码Test.c-

#include<stdio.h>
int main()
{
printf("hellon");
while(1);
}

我通过cl.exe编译器编译这个代码并生成Test.exe。现在我有两种方法来打开Test.exe。第一种是简单地双击并打开它。在这种情况下,如果我检查Windbg(文件->附加到进程),它会显示

Session: 1 User: .......

现在,如果我用管理权限从cmd打开Test.exe并再次检查Windbg,它会显示

Error 0xD0000022

我认为这是一个访问违规的错误,之所以会发生这种情况,是因为cmd(admin)进程不允许其子Test.exe具有某些访问权限,我不知道这些访问权限是什么。

是否有任何api允许访问并删除此错误。我尝试了这些api,但什么都没发生-

GetCurrentProcess(); //to get the pseudo handle of current process 
SetSecurityInfo(ph,SE_SERVICE,BACKUP_SECURITY_INFORMATION,NULL,NULL,NULL,NULL);

我还以两种方式打开了safari浏览器,结果与Test.exe相同。请告诉我。

我认为这是一个访问违规的错误,而且正在发生因为cmd(admin)进程不允许对其child Test.exe

不完全是。使用管理员权限运行WinDBG,然后问题就会消失。