참고 링크
https://www.cisco.com/c/en/us/support/docs/switches/nexus-9000-series-switches/200248-Configuring-Microsoft-Windows-Server-201.html

Configuring Microsoft Windows Server 2012 to provide DHCP services in an eVPN Scenario (VXLAN, Cisco One Fabric, etc)

Since the introduction of Virtual Extensible LAN (VXLAN) and Cisco One Fabric (formerly Dynamic Fabric Automation (DFA)) providing DHCP services has begun

www.cisco.com


시나리오
1. 하나의 네트워크 대역(VLAN도 한 개)에 DHCP 서버를 두고 범위(scope)를 할당
2. 여러 개의 네트워크 대역(VLAN 여러개)을 같은 네트워크(동일한 L3) 구간 내에 존재하는 DHCP서버를 통해 DHCP주소 할당하기
3. 한 개의 네트워크대역을 다른 네트워크 대역에 있는 DHCP 서버를 통해 DHCP 주소 할당하기
4. 여러 개의 네트워크 대역(VLAN 여러개)에 다른 네트워크 대역에 있는 DHCP서버를 통해 DHCP 주소 할당하기


[경험으로 얻어진 필수 상식]

1. 1개의 범위 할당시, DHCP서버는 (1) 같은 VLAN대역에 있어야하고, (2) 해당 범위 내의 IP주소를 보유하고 있어야 클라이언트들이 DHCP를 정상적으로 받아간다.

2. 2개 이상의 범위 할당을 하려고 DHCP서버에 범위를 2개 이상 설정해놓아도, DHCP서버와 다른 VLAN을 가진 애들은 DHCP서버로부터 DHCP 주소를 받아가지 못한다.

3. 이 경우 같은 네트워크 (L3) 내 다른 VLAN을 가진 클라이언트들이 DHCP 주소를 받아가려면 스위치의 VLAN 설정에서 DHCP Relay설정을 해주어야 정상적으로 IP를 받아갈 수 있다.


[추가적으로 경험한 내용]

4. 이젠 다른 네트워크 대역에 존재하는, 즉 라우터 밖으로 나갔다 와야하는 경우, 타 라우터 장비에 존재하는 DHCP서버에서 IP주소를 받아가려면 DHCP Relay설정만으로는 부족하다.

문제를 해결하기위해 Wireshark로 패킷을 까보았다. 목적지 서버까지는 DHCP Discover가 도달하지만, 서버가 보내는 DHCP Offer를 클라이언트쪽으로 스위치가 전달해주지 못한다. 출발지 IP가 상대 네트워크의 Gateway IP로 세팅이 되어있다보니 회신하는 과정에서 패킷이 클라이언트쪽으로 도달하지 못한다. (네트워크 전문가가 아니어서 원인은 잘 모른다)

5. 그래서 Loopback IP를 스위치에 설정해주었다.
어떤 약속된 IP자원을 소모해서 루프백 IP 하나를 스위치에 할당하고, 이제는 그 IP 가 서로 다른 네트워크 장비 간의 통신을 중개해주는 가교 역할을 하는 것이다.

6. 하지만 이 설정만으로 서버에서 만든 DHCP Offer가 클라이언트 PC까지는 전달되었는데, 서버는 최종적으로 ACK까 아닌 NAK를 보내게 된다. 원인은 나도 모르지만 Wireshark로 패킷을 까보면 Discover가 1초에 백개 이상 발생하며, DHCP서버 입장에서는 중복된 요청이 들어오므로 NAK를 뿌리는 것이었다. 해결방법을 찾기 위해 한참을 헤맸다. 결론은 DHCP서버 설정에도 Loopback IP 대역을 할당하는 작업을 해주어야 한다.(자세한 방법은 참고 링크를 보면서 따라 하면 된다.)

