yourtablecloth / TableCloth

식탁보 프로젝트
GNU Affero General Public License v3.0
906 stars 52 forks source link

WinSxS 전처리 로직 추가 #203

Closed rkttu closed 6 months ago

rkttu commented 6 months ago

인터넷 등기소를 비롯한 일부 레거시 애플리케이션들이 Microsoft XML Parser 4.0, Visual C++ 2008 런타임 패키지처럼 WinSxS 패키지를 배포하려는 경우 제대로 설치되지 않는 문제가 있음.

이 부분을 일괄적으로 해결하기 위하여 WinSxS와 Trusted Installer 서비스를 사용할 수 있도록 전처리 로직을 Spork 유틸리티에 내장하는 것을 검토해보려 한다.

단, 이 전처리 로직은 Windows Sandbox 모드일 때에만 실행되도록 제한해야 한다.

takeown.exe /f "$env:WINDIR\winsxs" /a /r /d Y
icacls.exe "$env:WINDIR\winsxs" /grant "Administrators:(OI)(CI)F" /T
mkdir "$env:WINDIR\winsxs\Backup" | Out-Null
mkdir "$env:WINDIR\winsxs\Catalogs" | Out-Null
mkdir "$env:WINDIR\winsxs\FileMaps" | Out-Null
mkdir "$env:WINDIR\winsxs\Fusion" | Out-Null
mkdir "$env:WINDIR\winsxs\InstallTemp" | Out-Null
Set-Service -StartupType Automatic -ServiceName TrustedInstaller
Start-Service -ServiceName TrustedInstaller

참고로 위의 초기화 스크립트는 인터넷 등기소 msvcrt 문제 해결을 위해 처음 개발한 스크립트이다.

rkttu commented 6 months ago

이 코드를 적용한 후 케이뱅크, 법원등기소 사이트 같이 VC++ 2008 런타임에 의존하는 패키지를 쓰는 곳의 설치 경험이 개선되는지 확인해본다.