win11原生外壳

查看 136|回复 7
作者:lomoer   
1、win11原生外壳,体积过大,比精简版的正常系统大多了1.7G,只能当个玩具,验证PE可以用原生外壳。
2、主要问题:除了任务栏、开始菜单、搜索、多标签资源管理器、控制面板等基本组件,其他系统自带组件无法使用,也无法安装uwp应用。
3、原因是0x80073cf6,0xd000001,大意是注册信息不能写入srd文件中。
4、目前发现22621.2066之前版本不稳定,有时外壳不能用。2066、2070的AppX服务比较好,即使不初始化也能用多标签资源管理器。
5、关键点:
               reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v  PathName /t REG_SZ /d "%Windir%" /f
               reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion" /v  PathName /t REG_SZ /d "X:\Windows" /f
               需要初始化com然后调用AppxSysPrep.dll,AppxSysprepSpecializeOnline,或者使用把C:\替换成X:\的srd文件(2066之后)
6、文件、文件夹、服务注册表管够,多多益善。为了用原生外壳,wim文件需要再大500m。
7、用wimbuilder本身会删除Appx需要的文件和注册表,自己制作的时候不要精简、也不要删文件。
8、调用AppxSysPrep的文件lnc,启动时SYSTEM下调用,新建其他管理员用户登录,Administrator在PE下无法使用高版本MSEdge,原因未知。
9、两个文件附件无法上传,自己编译制作吧,2066之后可只用srd文件放入X:\ProgramData\Microsoft\Windows\AppRepository\
lnc.cpp
#include [i]
#include "windows.h"
#include "tchar.h"
int main()
{
    typedef void (WINAPI* APPXPREP)(void);
    APPXPREP AppXprep;
    //std::cout << "Hello World!\n";
    HRESULT hrIni = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    HMODULE hm = LoadLibrary(_T("AppxSysPrep.dll"));
    if (NULL != hm)
    {
        AppXprep = (APPXPREP)GetProcAddress(hm, "AppxSysprepSpecializeOnline");
        if (NULL != AppXprep)
        {
            AppXprep();
        }
        FreeLibrary(hm);      
    }
    if (hrIni == S_OK || hrIni == S_FALSE)
    {
        CoUninitialize();
    }
    std::cout << "HRESULT = "<< hrIni;
}

文件, 外壳, 初始化

viker009   
支持一下
viker009   
支持
viker009   
给力,支持一下,谢谢分享
viker009   
pe原生壳新纪元开启!
viker009   
谢谢楼主分享
viker009   
请网盘发个pe
viker009   
谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部