DISM 0x800f0954 오류 해결: WSUS 우회 레지스트리(UseWUServer) 설정으로 .NET 3.5·RSAT 설치 성공시키는 방법

이 글의 목적은 DISM 실행 중 0x800f0954 오류가 발생하는 환경에서 WSUS 참조를 일시 또는 정책적으로 우회하여 선택적 기능(.NET Framework 3.5, RSAT, OpenSSH 등) 설치를 정상화하는 절차를 실무 관점에서 정리하는 것이다.

1. DISM 0x800f0954 오류의 전형적인 증상

DISM으로 Windows 기능을 추가하거나 Optional Feature, Capability를 설치하는 과정에서 0x800f0954 오류가 발생하는 경우가 있다.

대표적으로 .NET Framework 3.5(NetFx3) 활성화, RSAT 설치, OpenSSH Server 설치, 언어팩/기능 온디맨드 설치에서 동일한 코드가 반복되는 경우가 많다.

Windows 기능 켜기/끄기 또는 설정의 선택적 기능 추가 화면에서는 다운로드가 진행되다가 실패로 끝나는 형태로 나타나기도 한다.

2. 발생 원인 정리: 왜 WSUS 환경에서 실패하는가

0x800f0954는 단일 원인만 의미하지 않지만, 실무에서 가장 흔한 케이스는 장치가 선택적 구성요소 다운로드 경로를 인터넷 Windows Update가 아니라 WSUS(SCCM 포함)로 고정 참조하는 상태에서 WSUS가 해당 기능 소스(Features on Demand)를 제공하지 못해 실패하는 상황이다.

조직 정책으로 Windows Update 서비스의 “업데이트 서버”가 내부 WSUS로 지정되어 있으면, DISM은 선택적 구성요소 다운로드도 동일 경로로 시도하는 경향이 있다.

이때 레지스트리의 UseWUServer 값 또는 관련 정책이 우선 적용되어, 화면상으로는 우회 정책을 켰다고 생각해도 실제 동작은 계속 WSUS로 향하는 경우가 있다.

주의 : 회사 장비에서 WSUS 우회는 보안·감사·변경관리 이슈가 될 수 있다. 운영 환경에서는 임시 우회로 설치만 수행하고 즉시 원복하거나, 정식 정책(GPO/MDM)으로 허용 범위를 정의한 뒤 적용해야 한다.

3. 해결 전략 개요

3.1 빠른 임시 우회(가장 많이 쓰는 현장 해법)

레지스트리에서 UseWUServer를 0으로 설정하여 “WSUS 사용”을 끄고, Windows Update 서비스(wuauserv)를 재시작한 뒤 DISM 설치를 수행하는 방식이다.

설치 완료 후 UseWUServer를 1로 되돌려 내부 업데이트 체계를 복구하는 방식으로 운영하는 경우가 많다.

3.2 영구 해법(정책으로 우회 허용)

로컬 또는 도메인 그룹 정책에서 선택적 구성요소/복구 콘텐츠를 WSUS가 아닌 Windows Update에서 직접 받도록 허용하는 항목을 활성화하는 방식이다.

이 방식은 UseWUServer가 다시 1로 돌아가는 환경에서도 동작하도록 설계하는 것이 목표이다.

3.3 대체 소스 지정(오프라인 또는 설치 미디어 활용)

인터넷이 차단된 환경이거나 우회가 정책상 불가능한 경우, SxS 소스 또는 FoD ISO 등 내부 승인된 소스를 지정하여 DISM /Source로 설치하는 방식이 필요하다.

4. 임시 우회 레지스트리 설정: UseWUServer 변경 절차

다음 경로의 UseWUServer 값이 WSUS 사용 여부를 사실상 결정하는 핵심 값으로 취급되는 경우가 많다.

항목 경로/값 의미 권장 사용
UseWUServer HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU (REG_DWORD) 1이면 WSUS 사용, 0이면 Microsoft 업데이트 경로로 전환 시도 설치 시 0, 설치 후 원복 1
WUServer / WUStatusServer HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate (REG_SZ) WSUS 서버 URL 지정 값 필요 시 공백 처리 후 원복

4.1 관리자 권한 CMD로 즉시 적용하는 표준 명령

가장 재현성이 높은 방식은 서비스 재시작까지 함께 수행하는 것이다.

