无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 12264|回复: 38
打印 上一主题 下一主题

[分享] 高版本Win10PE多用户切换

    [复制链接]
跳转到指定楼层
1#
发表于 2019-10-5 01:51:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 slore 于 2019-10-10 02:23 编辑

正常Windows无法启动至SYSTEM用户桌面,不存在一个叫“SYSTEM”的用户。
通常正常系统下可以在不同用户间切换,且保持所有用户已运行的程序不中断。



但是PE默认是进入SYSTEM用户“桌面”环境,没有其他用户。
通过补充注册表服务,dll文件的方式,可以在PE下启用多用户登录环境,
就可以使用Administrator,GUEST(PE下通常不用),其他用户(PE下通常不用)进行登录。

在Administrator,GUEST,其他自建用户间是可以和正常系统一样进行互相切换的。
但是无法切换到默认的SYSTEM用户环境。(早期WIN10版本的PE也可以的,忘了从什么版本开始不能了)

根据一个朋友的调查,明白了为什么在新版本无法切换的原因,并通过调试系统服务,
强制更改SYSTEM用户“登录状态”,使系统认为和通常用户一样可以切换,
从而实现Administrator用户切换到SYSTEM。

根据这个调查结果,我确认了到目前已知的20H1内测版本,确实通过该方法
都可以切换至SYSTEM用户环境。


登录SYSTEM=>启动外壳,完成桌面等快捷方式初始化
再登录Administrator=>启动外壳,完成桌面等快捷方式初始化

不依赖于任何PE启动管理器,都可以。
大家知道的,注册表的Winlogon项目下面的 userinit可以设置用户登录时调用脚本控制初始化。


但是如果直接启动登录Administrator=>启动外壳,完成桌面等快捷方式初始化
在回到SYSTEM用户,让其启动外壳,完成桌面等快捷方式初始化的话,
就是需要PE启动管理器来感知用户切换的时机,来响应初始化SYSTEM用户环境。

基于10.0.18990 x64构建PE动态图(Gif)演示:




上图效果,使用WimBuilder2_2019.10.10更新版(启动管理器选择LUA,账户管理中启用Admin用户),
即可自己构建随意切换用户的PE。下载地址:
forum.php?mod=redirect&goto=findpost&ptid=411399&pid=3871787&fromuid=166812

github下载:
https://github.com/slorelee/wimb ... -Full.2019-10-10.7z

网盘下载(WimBuilder2-Full.2019-10-10.7z 18MB):
链接:https://pan.baidu.com/s/1SlGSJPk4RV-GJQco8o3lZA
提取码:elvb

WimBuilder2_2019.10.10版本支持所有RS5以上版本(x86, x64) PE的用户切换。

启动管理器使用PE默认的startnet.cmd也可以进行管理员登录,SYSTEM用户随意切换的脚本见#2代码:

  1. 10月底公开,
  2. 扫描二维码支持WinXShell,WimBuilder2项目,捐赠10元以上者,发送 捐赠id信息 站内消息,提前获取#2代码。
复制代码

PECMD脚本不熟,没有针对PECMD启动管理器的脚本,不过参照startnet.cmd批处理,应该很容易。


不依赖任何启动管理器,仅使用系统自带命令,也可以进行切换,
不增加文件注册表,不增加wim体积的方法也有:

  1. 12月底公开原理,代码,
  2. 扫描二维码支持WinXShell,WimBuilder2项目,捐赠50元以上者,发送 捐赠id信息 站内消息,提前获取#3原理,代码。
复制代码


支付宝


微信
2#
 楼主| 发表于 2019-10-5 01:52:32 | 只看该作者
本帖最后由 slore 于 2019-10-31 20:07 编辑

月底已至,密码移出。