7. 그런데 Loopback설정만으로 두 개 이상의 VLAN 대역을 Relay하지 못했다. VLAN1에는 192.168.1.0/24를 할당하고 VLAN2에는 192.168.2.0/24를 할당했다고 하자. VLAN2에서 DHCP를 할당하는데 192.168.1.0대역을 가져가는 것이었다. 그래서 통신이 되지 않았다. 그 원인은 각각의 VLAN은 각각의 Loopback이 필요하기 때문에 Loopback을 VLAN 개수만큼 만들어 스위치에도 넣어주고, DHCP서버에도 만들어야 했다.

8. 마지막으로 IP 할당받을 대역1과 Loopback IP대역 1을 대범위(Superscope)로 묶어 주어야 했다. 각각의 대범위를 만들지 않으면 DHCP를 못가져감을 테스트를 통해 확인했다.

9. Option82라고 해서 스위치의 인증값을 DHCP서버 정책에 넣는 방법(링크참조)에 나와있지만, 운영 환경에서는 그 설정 없이도 잘 DHCP를 가져감을 확인하였다.

10. [번외] Windows DHCP서버2대를 failover 구성하고 C클래스 대역을 범위로 설정하면, 앞의서버는 대략 11~120의 IP 중 앞번호부터 할당하여 대략 11~30번대를 받아갔고 뒤의 서버는 130~250의 IP중 130~150 번대를 받아갔다. 또한 비활성화를 해두어도 주소 임대 현황은 서로 동기화가 되었다.



[결론]
1. 라우터->라우터 이동시 DHCP Relay설정뿐 아니라 Loopback IP 설정이 반드시 필요함.
2. VLAN이 두 개 이상일 경우, 각각의 VLAN에 대해 Loopback IP가 필요하고, 서버 DHCP에 Loopback IP값을 입력하려면 Loopback IP대역으로의 입력이 필요함.(그리고 Loopback IP끼리는 네트워크 범위가 겹치면 안됨)

구성 해보니 Loopback IP 대역은 서브넷 30비트가 제일 좋았음.
예를들어 두 개의 VLAN이 필요한 경우, Loopback은
192.168.100.12/30 , 192.168.100.16/30
으로 설정 해놓고
루프백 IP를
192.168.100.13-14
192.168.100.17-18
이렇게 스위치에 할당하면 문제가 없음.

tasklist /FI "IMAGENAME eq notepad.exe"
프로세스가 실행중이든 실행중이지 않든 쿼리 결과에 대한
%errorlevel%값은 0이더라.

stakoverflow에서
how to check if a process is running via a batch script 참조한결과
find명령어를 추가하여 errorlevel을 조정할 수 있다.

tasklist /FI "IMAGENAME eq notepad.exe" 2>NUL | find /I /N "notepad.exe">NUL

if %ERRORLEVEL%  == 1(
goto INSTALL
)

이 방법으로 PaTray.exe가 프로세스로 떠 있지 않는 이슈를 해결하였다.


Windows 10에서 Adobe Flash Player 업데이트

OS/Windows 2019. 5. 23. 21:40 Posted by ­행복
Adobe Flash Player는 세 가지 버전이 있다.
Adobe Flash Player ActiveX
Adobe Flash Player PPAPI
Adobe Flash Player NPAPI

1.activex는 IE용 Flash Player이며 설치파일은 activex이고  32비트의 경우 c:\windows\system32\macromed\flash 폴더에가면 activex.vch파일과 FlashUtil32_32_0_0_192_ActiveX.exedll가 생긴다.

64비트의 경우 동일폴더에 동일vch파일과 FlashUtil64가 생성되고 c:\windows\syswow64\macromed\flash에도 동일vch파일과 FlashUtil32로 시작하는 exe/dll 파일이 생긴다.


2. PPAPI의 경우는 주로 chrome에서 plugin으로 사용되며 설치파일은 ppapi,  구글 페퍼 플러그인 api라고하고 NPAPI에 대한 수정된 사항이라고 한다. c:\windows\system32\macromed\flash에 생성되는 파일은 pepper.vch 및 FlashUtil32_32_0_0_192_pepper.exe/dll이다.

3. NPAPI의 경우는 파이어폭스 등에서 Plugin으로 사용되며 설치파일은 npapi가 아닌 plugin이다.
c:\windows\system32\macromed\flash에 생성되는 파일은 plugin.vch 및
FlashUtil32_32_0_0_192_Plugin.exe/dll이다.

레지스트리와 해당 파일 유무를 가지고 취약 버전 업데이트를 Msiexec /i /quiet 옵션을 통해 설치해왔는데 전혀 문제가 되지 않았는데, 최근 windows 10에서
Internet Explorer에는 ActiveX를 탑재하고 있어서 설치가 되지 않는 문제를 발견하였다.

flash player activex 오프라인용 설치 프로그램을 실행하면 다음의 메시지가 나온다.
Your Microsoft Internet Explorer browser includes the latest version of the Adobe Flash Player built-in. Windows Update will inform you when new versions of the Flash Playser are available.

설치 경로인 c:\windows\system32(또는 syswow64)\macromed\flash 에 들어가면 activex.vch는 존재하나 관련 exe dll은 나오지 않는다.

WSUS에서 요즘 Update for Adobe Flash Player for Windows 10이나 Windows Server 2016 등이 나오고 있는데... 이제 자체 플러그인 내장 후 Windows Update로 제공하려는 모양이다. 당연히 프로그램 및 기능(appwiz.cpl)에서는 Adobe Flash Player 32 ActiveX를 볼 수 없으며, 설치 시도 후 msiexec /i /L*V 옵션으로 로그을 봐도
MSI (s) (64:6C) [20:58:56:951]: Product: Adobe Flash Player 32 ActiveX -- Installation operation failed.
MSI (s) (64:6C) [20:58:56:951]: Windows Installer에서 제품을 설치했습니다. 제품 이름: Adobe Flash Player 32 ActiveX. 제품 버전: 32.0.0.192. 제품 언어: 1033. 제조 업체: Adobe. 설치 성공 또는 오류 상태:1603.

참고로 정상 설치시 설치 성공 또는 오류 상태: 0.이 나온다.

일단 자동 설치 실패 후 더 이상 진행되지 않으므로 더 보지는 않았지만 windows10 계열의 adobe flash player 보안 관리가 더욱 불편하게 느껴진다.
1편에서 이어집니다.

HKEY_LOCAL_USERS의 레지스트리 변경을 위해서는 스케줄러에서 작업을 실행할 유저는 실제 사용자의 계정으로 등록을 해야 한다는 사실을 알았다. 그러면 이것을 GPO로 구현하려면?
%username%과 같은 변수를 사용해? 어떻게 해야 하지? 여기서 난관이 생겼다.
해당 사항은 아무리 찾아도 구글에 나오지 않는다. 내가 스스로 아이디어를 고안해야 한다.

결론적으로 도메인 사용자 계정은 자기자신의 PC에 대해서 Admin 권한을 갖게 하기 위해 Local의 Administrators의 Member 로서 도메인 유저 계정이 들어 있는 것을 확인하였고
실행계정을 Builtin\Administrators로 해 두고 실행을 하였더니 성공했다!

하지만, 또 다른 문제, 작업이 수행되는 특정 시점에 사용자가 로그온을 하지 않고 있다면 작업이 수행이 될까? 그보다 근본적으로 사용자가 로그온을 하지 않고 있을 때, HKEY_CURRENT_USER는 어떤 값이 담기게 될까?

실험 : echo %username% >> c:\c.txt
regedit /e c:\abc.txt "HKEY_CURRENT_USER"
결과값 : c.txt도 생기지 않았다. 우선 작업 자체가 실행을 못한듯, 실행 결과값은 0x41325이다. 사용자 그룹으로 실행을 유도하니 어떤 사용자가 실행해야 할지 못해서 실행 자체가 돌지 않은 것으로 추정된다.

추가로 확인된 사항 : 빌트인 계정으로 작업 실행을 선택하면, 임의로 사용자가 로그온 할 때 실행 / 로그온 여부에 관계 없이 실행을 선택할 수가 없다!
Administators로 선택하면 사용자가 '로그온할때만 실행'에 체크 되고 비활성화(grayed out)되어있다.
반면 SYSTEM으로 선택하면 '사용자의 로그온 여부에 관계없이 실행'에 체크되고 비활성화 되어 있다.
즉, Administrators로 설정시 반!드!시! interactive로 작업이 실행된다는 의미이고 SYSTEM으로 설정시 반드시 백그라운드에서 작업이 실행된다는 의미이다.