rem 1) WSUS 사용 해제(임시) reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v UseWUServer /t REG_DWORD /d 0 /f rem 2) Windows Update 관련 서비스 재시작 net stop wuauserv net stop bits net stop cryptsvc net start cryptsvc net start bits net start wuauserv

환경에 따라 서비스 중지 순서가 다를 수 있으나, 핵심은 wuauserv를 반드시 재시작하여 레지스트리 변경을 런타임에 반영시키는 것이다.

4.2 WSUS URL 값까지 비우는 강한 우회(필요한 경우에만)

UseWUServer만 0으로 바꿨는데도 동일 증상이 지속되면, WUServer/WUStatusServer가 남아 있는 상태에서 다른 정책과 충돌하는 케이스가 있다.

다음은 “값을 비운다”는 의미의 예시이며, 운영 정책에 따라 사용 여부를 결정해야 한다.

rem WSUS 서버 주소 값 비우기(임시) reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUServer /t REG_SZ /d "" /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUStatusServer /t REG_SZ /d "" /f rem UseWUServer=0 재확인 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v UseWUServer /t REG_DWORD /d 0 /f rem 서비스 재시작 net stop wuauserv net start wuauserv
주의 : 도메인 또는 MDM이 WSUS 값을 주기적으로 재적용하는 환경에서는 위 값이 자동으로 원복될 수 있다. 원복이 즉시 발생하면 “영구 해법(정책 방식)”으로 전환해야 한다.

5. DISM 실행 예시: 오류가 났던 기능을 다시 설치하는 방법

5.1 .NET Framework 3.5(NetFx3) 설치

임시 우회가 적용된 상태에서 다음 명령을 실행하는 방식이 일반적이다.

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

이미지 상태에 따라 /All 옵션이 필요하지 않을 수 있으나, 종속 구성요소 포함을 확실히 하기 위해 함께 사용하는 경우가 많다.

5.2 RSAT, OpenSSH 등 Capability 설치

Windows 10/11에서는 기능이 FeatureName이 아니라 Capability로 제공되는 경우가 많다.

정확한 이름은 환경마다 달라질 수 있으므로, 먼저 목록을 확인하고 설치하는 흐름이 안정적이다.

rem 설치 가능 Capability 확인 DISM /Online /Get-Capabilities | findstr /i "RSAT OpenSSH" rem 예시: OpenSSH Server 설치(이름은 조회 결과에 맞춰 입력) DISM /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

목록 조회 결과의 CapabilityName을 그대로 복사하여 설치하는 것이 오타를 줄이는 방법이다.

6. 설치 후 원복 절차: WSUS 정책 복구

회사 장비에서는 설치가 끝나면 내부 업데이트 체계로 즉시 복귀하는 것이 일반적이다.

rem WSUS 사용 원복 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v UseWUServer /t REG_DWORD /d 1 /f rem 서비스 재시작 net stop wuauserv net start wuauserv

WUServer/WUStatusServer를 비워서 우회했다면, 조직에서 사용하는 원래 값으로 정확히 되돌려야 한다.

주의 : 원래 WSUS 서버 URL을 모르는 상태에서 값을 비웠다면, 장치가 업데이트를 정상적으로 받지 못하는 상태가 될 수 있다. 변경 전 값을 백업하거나 내보내기(reg export)를 선행하는 것이 안전하다.

7. 영구 해법: 그룹 정책으로 선택적 기능은 Windows Update에서 받도록 허용

임시 우회가 반복되거나, UseWUServer가 재부팅/정책 갱신 후 계속 1로 돌아가 설치가 실패한다면 정책으로 해결해야 한다.

실무에서 핵심이 되는 정책은 “선택적 구성요소 설치 및 구성요소 복구 설정 지정” 항목이다.

해당 정책을 사용하면 업데이트는 여전히 WSUS를 따르되, 선택적 기능/복구 콘텐츠는 Windows Update에서 직접 다운로드하도록 허용하는 구성이 가능하다.

7.1 로컬 정책 편집기에서 설정하는 경로

컴퓨터 구성 → 관리 템플릿 → 시스템에서 “선택적 구성요소 설치 및 구성요소 복구 설정 지정”을 찾아 사용하도록 구성하는 방식이다.

