我正在使用执行hadoop命令 winutils.exe task create ip ipconfig
以管理员权限从cmd执行其工作并显示结果。但如果我在c#程序中尝试同样的管理权限,它会显示 Access is denied
错误。
错误:
C:Hadoop\bin>winutils.exe task create ip ipconfig
createTask error (5): Access is denied.
我正在使用执行hadoop命令 winutils.exe task create ip ipconfig
以管理员权限从cmd执行其工作并显示结果。但如果我在c#程序中尝试同样的管理权限,它会显示 Access is denied
错误。
错误:
C:Hadoop\bin>winutils.exe task create ip ipconfig
createTask error (5): Access is denied.
1条答案
按热度按时间4c8rllxm1#
问题出在winutils.exe上。winutils.exe在task.c文件的createtask()方法中使用了assignprocesstojobobject()。
在Windows7中,如果jobobject已经分配了一个进程,那么'assignprocesstojobobject'不能分配一个新进程,并返回'access denied'消息。
因此,当您以编程方式调用exe时,jobobject可能已经被分配了一个processhandle,然后从'assignprocesstojobobject'函数返回“拒绝访问”。
修复:检查jobobject是否有任何关联的进程,并且仅当jobobject未分配给任何进程时才分配新进程。确保您的更改仅适用于windows 7环境,并允许在windows 8及更高版本的环境中使用默认代码。
希望这有帮助。