즉, task scheduler 설정에 주의할 점은
interaction이 필요한 경우 Run whether user is logged on or not의 옵션을 선택한 경우 제대로 동작하지 않는다는 것이다. 그런 경우 반드시 사용자가 로그온할때만 실행하는 옵션을 해야 정상 동작한다. (오토핫키 작업등록시 제대로 동작하지 않아서 고민했던 부분이다.)
또한 mapped drive의 drive letter를 경로로 하는 스크립트 사용을 자제 해야 한다는 것이다. task scheduler는 사용자의 net use세팅을 알지 못한다. 따라서 내 스크립트가 내가 실행하면 잘돌아도 작업 스케줄러로 잘 동작하지 않을 수도 있다.

자세한 것은 여기서 확인하자
Please note that if you select the option "Run whether user is logged on or not", tasks will not run interactively. For example, you created a task to launch notepad.exe and it wouldn't run. Because notepad.exe needs user interaction and that lead to task failure. What is the end goal of your task? Is it interactive?

 Furthermore, check the permission. The user account you select for your program must have permission not only to run your program itself and but also to run all other program that related to your program. If the script involves a mapped drive, try use the full path name such as: \\servername\foldername.

 

이제 마지막 HKEY_USERS를 자동으로 설정하게 하는 마무리이다. Administrators로 수행하기 위해 반드시 이 작업은 사용자가 로그온 할때만 실행 되어야 한다. 그래서 트리거를 예정된 시간에 수행할 수 없다. 왜냐하면 사용자의 로그온 여부에 따라 작업이 수행되지 않을 수도 있기 때문이다.

가장 좋은 방법은 사용자가 로그온 할때 이 작업을 수행하는 것이다. 여기서 트리거 탭에서 예약상태가 아닌 로그온 할 때를 선택한다. 로그온 할때를 선택하면 모든 사용자와 특정 사용자가 있다. 혹시나 스마트하게 설정하고 싶어서 Specific user or group에 %LogonDomain%\%Logonuser%로 설정했다. 안된다.
그냥 Any user로 설정했다. 동작한다.

드디어 일주일간 고심했던 긴 여정이 끝나는 순간이었다. 이게 엔지니어다.
어떻게든 방법을 찾아낸다.
HKEY_CURRENT_USER의 레지스트리를 GPO로 내리는 것은 다음이 필요하다.
1. 사용자계정이 Local Administrators소속이어야 한다.
2. GPO작업스케줄러에 Administrators 계정으로 실행 시켜야 한다.(이 설정은 사용자가 로그온 할때만 실행됨)
3. 트리거를 사용자 아무나 로그온 할때로 설정해야 함.


긴 삽질을 통해 느낀점
1. 더이상 내가 찾는 자료가 구글에 없을 수 있다. 최대한 되게끔 하는 아이디어를 고민하고 창의력을 발휘하여 방법을 찾아내야 한다.
2. 자료가 없으면 무식한 실험을 해야한다. 수많은 옵션들의 경우의 수를 일일이 적용시켜가며 도출되는 결과값을 숙지해야 할 필요가 있다. 반복하다보면 실험 자체를 효율적으로 하는 방법까지 찾을 수 있다.
3. 과거 고집을 버리자. 반드시 사용자가 로그온 하지 않을 때 이 설정을 실행시키고 싶다거나, 사용자 SID값을 찾아내어 그것을 변수로 값을 쓴다는 등의 방법은 결론적으로 사용자 로그온시 USERS 레지스트리가 활성화 된다는 대 전제조건이 배제된 것이므로 삽질로 시간만 버리게 된 것이었다. 방법이 안 보일때는 한 발치 뒤로 물러서 전혀 다른 방법을 고안해야 할 필요가 있다. 늘 하던 방법에 얽매여 있으면 그만큼 새로운 아이디어를 찾는데 어려움이 찾아온다.