정책을 사용으로 전환한 뒤, “복구 콘텐츠 및 선택적 기능을 WSUS 대신 Windows Update에서 직접 다운로드” 옵션을 활성화하는 구성이 일반적으로 효과가 있다.

7.2 정책 적용 확인 포인트

정책 적용 후에는 gpupdate /force로 갱신하고, 다시 한 번 DISM을 실행하여 재현 여부를 확인해야 한다.

정책이 도메인에서 내려오는 환경이라면, 로컬 변경이 덮어써지지 않는지(우선순위)까지 함께 확인해야 한다.

gpupdate /force

8. 현장 점검 체크리스트

점검 항목 확인 방법 정상 기대값 조치
UseWUServer 값 reg query 임시 설치 시 0 0으로 변경 후 wuauserv 재시작
서비스 상태 services.msc 또는 sc query wuauserv, BITS 실행 중지/시작으로 적용 반영
정책 재적용 여부 재부팅 후 값 확인 설치 중에는 유지 계속 원복되면 정책 방식으로 전환
네트워크 차단 프록시/방화벽 정책 확인 Windows Update 접근 가능 차단이면 /Source 방식 고려
대체 소스 필요 인터넷 불가 환경 여부 가능하면 인터넷 설치 미디어 SxS 또는 FoD ISO 사용

9. 실패가 반복될 때의 실무 팁

9.1 “설정은 바꿨는데 계속 0x800f0954”인 경우

wuauserv 재시작 없이 DISM만 반복 실행하면 동일 오류가 지속될 수 있다.

또한 SCCM/관리 에이전트가 레지스트리를 즉시 재작성하는 환경에서는 잠깐 0으로 바뀌었다가 다시 1로 돌아가는 현상이 발생할 수 있다.

이 경우는 임시 우회만으로 해결하려고 시간을 쓰기보다, 정책으로 선택적 기능 다운로드 경로를 정의하는 편이 재현성과 운영 안정성이 높다.

9.2 보안 정책으로 인터넷 업데이트가 막힌 경우

인터넷 Windows Update 접근이 정책상 차단되어 있으면, 우회 설정을 해도 다운로드 자체가 실패한다.

이때는 기능 소스를 사내 파일 서버 또는 승인된 ISO로 제공하고 DISM /Source로 설치하는 방식이 필요하다.

주의 : 임의로 방화벽 예외를 만들거나 보안 정책을 우회하는 방식은 사고로 이어질 수 있다. 조직 표준 절차(변경 요청, 승인, 감사 로그)를 준수해야 한다.

FAQ

DISM 0x800f0954가 .NET 3.5에서 특히 자주 나는 이유는 무엇인가?

.NET 3.5는 기본 이미지에 항상 포함되지 않으며, 설치 시 외부 소스에서 구성요소를 내려받는 형태로 동작하는 경우가 많다. 이때 다운로드 경로가 WSUS로 고정되어 있고 WSUS가 해당 소스를 제공하지 못하면 실패가 발생하기 쉽다.

UseWUServer를 0으로 바꿨는데 재부팅하면 1로 돌아가는 이유는 무엇인가?

도메인 그룹 정책, MDM, SCCM 클라이언트 설정 등이 레지스트리를 재적용하기 때문이다. 이런 환경에서는 임시 우회가 유지되지 않으므로 정책 방식으로 선택적 기능 다운로드를 허용하거나, 승인된 대체 소스를 지정하는 방식이 필요하다.

설치 후 원복을 꼭 해야 하는가?

조직이 WSUS로 업데이트를 통제하는 환경이라면 원복이 필요하다. 원복 없이 장기간 운영하면 업데이트 준수율, 감사, 패치 정책에 문제가 생길 수 있다. 단, 조직이 Windows Update 직접 업데이트를 허용하는 표준이라면 원복 정책은 내부 기준에 따르는 것이 맞다.

인터넷이 완전히 차단된 망에서도 해결할 수 있는가?

가능하다. 다만 이 경우 WSUS 우회 자체가 목적이 아니라, 기능 설치에 필요한 구성요소 소스를 내부에서 제공해야 한다. 설치 미디어의 SxS 경로 또는 별도의 기능 온디맨드 ISO를 승인 절차에 따라 준비한 뒤 DISM /Source로 설치하는 방식이 필요하다.

: