SharedIT | 묻고 답하기(AMP)

WSUS Client 설정 시 스크립트로 가능한가요?도와주세요ㅠ

안녕하세요.

WSUS Client 스크립트를 만들어서 배포 해보려고 확인중인데요. 

(PC 대수가 많아서 스크립트를 통해서 배포가 필요한 상황입니다)

  • gpedit.msc > 컴퓨터 구성 > 관리 템플릿 > Windows > WindowsUpdate ...

아래와 같이 적용 해도 실제 gpedit.msc 에는 설정이(구성되지 않음/사용안함/사용) 변경되지 않는데,,,,

변경할 수 있는 방법이 있을까요?

아니면, 아래와 같이 레지스트리만 적용해도 gpedit.msc 설정은 변경 안되지만 동일하게 기능을 사용할 수 있다고 생각해도 무방할까요? 

했던 방법들은 나열해볼게요.(모두 gpedit.msc 설정 변경 실패했지만..)

  • 1.CMD를 통한 아래와 같이 레지스트리 변경

  • 2.POWERSHELL을 통한 변경

  • 1.Set-ItemProperty

  • 2.Set-PolicyFileEntry

     3. 레지스트리 파일로 만들어서 병합

 이러한 방법들로 시도를 해봤는데 안되었습니다..

혹시 방법 아시는 분 있으시면 도움 부탁드립니다 ... ㅠㅠ

레지스트리 설정예시)

reg add HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate /v WUServer /t reg_sz /d "http://ip:8530" /f


reg add HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate /v WUStatusServer /t reg_sz /d "http://ip:8530" /f


reg add HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU /v UseWUServer /t reg_dword /d 1 /f


reg add HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU /v NoAutoUpdate /t reg_dword /d 0 /f


reg add HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowsWindowsUpdateAU /v AUOptions /t reg_dword /d 3 /f

3개의 답변이 있습니다.

wansoo
  0 추천 | 3달 전

gpedit.msc 그룹 정책 편집기에서 기본적으로 읽어 오는 registry 값은 해당 사용자에만 적용되는 

HKEY_USERS\ 아래에 있는 저장 영역에서 가져오게 되기 때문에 실제 업데이트에 사용되는 정보라 할 수 없습니다.


window 11의 경우에 

HKEY_USERS\{사용자에 해당하는 일련번호값}\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{일련번호값}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate

와 같이 사용자 마다, OS 버전에 따라, 컴퓨터 마다 다른 값이고, reg나 powershell 명령으로 접근하는 영역이 아니고, 접근해서 정보를 가져오더라도 윈도 업데이트에 사용하기에는 맞지 않을거라 보여지고요.



그룹 정책 편집기에서 적용한 내용을 적용시킬 경우에 HKEY_USERS 아래에 있는 사용자별 정보를 저장하는 영역과 HKEY_LOCAL_MACHINE 아래에 있는 해당 컴퓨터 전체에 영향을 미치는 레지스트리에 정보를 저장하게 되고요.


사용자 정책 편집기에서 설정한 내용이 HKEY_LOCAL_MACHINE\ 아래 영역에 적용되지 않을 경우에는 gpupdate /force 명령을 사용해서 정책을 업데이트 시켜 주면 되겠고...



정책 적용 여부를 확인해 볼 수 있는 명령으로는

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

명령이나,


powershell 명령으로

gp HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate

명령으로 확인해 볼 수 있겠고요.



배치 파일을 아래와 같이 만들어서 설정을 적용하면 되지 않을까 싶어 보이네요.


====================================================

@echo off

rem WSUS 서버 설정 - HTTP 이름을 기준으로 서버 설정

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v WUServer /t reg_sz /d "http://server주소:8530" /f


rem WSUS 통계 서버 설정

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v WUStatusServer /t reg_sz /d "http://서버주소" /f


rem Windows 업데이트 대신 자체 업데이트 서버를 사용하도록 설정

