很多博客都有记载如何在session0下创建进程的办法,也就是使用CreateProcessAsUser。但是这个要求服务的进程有SE_INCREASE_QUOTA_NAME和SE_ASSIGNPRIMARYTOKEN_NAME权限如果设置的登录用户是LocalServer的话,是默认有以上两个权限。但是如果是自己创建的账户,那么是不具有SE_ASSIGNPRIMARYTOKEN_NAME的权限。

查看用户的权限可以通过gpedit.msc工具中,在“计算机配置”-- “Windows设置” -- “安全设置” -- “本地策略” -- “用户权限分配”中查看。或者通过secedit.exe导出本地策略。

手动可以通过以上的方法设置,但是通过程序,在登录账户下的进程是无法设置。但是可以使用secedit.exe进行导出导入进行设置。导出的信息包括以下一部分:

  1 [Privilege Rights]
2 SeNetworkLogonRight = *S-1-1-0,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551,*S-1-5-32-581
3 SeBackupPrivilege = *S-1-5-32-544,*S-1-5-32-551
4 SeChangeNotifyPrivilege = *S-1-1-0,*S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551
5 SeSystemtimePrivilege = *S-1-5-19,*S-1-5-32-544
6 SeCreatePagefilePrivilege = *S-1-5-32-544
7 SeDebugPrivilege = *S-1-5-32-544
8 SeRemoteShutdownPrivilege = *S-1-5-32-544
9 SeAuditPrivilege = *S-1-5-19,*S-1-5-20
10 SeIncreaseQuotaPrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544
11 SeIncreaseBasePriorityPrivilege = *S-1-5-32-544
12 SeLoadDriverPrivilege = *S-1-5-32-544
13 SeBatchLogonRight = *S-1-5-32-544,*S-1-5-32-551,*S-1-5-32-559
14 SeServiceLogonRight = *S-1-5-20,*S-1-5-80-0,*S-1-5-83-0
15 SeInteractiveLogonRight = __vmware__,Guest,*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551,*S-1-5-32-581
16 SeSecurityPrivilege = *S-1-5-32-544
17 SeSystemEnvironmentPrivilege = *S-1-5-32-544
18 SeProfileSingleProcessPrivilege = *S-1-5-32-544
19 SeSystemProfilePrivilege = *S-1-5-32-544,*S-1-5-80-3139157870-2983391045-3678747466-658725712-1809340420
20 SeAssignPrimaryTokenPrivilege = *S-1-5-19,*S-1-5-20
21 SeRestorePrivilege = *S-1-5-32-544,*S-1-5-32-551
22 SeShutdownPrivilege = *S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551
23 SeTakeOwnershipPrivilege = *S-1-5-32-544
24 SeDenyNetworkLogonRight = Guest
25 SeDenyInteractiveLogonRight = Guest
26 SeUndockPrivilege = *S-1-5-32-544,*S-1-5-32-545
27 SeManageVolumePrivilege = *S-1-5-32-544
28 SeRemoteInteractiveLogonRight = *S-1-5-32-544,*S-1-5-32-555
29 SeImpersonatePrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-6
30 SeCreateGlobalPrivilege = *S-1-5-19,*S-1-5-20,*S-1-5-32-544,*S-1-5-6
31 SeIncreaseWorkingSetPrivilege = *S-1-5-32-545
32 SeTimeZonePrivilege = *S-1-5-19,*S-1-5-32-544,*S-1-5-32-545
33 SeCreateSymbolicLinkPrivilege = *S-1-5-32-544,*S-1-5-83-0
34

使用账户的SID,更新到SeAssignPrimaryTokenPrivilege字段,该用户即可拥有了SE_ASSIGNPRIMARYTOKEN_NAME权限。获取SID可以通过LookupAccountName函数完整的用户的SID可通过注册表查看,路径为:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

整个过程总结一下:

第一步:使用LookupAccountName,通过服务登录账户名,获取该账户的SID;

第二步:secedit.exe导出本地策略,将第一步获取的SID更新到SeAssignPrimaryTokenPrivilege字段;

例如:secedit /export /cfg gp.inf

第三步:使用secedit.exe,将新的配置文件导入到系统;

例如:secedit /configure /db C:\\test.sdb /cfg gp.inf

第四步:重启计算机;

第五步:在服务进程中,使用CreateProcessAsUser进行子进程的创建。