启动管理器使用PE默认的startnet.cmd也可以进行管理员登录,SYSTEM用户随意切换的脚本如下:

  1. @echo off

  2. rem hide this console window
  3. if exist "%ProgramFiles%\WinXShell\WinXShell.exe" (
  4.   title PE_STARTNET_WINDOW
  5.   "%ProgramFiles%\WinXShell\WinXShell.exe" -luacode "HideWindow('ConsoleWindowClass', 'PE_STARTNET_WINDOW')"
  6. )

  7. if "x%~1"=="x" call :OSInit
  8. call :UserLogon "%~1"
  9. call :PreShell "%~1"
  10. call :RunShell
  11. call :PostShell

  12. if not "x%USERNAME%"=="xSYSTEM" goto :EOF
  13. echo SYSTEM account inited
  14. cmd.exe

  15. goto :EOF

  16. :OSInit
  17. echo "%~nx0" > "X:\Windows\Temp\SYSTEM_LOADER"
  18. wpeinit.exe
  19. call "X:\PEMaterial\Autoruns\Runner.bat" OSInit
  20. goto :EOF

  21. :PreShell
  22. if "x%~1"=="x" set USERPROFILE=X:\Users\Default
  23. set Desktop=%USERPROFILE%\Desktop
  24. set "Programs=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"

  25. if exist %SystemRoot%\System32\IME_Cmd.cmd (
  26.     call %SystemRoot%\System32\IME_Cmd.cmd
  27. )

  28. call "X:\PEMaterial\Autoruns\Runner.bat" Startup\BeforeShell
  29. goto :EOF

  30. :RunShell
  31. if exist "%windir%\explorer.exe" (
  32.     if "x%USERNAME%"=="xSYSTEM" start explorer.exe
  33.     if exist "%ProgramFiles%\WinXShell\WinXShell.exe" (
  34.         start "wxsDaemon" "%ProgramFiles%\WinXShell\WinXShell.exe" -regist -daemon
  35.     )
  36. ) else (
  37.     if exist "%ProgramFiles%\WinXShell\WinXShell.exe" (
  38.         if "x%USERNAME%"=="xSYSTEM" (
  39.             start "WinXShell" "%ProgramFiles%\WinXShell\WinXShell.exe" -regist -winpe
  40.         )
  41.     )
  42. )
  43. goto :EOF

  44. :PostShell
  45. if "x%USERNAME%"=="xSYSTEM" echo SYSTEM > "X:\Windows\Temp\SYSTEM_UserInited"
  46. call "X:\PEMaterial\Autoruns\Runner.bat" Startup
  47. goto :EOF

  48. :UserLogon
  49. if "x%~1"=="x-init" goto :EOF
  50. if not exist "%WinDir%\System32\LogonAdmin.bat" goto :EOF
  51. if not exist "%ProgramFiles%\WinXShell\WinXShell.exe" goto :EOF

  52. if "x%~1"=="x-user" goto :END_UI_LOGON

  53. rem 1 - SYSTEM, 2 - ADMIN
  54. start "wxsUI_Logon" /wait "%ProgramFiles%\WinXShell\WinXShell.exe" -ui -jcfg "X:\PEMaterial\UI_LogonPE.jcfg"
  55. echo set Logon_User=ADMIN
  56. if not "x%errorlevel%"=="x2" (
  57.   echo set Logon_User=SYSTEM
  58.   goto :EOF
  59. )

  60. :END_UI_LOGON
  61. call LogonAdmin.bat
  62. echo rem Waiting until ADMIN => SYSTEM
  63. if exist "X:\Windows\Temp\SYSTEM_UserInited" goto :EOF
  64. echo rem Waiting until ADMIN => SYSTEM
  65. start "WaitForSession_SYSTEM" /wait "%ProgramFiles%\WinXShell\WinXShell.exe" -luacode WaitForSession('SYSTEM')
  66. echo rem Detect ADMIN => SYSTEM session changing, init for SYSTEM account
复制代码


PECMD脚本不熟,没有针对PECMD启动管理器的脚本,不过参照startnet.cmd批处理,应该很容易。





回复

使用道具 举报

3#
 楼主| 发表于 2019-10-5 01:53:36 | 只看该作者
本帖最后由 slore 于 2019-12-31 20:37 编辑


月底已至,密码移出。
Z:\Dev\WimBuilder2\Projects\WIN10XPE\00-Configures\x-Account\last.bat
  1. if not "x%opt[account.admin_enabled]%"=="xtrue" goto :EOF

  2. rem patch for 20H1 x64
  3. binmay.exe -u "%X_SYS%\lsm.dll" -s "E8 87 CA FC FF" -r "B8 01 00 00 00"
  4. fc /b "%X_SYS%\lsm.dll.org" "%X_SYS%\lsm.dll"
  5. del /q "%X_SYS%\lsm.dll.org"
复制代码


回复

使用道具 举报

4#
发表于 2019-10-5 05:00:52 | 只看该作者
卧槽,这样岂不是可以不依靠pe组件了
回复

使用道具 举报