HKEY_USERS와 Task Scheduler

OS/Windows 2019. 5. 23. 15:08 Posted by ­행복
평소에 실행이 잘 되는 batch파일을 Task Scheduler에 등록했을 때 유독 실행이 되지 않는 경우를 경험해 본 적이 있는가?

이유는 SYSTEM계정, Admin계정, user계정 어떤 계정으로 task를 수행하는지가 다른 결과값을 가져오게 된다.

 이렇게 민감한 Task Scheduler의 작업 동작 성패를 좌우하는 중요한 요소는 다음 두가지가 전부라고 해도 과언이 아니다.
 - When running the task, use the following user account (작업을 수행할 계정)
- user is logged on (사용자의 로그인 여부)

그리고 trigger도 매우 중요하다는 것을 발견했다.

on a schedule(예약 상태)인지 로그온 할 때인지

로그온 할때가 중요한 이유는, 로그온 여부에 따라 레지스트리 상태나 많은 것이 로그온 하지 않을 때랑 다르기 때문이다. 이는 HKEY_CURRENT_USER랑 HKEY_USERS가 다르다.

- Task scheduler의 실행 계정에 따라 발생하는 일

1.
BUILTIN\SYSTEM이 동작을 수행할 때, hostname에 $를 붙인 계정으로 수행을 하게 된다.
확인 방법 : echo %username% >> c:\a.txt
한줄짜리 배치파일을 만든 후 작업 스케줄러에 등록하고 SYSTEM계정으로 실행 후 a.txt파일에 출력된 결과값을 확인

2. Builtin\SYSTEM계정으로 실행 시, HKEY_USERS의 정보를 출력하면, user계정으로 보이는 레지스트리 구조랑 다르다!
확인 방법 : regedit /e c:\b.txt "HKEY_USERS"
스케줄에 등록 후 SYSTEM계정으로 수행하게 한 후, b.txt에 저장된 결과값 확인
.DEFAULT
S-1-5-18
S-1-5-19
S-1-5-20
까지만 구조가 보이고
S-1-5-21-xxxxxxxx-xxxx(User의 SID)는 보이지 않는다.

반면 같은 작업을 user권한으로 실행 해보면 S-1-5-21-xxxxxxx로 시작하는 레지스트리 구조가 보인다!
그리고그것은 곧 그 user의 SID라는 것을 알게 되었다.

참고 : User의 SID를 레지스트리에서 확인하는 방법
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID>\ProfileImagePath"
한 번이라도 사용자가 해당 OS에 로그온 한 경우, ProfileImagePath의 값으로 그 값을 담고있는 KEY의 이름이 곧 SID가 된다.

그리고 HKEY_USERS의 SID는 사용자 경로의 NTUSER.DAT에서 가져오게 된다. 그리고 그 사용자라 로그인을 하면, HKEY_USERS에 자신의 SID로 시작하는 트리가 올라오게 되며, HKEY_CURRENT_USER가 그것과 아주 일치함을 확인할 수 있었다.

예시 : Adobe DC 의 Sandbox 보호모드를 푸는 옵션 설정
HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\DC\Privileged\bProtectedMode
값을 1->0 으로 수정하면 된다.

그리고나서 HKEY_USERS\S-1-5-21-xxxxx-xxxxx\Software\Adobe\Acrobat Reader\DC\Privileged\bProtectedMode값이 0으로 변경되어있음. 즉 동일한 것

즉 HKEY_CURRENT_USER는 HKEY_USERS의 하위 KEY 구조이다.


다시 본론으로 돌아와서
Task Scheduler 에서 HKEY_CURRENT_USER를 바꾸는 다음의 설정을 batch파일로 만들어서 등록해본다.

reg add "HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\DC\Privileged" /v "bProtectedMode" /t REG_DWORD /d "0" /f

