在服务器2008 R2中,如果我以pipe理员模式运行应用程序,subprocess仍处于相同模式下吗?

在服务器2008 R2中,如果我以pipe理员模式运行应用程序,subprocess是否仍处于相同模式?

我提出这个问题,因为我怀疑从应用程序的subprocess没有在pipe理员模式下运行。

是的,subprocessinheritance父进程的访问令牌(来自TechNet上的UAC进程和交互 ):

每个需要pipe理员访问令牌的应用程序必须提示pipe理员同意。 父母和子女之间的关系是一个例外。 subprocess从父进程inheritance用户访问令牌。 但是,父进程和subprocess必须具有相同的完整性级别。


有些相关的奖金信息:

runas实用程序有两个不好logging的名为/showtrustlevels/trustlevel开关,它似乎允许您在不降低subprocess完整性级别的情况下(使用高级进程)启动一个具有标准用户令牌而不是pipe理令牌的新进程:

 runas /trustlevel:0x20000 cmd.exe 

您会发现窗口标题包含(running as [username] with restricted privileges) ,whoami将显示一个受限的特权和组列表,与提升的提示相比:

在这里输入图像说明

是的,它将以pipe理员权限执行。

简单testing:

您可以通过以pipe理员身份打开应用程序并从应用程序中打开notepad.exe来testing此function。 尝试将空白文本文件保存到C:\ Windows。 如果它不抛出权限错误,那么你知道subprocess(记事本)正在提升权限下运行。

是的,孩子将进入pipe理模式。

这就是为什么运行cmd.exe作为pipe理员允许你以pipe理员模式启动其他程序。