rem ( 0일 경우 윈도 업데이트, 1일 경우 지정한 업데이트 서비스 사용

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer /t reg_dword /d 1 /f


rem 자동 업데이트 사용 설정

rem 0: 자동 업데이트를 사용할  있음(기본값). 1: 자동 업데이트를 사용할  없음.

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v NoAutoUpdate /t reg_dword /d  0 /f


rem 업데이트 알림 설정

rem 1: 자동 업데이트에서 컴퓨터를 최신 상태로 유지하지 않음, 2: 다운로드  설치를 알림

rem 3: 자동으로 다운로드하고 설치 알림을 보냄, 4: 자동으로 다운로드하고 설치를 예약

reg add HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v AUOptions /t reg_dword /d 3 /f


rem update 서비스  시작

net stop wuauserv && net start wuauserv


rem WSUS 동기화 업데이트 

wuauclt /detectnow



TDK | 3달 전

답변 감사합니다.

위에 방법도 제가 해봤던 방법이라 안되네요..

찾아보니깐 로컬그룹정책 < 캐시 < 레지스트리로 레지스트리를 변경한다고 로컬그룹정책이 변경되지는 않는다고는 어디서 들은것 같은데...ㅠ그래서 그런걸수도 있을까요ㅠ

wansoo | 3달 전

설정한 정책이 적용되지 않을때 강제 적용 시키기 위해 사용하는 명령이 

gpupdate /force

가 되겠고요.



WSUS 서버와의 통신이 되지 않는다거나, 다른 문제가 있는 건 아닐까요..?


서버와의 통신은 원할한지, 어떤 차단 설정이 되어 있는 것은 아닌지, 서버와 클라이언트의 설정이 제대로 되어 있는지 부터 체크해 보아야 하지 않을까 싶어 보이네요.

앵그리파파
  0 추천 | 4달 전

내용을 보니 머리가 어질어질 하네요..^^

제목에 충실해서, 스크립트로 구성은 할 수 있습니다.

내용을 보니 했던 방법으로 

  • 1.POWERSHELL을 통한 변경

  • 1.Set-ItemProperty

  • 2.Set-PolicyFileEntry

을 언급했는데,

$wsusServer = "http://wsus서버 URL:8530"

# Configure WSUS server URL
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "WUServer" -Value $wsusServer
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "WUStatusServer" -Value $wsusServer

# Configure WSUS server usage
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "UseWUServer" -Value 1

# Enable automatic updates
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 0

# Set AUOptions to schedule updates
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUOptions" -Value 3


작성한 스크립트를 .ps1 확장자로 저장하고 대상 PC에서 실행하면 될 것 같은데, 안되다는 건가요? 시도해봤던 스크립트와 다르다면 다시 한번 확인해보세요. ^^


앵그리파파 | 4달 전

만약 안된다면, 오류 처리를 추가하고 윈도우 업데이트 서비스가 다시 시작되도록 수정해서 다시 확인해보세요.

그리고, 관리자 권한으로 실행하세요.

try {

본문 내용

(추가내용)

# Restart Windows Update service
    Restart-Service -Name wuauserv -Force
    Write-Host "WSUS client configuration applied successfully."

}

catch {

Write-Host "Error: $_"

}


이렇게 하면 스크립트 실행 중 오류가 발생한 경우 콘솔에 표시됩니다. 또한 윈도우 업데이트 로그 (%windir%\WindowsUpdate.log) 에서 오류 메시지를 확인할 수 있습니다.

TDK | 4달 전

답변 감사합니다.

ps1로 만들어서는 안해봤고 명령어를 직접 파워쉘에 입력해서 해봣는데 되지는 않았습니다.ㅠㅠ(됐다라는 기준은 gpedit.msc 의 설정이 바꼈다는 기준으로 말씀드려요!)


오류 처리하는 부분 추가해서 ps1 만들어서 해보겠습니다 ㅠ며칠동안 이것때매 스트레스가..

TDK | 4달 전

위와 같이 ps1 실행 후 파워쉘에서 Get-ItemProperty 명령어로 변경 사항 보면 Set-ItemProperty로 설정한 값은 변경 되었다고 출력 되는데요.... 정작 gpedit.msc 설정은 변경이 안되어있네요 ㅠㅠ...

왜그런걸까요..오류 로그는 따로 없는 것 같아요..

PC 재부팅하면 설정한 값은 다시 초기화 되구요..

앵그리파파 | 4달 전

ㅜㅜ; 그렇다면, 처음부터 다시 한 후 관리자 권한으로 파워쉘에서 gpupdate /force를 실행해보세요. 이렇게 하면 모든 변경 사항이 즉시 적용될 것입니다. 

그리고, PC 재부팅하면 설정한 값이 다시 초기화가 된다면, 음~~ 혹시 레지스트리 설정이나 충돌하는 설정 등이 없는지도 한번 체크해 보세요. 

이래도 저래도 안된다면....ㅜㅜ; 처음부터 다시 .....

wansoo
  0 추천 | 4달 전

배치 파일에 아래와 같이 넣고...


reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"  /v WUServer /t reg_sz /d "http://ip:8530" /f

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUStatusServer /t reg_sz /d "http://ip:8530" /f

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateAU" /v UseWUServer /t reg_dword /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateAU" /v NoAutoUpdate /t reg_dword /d 0 /f

reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdateAU" /v AUOptions /t reg_dword /d 3 /f


관리자 권한에서 실행되게 하면 될것 같네요.

TDK | 4달 전

이렇게도 해봤는데 안되던데..ㅠㅠ

위 스크립트 돌리고 gpedit.msc 의 윈도우업데이트 사용 여부 부분 보면 그대로 이더라구요..(default:구성되지않음)