이 설정을 bat로 더블클릭해서 실행하면 값이 0으로 잘 바뀌는데 Task Scheduler에 등록만 하면 동작 안하는 이유가 무엇일까?
이것을 아무리 task scheduler에서 실행시켜도 실행결과는 0x0(성공)인데 레지스트리는 그대로이다.
이유를 생각해보면, SYSTEM계정에서 저 명령을 수행하면 HKEY_CURRENT_USER가 수행될 경로는 SYSTEM계정의 입장에서 자기 자신이지 유저 계정이 아니다. 즉 여기서, 엄청나게 중요한 작업을 수행할 계정명을 선택해주어야 하는 이슈가 생기는 것이다.

집구석 Win10 재설치 개삽질기

OS/Windows 2019. 5. 9. 02:55 Posted by ­행복

부끄러워서 쓴다.

나의 독단과 아집은

나의 성장을 방해하는걸까?

정말 오래전부터 하고 싶었던 일이다.

OS를 새로 설치한지 2년은 되었던거같았다.

 

그런데 꼭

OS를 최신버전으로 설치하지 않으면 직성이 안풀린다.

그리고 시도해보지 않은 방법은 안하려고 한다.

그러한 결과가 모여 설치에 삽질을 했다.

win10을 받아도 되는데 최적화나 정품인증 때문에 토렌트를 선호한다던가

굳이 잘 말아놓은 설치usb를 써도 되는데 최신 버전을 써야한다던가

다 떠나서 os포맷 굳이 안해도 성능 저하 없는데 하고 새출발 하려는 욕심이라던가

예전에 쓰던 저장장치에 꼭 디스크 이미지를 말아야 한다던가

 

삽질기 - 투자를 벗어나서 컴퓨터에 상당히 역량을 집중하게 된 2주차다.

이 블로그 3개월간 접속안해서 계정정지 될 정도로 등지고 살았다. 왜?

꼭 나는 32gb짜리 usb3.0 장치를 쓰고자했음

rufus나 windows7 usb tool 전부 실패를 했는데

이미지 말기 시작부터 오류나더니 포맷불가 상태가 됨

와중에 구글링 : diskpart select disk clean으로 되었다 내껀 안됨

SD카드 삭제 프로그램 깔아서 지웠더니 된다 내껀 안됨

disk관리자에서 내꺼 삭제도 안되고 계속 붙었다 떨어졌다 반복하면서 소음만 발생

나는 노트북 탓을 하며 내 NAS에 꽃아봄 - 거기서는 포맷됨 - 아 내 노트북 문제구나

(오류1)

 

NAS에서 이미지 만들기로 함. win7 tool만으로 쓰기로 함

그런데 win7 tool은 닷넷프레임워크 2.0이 있어야 한단다.

해당 서버에 닷넷 4.5 기능 올라가있는데, 고작 이것때문에 3.5를 다시 깔았다.

3.5가 2.0을 포함하더라. 근데 이거 깔리는데 하세월

의 고충을 이겨내고 win7 tool을 실행시킴

하지만 이미지 제작하다가 결국 또 문제 발생함. 여기서부터 미치겠는거임

토렌트 파일 문제일까 다른 파일로 교체해봄

그러고 win7 tool로 교체한 이미지 말았더니 잘 말아졌음.

나는 첫번째 시도한 파일이 오류라고 판단하여 디스크에서 지워버림

(오류2)

 

그런데 그 잘 말아진 이미지로 노트북에 실행하니

ERROR : LEGACY BOOT OF UEFI MEDIA

This drive can only boot in UEFI mode.

It can not boot in BIOS/Legacy mode.

If you wan to boot this drive in BIOS/Legacy mode, you

should recreate it in Rufus using the following settings :

* Partition scheme -> MBR

* Target system -> BIOS...

이라고 나오면서 안됨. 여기서 진짜 개환장할뻔

그래서 MBR과 GPT 찾아보고

이 미친 win7 tool이 GPT로 말아놓았던것임.

그래서 다시 NAS에서 rufus를 실행하게됨...

두번째 이미지를 rufus로 설치하는데 또 설치가 안됨.

이쯤되면 이미지 문제가 아니라 usb자체가 병신이라는걸 눈치챌법도 한데

꿋꿋이 그거에다가 이미지를 만들려는 의지를 보임.

구글링함.

