신규 사용자를 위해 프로비저닝된 Appx가 설치되지 않음

신규 사용자를 위해 프로비저닝된 Appx가 설치되지 않음

Windows 10 설치 프로그램 이미지에 일부 업데이트/추가 패키지를 추가하려고 합니다. (예: 업데이트된 데스크톱 앱 설치 프로그램 및 PowerShell)

오류 없이 탑재된 WIM 이미지에 패키지를 프로비전할 수 있으며, 해당 이미지를 사용하여 Windows를 성공적으로 설치할 수 있습니다.

나는 모든 신규 사용자를 위해 프로비저닝된 패키지가 설치되어 있다는 인상을 받았지만 내가 추가한 패키지는 그렇지 않습니다.

다음과 같이 powershell을 사용하여 수동으로 설치할 수 있습니다(오프라인, 인터넷에서 가져온 항목 없음).

$package = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -eq "Microsoft.DesktopAppInstaller" }
Add-AppxPackage -RegisterByFamilyName -MainPackage $package.PackageName

install.wim을 생성할 때 자동으로 설치되지 않는 단계가 누락되었거나 이것이 예상된 결과입니까?

위와 같이 자동으로 설치하기 위해 처음 로그온할 때 실행할 스크립트를 추가할 수 있지만 꼭 필요한 것이 아니라면 그렇게 하지 않는 것이 좋습니다.

업데이트

다음은 DesktopAppInstaller를 추가한 방법의 예입니다.

# example
# the following files exist
# C:\Deploy\install.wim
# C:\Deploy\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# C:\Deploy\Packages\Microsoft.UI.Xaml.2.7.appx
# C:\Deploy\Packages\Microsoft.VCLibs.x64.14.00.Desktop.appx
# C:\Deploy\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe_License1.xml
# C:\Deploy\mount (an empty folder)    

$packages = "C:\Deploy\Packages"
$mount = "C:\Deploy\mount"
$image = "C:\Deploy\install.wim"

Mount-WindowsImage -Path $mount -ImagePath $image -Index 1

Add-AppxProvisionedPackage -Path $mount -PackagePath $packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -DependencyPackagePath $packages\Microsoft.UI.Xaml.2.7.appx,$packages\Microsoft.VCLibs.x64.14.00.Desktop.appx -LicensePath $packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe_License1.xml

Dismount-WindowsImage -Path $mount -Save

# the updated install.wim is then copied to the installation media

업데이트

일부 문서를 읽어보면 불가능할 수도 있는 것 같습니다. GitHub에서 다운로드했지만 거기에서 다운로드할 수 있으므로 여전히 스토어 앱으로 간주될 것입니다.

Microsoft Store에서 다운로드한 앱은 사이드로드할 수 없습니다. 귀하의 비즈니스 라인에 속하지 않은 Windows 앱을 설치하려면 Microsoft Store를 사용해야 합니다.

https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/sideload-apps-with-dism-s14?view=windows-11

업데이트

추가 실험을 거친 후 최종적으로 사용자 상호 작용 없이 앱이 설치됩니다.

그러나 그렇게 하는 데 걸리는 15분 정도는 이상적이지 않습니다!

AppxLogs를 살펴보면 설치가 시작되기 전에 "Edge" 또는 "Search"(WSearch Service) 작업이 시작된 후 약 15분 정도의 시간이 있었지만 그들이 무엇을 하고 있었는지, 어떻게 중지하는지 알 수 없었습니다.

관리자 권한이 필요하기 때문에 위의 수동 명령을 자동으로 실행하는 방법을 찾을 수 없었지만 문서를 읽은 후에는 Get-AppxProvisionedPackage이것이 필요한 유일한 명령이 Add-AppxPackage제대로 실행됩니다.

다음은 설치 속도를 높이기 위해 RunOnce 작업을 추가한 방법의 예입니다.

# working example
# the following files exist
# C:\Deploy\install.wim
# C:\Deploy\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# C:\Deploy\Packages\Microsoft.UI.Xaml.2.7.appx
# C:\Deploy\Packages\Microsoft.VCLibs.x64.14.00.Desktop.appx
# C:\Deploy\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe_License1.xml
# C:\Deploy\mount (an empty folder)    

$packages = "C:\Deploy\Packages"
$mount = "C:\Deploy\mount"
$image = "C:\Deploy\install.wim"

Mount-WindowsImage -Path $mount -ImagePath $image -Index 1

Add-AppxProvisionedPackage -Path $mount -PackagePath $packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -DependencyPackagePath $packages\Microsoft.UI.Xaml.2.7.appx,$packages\Microsoft.VCLibs.x64.14.00.Desktop.appx -LicensePath $packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe_License1.xml

$packageName = Get-AppxProvisionedPackage -Path $mount | Where-Object { $_.DisplayName -eq "Microsoft.DesktopAppInstaller" } | Select-Object -ExpandProperty PackageName

reg load "HKU\DefaultUser" "$mount\Users\Default\NTUSER.DAT"

$key = "Registry::HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\RunOnce"

# create RunOnce if not exist 
# close the handle to allow the hive to unload successfully
if ( -Not (Test-Path $key)) {
    (New-Item -Path $key -Force).Handle.Close()
}

New-ItemProperty -Path $key -Name "DeployAppInstaller" -PropertyType ExpandString -Value ("""%systemroot%\System32\WindowsPowerShell\v1.0\powershell.exe"" -WindowStyle Hidden -ExecutionPolicy ByPass -Command ""Add-AppxPackage -RegisterByFamilyName -MainPackage '{0}'""" -f $packageName) -Force

# sleep may not be required
[gq]::Collect()
Start-Sleep -Seconds 1

reg unload "HKU\DefaultUser"

Dismount-WindowsImage -Path $mount -Save

# the updated install.wim is then copied to the installation media

관련 정보