5#
发表于 2019-10-5 08:42:35 | 只看该作者
佩服,研究的很深刻
回复

使用道具 举报

6#
发表于 2019-10-5 09:22:55 | 只看该作者
强大的技术贴!
回复

使用道具 举报

7#
发表于 2019-10-5 11:15:26 | 只看该作者
https://github.com/slorelee/wimb ... WimBuilder2-Full.7z
下载没速度,下一会儿就失败了,不知道什么原因?

点评

github访问,网络不好,多下载几次。记得确认md5。我晚点打包发附件。  发表于 2019-10-5 11:41
回复

使用道具 举报

8#
发表于 2019-10-5 11:22:38 | 只看该作者


在管理员登录屏幕上
该域不存在或无法访问。
有什么解决办法?

点评

默认选项?添加WORKGROUP失败。添加startnet -g workgroup试试。  发表于 2019-10-5 11:39
回复

使用道具 举报

9#
发表于 2019-10-5 12:33:13 | 只看该作者
本帖最后由 liuzhaoyzz 于 2019-10-5 12:56 编辑

提高github下载速度的方法【100%有效】可达到2MB
https://blog.csdn.net/kcx64/article/details/83866633
因为大家都知道的原因,在国内从github上面下载代码的速度峰值通常都是20kB/s。这种速度对于那些小项目还好,而对于大一些的并且带有很多子模块的项目来讲就跟耽误时间。而常见的的方法无非就是修改HOST或者挂VPN,实际用起来并不稳定。
这里提供一种新的方法,下载速度可以达到 1~2MB/s

1. 利用开源中国提供的代码仓库
标题已经说的很清楚了,我想对于经常使用git的人来讲,很可能已经知道了。对于新手刚接触git的人来讲,可能你只知道github。
实际上,国内也有很多代码仓库提供方,国外也不只github。只不过国内也是刚刚开始,关注的人不多。
开源中国提供的代码仓库提供了一个功能,就是它可以将github账号中的代码 clone 到开源中国的账户中去。这个代码仓库叫做 码云 ,没错就是码云??。
要求你有一个github账户,一个码云gitee账户。
步骤很简单

将github上面你想要搞下来的项目首先 frok 到你自己的github的账户中去。耗时:一瞬间
登录gitee,没有的自行注册。网页中有添加项目的按钮,一个加号。点击加号,下拉列表里面有 迁移github项目 的选项,点开后按照提示关联自己的github账号,之后选择你要迁移的项目,按提示操作。耗时:不到三分钟。
按照 clone github项目方法, clone 迁移到gitee账户中的项目。区别是 clone 链接换成了目标项目在gitee中的链接。通常下载速度是以MB/s为单位的。
按照上面的方法,基本上不再需要整夜挂机 clone 代码了。


我今天也花了一上午的时间下载20191005full版本,用的就是上面的方法。
从github上面fork,然后从github克隆到gitee,找到方法了,几分钟就搞定了,下载地址我分享出来:
https://gitee.com/liuzhaoyzz/wimbuilder2/releases
我感觉在国内,gitee要比github有太多的优势,源代码的上传下载完全可以用gitforwindows的GUI版本,我试了上传下载很快。
1、gitforwindows:http://npm.taobao.org/mirrors/git-for-windows/
2、Git GUI可视化操作教程:https://www.cnblogs.com/zhoumiao/p/8018249.html

slore大神在一楼分享的20191005full版本,建议把vender打包进去,毕竟这是release版本啊。
我用这版本构建测试了下,1、SwitchUser还是不能从admin切换到system啊?用的还是这个cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso
2、构建出来的ISO体积比上个版本大概大了8MB,我不知道是不是SwitchUser文件增加的原因,还是其他原因?还没有深入研究对比。
boot.wim\sources这个目录倒底有无用处?对于LTSB删除这个会提示出错,LTSC我删除了也没有影响。

        

点评

Full就是带vendor的打包版本(用户切换必须用最新版的WinXShell),18MB。 放假前只处理了, Windows 10 RS4~20H1 x64的用户切换。 你这个ISO估计不行。假期结束了,会去补充  详情 回复 发表于 2019-10-5 12:48
回复

使用道具 举报

10#
 楼主| 发表于 2019-10-5 12:48:26 | 只看该作者
本帖最后由 slore 于 2019-10-5 12:54 编辑
liuzhaoyzz 发表于 2019-10-5 12:33
提高github下载速度的方法【100%有效】可达到2MB
https://blog.csdn.net/kcx64/article/details/83866633
...