rufus에서 실패한 사례 가지고 검색을 함

누군가가 exfat로 이미지 제작했다고 했으나 MBR 선택시 파일시스템 NTFS밖에 안됨..

여기서도 충분히 usb가 병신이었다는 것을 유추할 수 있었으나 당시엔 머리가 안돌아감.

구글링을 통해 포스팅을 보다가 어떤 사람이 정품 윈도우 이미지 말고 실패하면 이미지 문제는 아니니 usb메모리 문제다 이런 글을 봄

드디어 usb 2.0규격의 대학시절 취업설명회에서 받은 usb메모리를 꺼내듬

다행히 깨끗이 내가 삭제해 놓은게 있어서 그걸로 다시 두번째 이미지를 말아보기로 함.

동시에 원래 쓰던 usb3.0 메모리는 노트북에 꽃아서 포스트에 나온대로 ms 정식 다운로드를 통해 usb 이미지를 만드는 작업을 병행

 

결과는

usb2.0은 rufus로 성공 usb3.0은 예상치 못하게 이유없이 win10 설치하는 프로그램이 알수없는 오류 발생했다고 무책임하게 종료함

너무나 충격적인 결과였음 그 순간에도 usb3.0이 이상할리 없다고 생각했으니까

결국 usb2.0으로 이렇게 설치 완료해서 쓴다.

 

이렇게 개삽질을 하게 된 원인분석

1. 내 독단적이고 고집스러우며 기민하지 못한 ㅄ같은 성격

2. 유일한 고사양 usb3.0(그것도 똥값된지 오래인)으로 몇번이고 이전 버전의 win10을 설치 성공한 과거의 경험

-> usb3.0이 지원되는 장비는 또 우리집에 노트북밖에 없음...ㅡㅡ;; 빠른 설치를 하고 싶었기에 2.0은 planB로도 미리 고려 안함 그게 가장 큰 시간낭비의 원인

3. 실패의 원인을 다각화 하지 못함. 적어도 솔루션 문제라는 것을 탈피하려면 구글에 나오는 방법이 몇번 해봐도 나에게 해당사항이 없으면 삽질을 중단하고 더 근본적인 원인을 바라보아야 했다

그래놓고 rufus가 찜찜해서 win7 tool만 쓰자느니 이미지를 바꾸자느니 제발 공신력 있는 프로그램이 나의 환경에서 안되는 것에 대해 회피하는 방법을 사용하진 말았으면

4. 집에 최신 장비가 없어 ㅡㅡ;;

 

 

 

사후고찰

 

지우기전에 어떤 큰 파일이 있었는지 한 번 찾아나 볼걸

중요한 기로에서 지난 날의 자신의 답답함에 지쳐

그러고 싶은 마음을 무시하고 진행해버렸다.

궁금함이 남지만 이렇게 나의 고질병을 고쳐나가는 연습한걸로.

어차피 중요한 데이터는 없었을 것이다.

어차피 세상 사람들이 나를 기억하는 것은

rawdata보다 SNS에 올린 가공된 데이터일뿐.

솔직히 너도 가공된 데이터를 볼때 더 즐거울걸?

항상 본인 마인드가 문제다.

인식을 바꿔나가야 한다.

 

 

그래도 실패로 배운점

MBR GPT 복습, rufus짱, 닷넷프레임워크, os설치경험치

추후할일

win10 사용 익숙, 매크로 숙달, NAS 메인OS 변경, 휴대폰 초기화 및 최적화

 

증상 : 거지같은 win10이 업데이트를 못받아가서 구글링해서 나온대로 .esd MIME까지 건드렸는데 업데이트 못받아가는 현상 발생

SSL문제인가 싶어 IIS Manager에 bindings에 Http는 8530, https는 8531로 되어있던 것을 https바인딩을 제거해버림
제거 후 IISRESET, WSUS SERVICE를 차례로 리셋 했는데
계속 다음과 같은 에러가 나는 것이었다.

 Exception: System.ServiceModel.ServiceActivationException: The service '/ClientWebService/client.asmx' cannot be activated due to an exception during compilation.  The exception message is: Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http].. ---> System.InvalidOperationException: Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http].