示例代码地址:代码GetSIDByUserName.cpp和CreateProcessAsUser.cpp

Windows平台下的session0创建进程的问题与解决办法的更多相关文章

  1. mysql免安装版1067错误终极解决办法|在windows平台下MySql启动时的1067错误的解决方法及反思

    [windows事件查看] 我的电脑--此电脑--右键管理--计算机管理--系统工具--事件查看器--Windows日志--应用程序--找错误标志,如下图 [提示] 按部就班,可能并不能解决你的问题, ...

  2. windows平台下cocos2d-x-3.0beta2创建新项目

    我目前使用的版本是cocos2d-x-3.0beta2 前提: 已安装了python2.7.3 已安装了VS2012 打开我的cocos2d-x-3.0beta2所在文件夹F:\Framework\c ...

  3. 利用zabbix监控ogg进程(Windows平台下)

    本文给大家介绍如何监控windows平台下的ogg程序.(注:所有操作都在administrator用户下面进行操作) 监控linux平台下的ogg程序请看:https://www.cnblogs.c ...

  4. 在Windows平台下Qt的exe报错问题排查步骤

    在Windows平台下Qt的exe报错问题排查步骤 工具介绍: 1. Dependency Worker Dependency Worker是一个免费的用具用来扫描任何的32bit 或者64bit 的 ...

  5. [转]Windows平台下Makefile学习笔记

    Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...

  6. Windows平台下Git服务器搭建

    第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” = ...

  7. Windows 平台下Git 服务器搭建

    由于项目中一直在使用git作为版本管理,自己对git的理解.使用都还不是怎么的熟悉,所以准备深入了解一下git及一些常用命令的使用,于是干脆把服务端架上,通过自己的PC作为服务端同时作为客户端的角色进 ...

  8. 【转】Windows平台下Git服务器搭建

    Windows平台下Git服务器搭建 Posted on 2015-05-18 21:29 阿祥当码农 阅读(7637) 评论(0) 编辑 收藏 该文章转自:http://www.codeceo.co ...

  9. Windows平台下的node.js安装

    Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应 ...

随机推荐

  1. 学习笔记--Quartz定时器

    文章同步发表在博主网站朗度云,传输门:http://www.wolfbe.com/detail/201608/338.html 1.Quartz定时器执行流程 Quartz需要定义执行任务.触发器,在 ...

  2. nginx的安装与配置

    1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...

  3. style、currentStyle、getComputedStyle区别介绍

    style.currentStyle.getComputedStyle区别介绍 来自:蓝色天空 样式表有三种方式 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有 ...

  4. 用端口映射在Apache中对每个项目分配端口,实现一个端口访问一个网站

    映口映射的功能主要就是实际互联网可以访问当前进行映射的电脑,首先我们要进行路由器的端口映射,常见的开放端口有80,21,3389等,80是网站常用端口,21是FTP服务器常用端口,3389是远程桌面连 ...

  5. realloc() 用法详解

    原型:extern void *realloc(void *mem_address, unsigned int newsize); 语法:指针名=(数据类型*)realloc(要改变内存大小的指针名, ...

  6. lua5.3调用C/C++

    马上面临毕业设计,打算做点跟网游有关的,先从做周边工具开始,目前正在做一个协议序列化和反序列化的东西,广告一波先: https://github.com/Anti-Magic/rproto 目前非常简 ...

  7. Cygwin安装与配置

    Cygwin可以在windows环境下模拟Linux系统,而且可以重用Linux下面丰富的脚本工具.windows的cmd太弱了.Cygwin是由Cygnus(天鹅座) Solution公司开发,不过 ...

  8. [SQL SERVER系列]之常用函数和开窗函数介绍及实例

    本文主要介绍SQL SERVER数据库中一些常用的系统函数及其SQL SERVER 2005以上支持的开窗函数. 1.常用函数 --从字符串右边截取指定字符数 select RIGHT('HELLO' ...

  9. HTML网页中添加音频视频动画...(转)

    在网页中适当嵌入音频和视频能够充分显示网页的多媒体特性,特别是随着宽带网的普及,使得网络广播和网络视频成为现实,网页音频和视频的重要性也日益突显.具体来说,网页音频和视频的嵌入方法主要有三种: 一.b ...

  10. poj 3249 Test for Job (记忆化深搜)

    http://poj.org/problem?id=3249 Test for Job Time Limit: 5000MS   Memory Limit: 65536K Total Submissi ...