Full就是带vendor的打包版本(用户切换必须用最新版的WinXShell),18MB。

放假前只处理了, Windows 10 RS4~20H1 x64的ISO用户切换。
你这个ISO估计不行。假期结束了,会去补充x86版本,随便把你这个版本看下,理论上Win10任意版本都可以,但是我只测试了RS5,19H1,20H1。

source是微软原版winre.wim启动时运行的系统安装,维护程序,可以删除才对。

早期版本,我不太清楚。
回复

使用道具 举报

11#
发表于 2019-10-5 12:54:22 | 只看该作者
本帖最后由 liuzhaoyzz 于 2019-10-5 12:57 编辑

哦,我搞错了,githee克隆得来的似乎只有master主分支的源代码,没有release版本,显示的是发行版,结果不是,我下载的其实是master版本的源代码,我自己放了vender进去,应该是跟20191005full版本一样的了。

哦,ISO是这个cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso,粘贴错了。        

点评

switchtoadmin分支的代码,没有合并到master上。只放vendor也不行。你要克隆这个分支。gitee快的话,节后克隆一下。  发表于 2019-10-5 12:57
回复

使用道具 举报

12#
发表于 2019-10-5 13:00:14 | 只看该作者
今天我在家下载20191005full版本最快只有250KB/S的样子,到了后面就断了,似乎github不支持断点续传,所以我想到了gitee克隆的办法,结果release没有克隆下来。        

点评

vendor都是exe没有提交到代码库上,方便master更新,release是单独发布自己的打包版本,里面还有精简字体等。 没有被管理的文件,是克隆不了的。 电脑没电,晚上回去,补下论坛附件包。  详情 回复 发表于 2019-10-5 13:04
回复

使用道具 举报

13#
 楼主| 发表于 2019-10-5 13:04:51 | 只看该作者
liuzhaoyzz 发表于 2019-10-5 13:00
今天我在家下载20191005full版本最快只有250KB/S的样子,到了后面就断了,似乎github不支持断点续传,所以 ...

vendor都是exe没有提交到代码库上,方便master更新,release是单独发布自己的打包版本,里面还有精简字体等。

没有被管理的文件,是克隆不了的。
电脑没电,晚上回去,补下论坛附件包。
回复

使用道具 举报

14#
发表于 2019-10-5 13:08:14 | 只看该作者
没有被管理的文件,是克隆不了的。
      确实是这个样子。

slore大神辛苦了!原创技术分析和解决方案!
回复

使用道具 举报

15#
发表于 2019-10-6 10:23:12 | 只看该作者
本帖最后由 liuzhaoyzz 于 2019-10-6 10:26 编辑

其实我也是在想该在哪里回复。因为20191005是在这个帖子发布的,所以就顺便回复了。
关于SwitchUser,我试了cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso构建的PE下都正常,来回切换,只是winxshell等进程,默认是admin登录的,切换到system之后,似乎还是admin登录的,是不是正常的?
        

Windows 10 x64-2019-10-06-10-20-12.png (149.84 KB, 下载次数: 119)

Windows 10 x64-2019-10-06-10-20-12.png

Windows 10 x64-2019-10-06-10-19-15.png (154.05 KB, 下载次数: 102)

Windows 10 x64-2019-10-06-10-19-15.png

点评

你滚动条往下,应该可以看到SYSTEM也应该有。 多个用户是各自的进程,互不影响,与正常系统一样。 SYSTEM是比Admin应该多一个进程,就是启动的加载器。  详情 回复 发表于 2019-10-6 10:32
回复

使用道具 举报

16#
 楼主| 发表于 2019-10-6 10:32:09 | 只看该作者
liuzhaoyzz 发表于 2019-10-6 10:23
其实我也是在想该在哪里回复。因为20191005是在这个帖子发布的,所以就顺便回复了。
关于SwitchUser,我试 ...


你滚动条往下,应该可以看到SYSTEM也应该有。
多个用户是各自的进程,互不影响,与正常系统一样。
SYSTEM是比Admin应该多一个进程,就是PE的启动管理器。

点评

确实如你所说,网下滚的话可以看到winxshell有admin和system身份登录的进程。  详情 回复 发表于 2019-10-6 10:36
回复

使用道具 举报