다음의 테크넷에서 천금같은 해결방법을 찾았다. 여기 해결방법 링크

C:\Program Files\Update Services\Tools\wsusutil.exe usecustomwebsite false
 C:\Program Files\Update Services\Tools\wsusutil.exe usecustomwebsite true


false로 바꾸면 기본 wsus 포트가 80으로 바뀌고
true 로 바꾸면 기본 wsus 포트가 8530으로 바뀌는데
Using port number: 8530

이렇게 된 후에 이벤트 로그도 없어지고 정상적으로 원복이 되었던 것이다!

저 오류로그가 발생하는 동안 클라이언트에서 업데이트를 확인하면 오류번호 뜨면서 바로 업데이트가 실패하는 것까지 확인하였다.

느낀점
함부로 건들지 말자
wsusutil.exe가 만능이다

배운점
http://127.0.0.1:8530/ClientWebService/client.asmx
정상적으로 웹페이지가 뜨면 정상, 오류가 발생하면 서비스 재기동, 그래도 안되면 위의 명령어로 서비스가 살아나는지 확인
for /f "tokens=3" %%a in ('wmic os get caption ^| findstr Microsoft') do set wver=%%a

if %wver% equ 7 (
set key=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
)
if %wver% equ 10 (
set key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
)

cscript %WINDIR%\system32\slmgr.vbs /skms #KMS서버의IP주소:1688#
cscript %WINDIR%\system32\slmgr.vbs /ipk %key%
cscript %WINDIR%\system32\slmgr.vbs /ato


위에 게시된 키들은 실제 KMS Client의 키이다.

https://docs.microsoft.com/ko-kr/windows-server/get-started/kmsclientkeys
참조
1. 현재 OS가 32bit 인지 64 bit인지 구별하는 스크립트


IF %PROCESSOR_ARCHITECTURE% == x86 (
goto BIT32
)

IF %PROCESSOR_ARCHITECTURE% == AMD64 (
goto BIT64
)

goto QUIT


:BIT32
<32비트 OS에서 필요한 스크립트 작성>

goto QUIT



:BIT64
<64비트 OS에서 필요한 스크립트 작성>

goto QUIT


:QUIT

Windows Update 제품 구분

OS/Windows 2018. 10. 16. 11:29 Posted by ­행복
현장에서 windows update를 하다보면
2017년 부터 바뀐 MS의 업데이트 방식을 볼 수 있다.

기존에는 업데이트를
update for windows(KBxxxxxxx)
이런 식으로 수십개가 내려오곤 했었는데

2018-10 Security Only Quality Update
-> 종속성이 없다. 이전 업데이트를 대체하지도 않는다. (종속성 마크 아무것도 달리지 않음.)

2018-10 Security Monthly Quality Rollup
-> 전월 업데이트를 대체하고, 차월 업데이트는 이것자신을 대체한다. (종속성마크 파란색 아이콘이 가운데 있는 모양.) 반드시 다음달 업데이트가 나오면 소용없어진다.

2018-10 Cumulative Security Update for Internet Explorer 11
-> 위와 동일

2018-10 (Security) Update for Windows xxx
-> 모든 경우가 존재한다.
1.종속성이 아예 없는 경우
2. 이전업데이트를 대체하고 새 업데이트로 대체됨(가운데파란색)
3. 기존업데이트를 대체하고 자신이 최신업데이트(꼭대기파란색)
4. 종속성이 없는걸로 출발했으나 새 업데이트들로 대체됨(아래오른쪽 파란색)

-> 따라서 이것들은 잘 판단해봐야한다.


실전 - 2018년 한번도 업데이트 안한 서버 대상으로 업데이트중인데
2,3,4,5월 security only quality update for windows server 2008 r2 for x64-based systems는 종속성 없는 업데이트임에도 불구하고 업데이트 failed
(반면 6,7,8,9,10월은 성공함)
리부팅 후 다시 업데이트 확인 -> 2,3,4월 리스트에있길래 설치 명령 내렸더니 Not needed라고 나옴