17#
发表于 2019-10-6 10:36:55 | 只看该作者
本帖最后由 liuzhaoyzz 于 2019-10-6 10:48 编辑
slore 发表于 2019-10-6 10:32
你滚动条往下,应该可以看到SYSTEM也应该有。
多个用户是各自的进程,互不影响,与正常系统一样。
SY ...


确实如你所说,往下滚的话可以看到winxshell有admin和system身份登录的进程。        

Windows 10 x64-2019-10-06-10-37-23.png (88.58 KB, 下载次数: 118)

Windows 10 x64-2019-10-06-10-37-23.png
回复

使用道具 举报

18#
发表于 2019-10-6 17:30:43 | 只看该作者
Full就是带vendor的打包版本(用户切换必须用最新版的WinXShell),18MB。
回复

使用道具 举报

19#
发表于 2020-10-16 18:35:15 | 只看该作者
学习学习
回复

使用道具 举报

20#
发表于 2020-11-12 10:50:05 | 只看该作者
我制作的win10PE在登录admin的时候不显示“请稍候”,因为开机直接运行admin登录,导致会在开机后先黑屏5秒钟,再显示登录界面,让强迫症看着很难受。测试了,不是缺失文件的问题,应该是注册表的问题。
回复

使用道具 举报

21#
发表于 2020-11-13 11:05:22 | 只看该作者
这个PE可以给一个下载地址吗?wim,iso都可以。想研究一下他的登录过程

点评

直接用WimBuilder2选择启用Administrator账户构建就是了。  发表于 2020-11-14 12:12
回复

使用道具 举报

22#
发表于 2020-11-14 16:52:26 | 只看该作者
WimBuilder2-Full.v2020-10-10   制作的全能PE   1607滚动条后黑屏  20h2版滚动条直接重启

点评

感谢大神的回复 马上测试下  详情 回复 发表于 2020-11-14 16:58
20h2版 需要升级到 WimBuilder2.v2020-11-11 版本。【关于】- 【更新】。 1607老版本PE不支持。  发表于 2020-11-14 16:54
回复

使用道具 举报

23#
发表于 2020-11-14 16:58:08 | 只看该作者
23456 发表于 2020-11-14 16:52
WimBuilder2-Full.v2020-10-10   制作的全能PE   1607滚动条后黑屏  20h2版滚动条直接重启

感谢大神的回复   马上测试下
回复

使用道具 举报

24#
发表于 2023-3-6 10:11:26 | 只看该作者
6
回复

使用道具 举报

25#
发表于 2023-4-29 14:40:17 | 只看该作者
SYSTEM-RAMOS 发表于 2020-11-13 11:05
这个PE可以给一个下载地址吗?wim,iso都可以。想研究一下他的登录过程

ZDY,你的Win11PE是怎么实现默认进Admin账户和加安全选项的?

点评

参考: http://wuyou.net/forum.php?mod=viewthread&tid=388510  详情 回复 发表于 2023-5-6 18:10
回复

使用道具 举报

26#
发表于 2023-5-3 08:33:41 | 只看该作者
有没有Pe加锁定,注销,安全选项的方法?

点评

注销,锁定正常的吧,不过点击了,没system选,所以注册表禁用了。  详情 回复 发表于 2023-5-3 11:22
回复

使用道具 举报

27#
 楼主| 发表于 2023-5-3 11:22:51 | 只看该作者
CYYspace 发表于 2023-5-3 08:33
有没有Pe加锁定,注销,安全选项的方法?

注销,锁定正常的吧,不过点击了,没system选,所以注册表禁用了。

回复

使用道具 举报

28#
发表于 2023-5-6 18:10:50 | 只看该作者
CYYspace 发表于 2023-4-29 14:40
ZDY,你的Win11PE是怎么实现默认进Admin账户和加安全选项的?

参考:
http://wuyou.net/forum.php?mod=viewthread&tid=388510
回复

使用道具 举报

29#
发表于 2023-5-12 21:32:21 | 只看该作者
SYSTEM-RAMOS 发表于 2023-5-6 18:10
参考:
http://wuyou.net/forum.php?mod=viewthread&tid=388510

谢谢ZDY真是我的偶像!
回复

使用道具 举报

30#
发表于 2023-5-28 15:48:14 | 只看该作者
SYSTEM-RAMOS 发表于 2023-5-6 18:10
参考:
http://wuyou.net/forum.php?mod=viewthread&tid=388510

请问如何解决PE Admin账户的安全选项点击“任务管理器”没反应?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-19 11:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表