Windows에서 Linux의 wget 이나 curl 비슷한 기능 실행하기

아무래도 GUI를 기본으로 하는 Windows라는 OS는 Command line 도구들이 조금 빈약합니다.
간단한 테스트나 다운로드를 위해 Linux에서 wget이나 curl을 많이 사용했는데,
Windows에 없어서 조금 불편할 때가 있습니다.
그나마 PowerShell을 통해 아래 명령어로 약간 비슷하게 흉내는 낼 수 있습니다.

# System.Net.WebClient 사용하기
$client = New-Object System.Net.WebClient
$client.DownloadFile("http://www.example.com/file.txt","C:\tmp\file.txt")
# Invoke-WebRequest 사용하기
Invoke-WebRequest -OutFile index.html http://www.example.com

그래도 영… wget이나 curl을 Windows 버전으로 구하는 게…

Windows 10 업데이트 KB4493509 설치 중 0x8e5e03fa 발생할 경우

Windows Update 문제 해결사를 실행해 본다

Windows 설정 > 업데이트 및 보안 > 문제 해결 > Windows 업데이트
이렇게 해서 문제 하결이 안되면 다음으로

Windows Update 서비스 관련 초기화

관리자 쉘을 엽니다. (이제 Windows 10 에서 기본이 PowerShell 인데, 명령 프롬프트여도 무방)
아래 명령을 하나씩 실행합니다.

net stop wuauserv
net stop cryptsvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start wuauserv
net start cryptsvc
net start bits
net start msiserver

이제 컴퓨터릴 재시작 하고 나서 업데이트를 재시도 합니다.
그리고 나서 이제 불필요해진 .old 폴더를 찾아가서 삭제합니다.
그래도 안되면…

이제 희망이 거의 없다

마지막으로 기대 볼 만한 것은​

서드파티 보안 솔루션 삭제 (쉽게 얘기하면 은행 사이트, 정부 사이트 등에서 마구 설치하는 잡다하고 세상 쓸모 없는 녀석들)

​그래도 안되면… 정상적인 업데이트 파일을 받을 수 있는지 확인…
당연히 인터넷이 안정적이여야 하고,

Windows 설정 > 시간 및 언어 > 지역 > 국가 또는 지역… 지역이 이상하면 해당 지역과 언어에 맞는 업데이트 파일을 받지 못할 수 있다고 하네요…

​그래도 안되면 시스템 파일 검사 (당연히 관리자 권한으로)

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

그래도 안되면 msconfig를 실행해서 일반 > 시작 모드 선택 을 선택 모드로 하고
시스템 서비스만 로드하고, 시작 항목은 로드 하지 않도록 한 뒤,
서비스 탭 (msconfig 의 3번째 탭)에서 Microsoft의 서비스를 제외한 나머지를 모두 사용 안함 처리
그리고 재시작 해서 시도…

아마 여기까지 오면 포맷 하거나 초기화를 하는 것이 나을지도 모르겠습니다.

마지막으로는 Windows Update Catalog 사이트에서 해당 업데이트를 받아서 직접 설치를 시도해 봅니다.

https://www.catalog.update.microsoft.com/Home.aspx

​이제 해결이 되었나요?

해결 되었으면 좋겠네요…
BS는 서비스 관련 초기화를 했더니 해결 되었습니다.

Windows 10 1809 다중 사용자 환경

BS가 iMac + Boot Camp 로 Windows 10 Pro 를 설치해서 사용 중입니다.
그리고 Windows 10 에 BS, 아내, 아이들 4개의 계정을 만들었습니다.
그런데 Windows 10 이라는 Desktop 용 OS의 기본 동작 중 하나가 불편을 줍니다.
최근 사용한 사용자를 자동으로 로그인 시키고, 이전에 실행 중이던 프로세스를 자동으로 실행하는 기능입니다.
PC를 혼자서 사용할 때에는 유용할 수 있는 기능이지만 다중 사용자 환경에서는 아래와 같은 상황이 벌어집니다.

  • PC를 켜서 BS가 사용 후 시스템 종료
  • PC를 켜서 아이가 사용
  • 아이가 PC를 종료하려고 하면 BS의 계정이 로그인 되어 있는데 종료하겠냐고 확인함
  • 아이는 아빠가 하던 무언가가 사라질까 걱정되어 PC를 종료하지 못함

유저가 아래의 설정에서 해당 기능을 On/Off 할 수 있습니다.

설정 > 계정 > 로그인 옵션 > “업데이트하거나 다시 시작한 후 내 로그인 정보를 사용하여 내 디바이스 설정을 완료합니다”

하지만 계정마다 설정해야 하는 문제가 있기 때문에 아래와 같은 방법으로 시스템 설정을 바꾸는 것이 좋습니다.

  • gpedit.msc 를 실행합니다.
  • 컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > Windows 로그온 옵션 항목으로 이동합니다.
  • “Sign-in last interactive user automatically after a system-initiated restart” 라는 항목의 구성을 “사용 안 함”으로 설정합니다.

레지스트리 값 경로

  • 키: HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
  • 값 이름: DisableAutomaticRestartSignOn
  • 위 값이 존재하지 않을 때 : 구성하지 않음 (Not Configured) (기본값)
  • 위 값이 0 : 사용 (자동 로그인 됨)
  • 위 값이 1 : 사용 안 함 (자동 로그인 되지 않음)

Windows 10 의 다중 사용자 환경에서 잊지 않고 설정하세요.
참고자료: https://docs.microsoft.com/ko-kr/windows-server/identity/ad-ds/manage/component-updates/winlogon-automatic-restart-sign-on–arso-

Windows Server 작업 관리자에 디스크 성능 표시 방법

Windows Server 를 작업 PC의 OS로 사용하는 유저가 거의 없을테지만
BS와 같이 서버 프로그램 개발을 위해 서비스 환경과 최대한 유사한 환경에서 작업하는 유저도 있을텐데
TaskManager(작업관리자)로 디스크 성능을 잠깐 보려는 경우…
Windows 데스크탑 OS와 달리 없을 수도 있는데…

작업 관리자를 모두 닫고
관리자 권한으로 diskperf -Y 를 실행하고
다시 작업 관리자를 열어보면 보인다.

탐색기에서 파일 경로 복사

은근히 이걸 잘 모르는 사용자가 많다.
Windows Explorer(탐색기)에서 파일이나 폴더를 우클릭하면 다양한 메뉴를 볼 수 있는데, 그냥 우클릭한 경우와 Shift를 누르고 우클릭한 경우 출력되는 메뉴의 내용이 다르다.

Shift 우클릭을 한 경우 추가로 나오는 대표적인 메뉴가 “경로로 복사” 이다.

예를 들어 D:\Downloads 를 우클릭하여 경로로 복사를 하면, 클립보드에 “D:\Downloads” 라는 문자열이 복사된다.

이걸 사용하지 않고 동일한 작업을 하려면 속성을 열어서 경로와 파일명을 각각 다시 복사해야 하는데, 속성은 또다른 기능을 수행하므로 불편하다.

매일 쓰는 컴퓨터와 OS의 기능을 최대한 활용하는 것이 업무의 효율을 높이고 본인도 편하게 작업할 수 있음을 꼭 기억하자.

WSL – Windows Subsystem for Linux

  • Windows 에서 Linux 프로그램을 맛볼 수 있는 기능
  • Windows 10 1607 에서 시작
  • 64비트만 가능
    당연히 이 가짜 Linux에서 실행되는 프로그램도 64비트용이어야 하고
  • Windows Server 2019 부터 서버 제품에도 포함되었음

처음에는 Ubuntu 만 가능했지만 Windows 1709 부터 Windows Store 를 통해 배포되는 형식으로 바뀌면서 Fedora, SUSE 이미지도 제공됨… 그리고 점점 늘어나고 있긴 함.

그런데 이걸 어디다가 써먹지!!!???

일단은 무조건 개발자를 위한 도구라는 것!!!
일반적인 Linux 로 생각하고 사용하기에는 성능이 너무 너무 떨어짐.
Hyper-V에 Linux 설치한 것이 더 빠를지도 모름

BS 생각엔…
MS가 생각하길… 이대로 있다가는 안될 거 같아. 뭔가 변화가 필요해…
그리하여 MS는 Linux와 친해지고, Open Source Project 들과 친해지는 과정을 가는데…
GitHub를 인수하고, Eclipse 재단에 가입하고, MS의 OS가 아닌 환경을 위한 Visual Studio Code를 만들고, 몇몇 MS의 제품을 Open Source로 바꾸고…
그런 일련의 변화 중에서 Linux 개발을 위해 MS Windows 를 버리고 Linux 나 macOS 를 사용할 필요가 없이 Windows 하나로 모두 해결 가능한 상태를 만들고 싶었고,
Windows NT 시절의 그 모습이 떠올랐던게 아닐까? [위키의 Windows NT 구조]

아직은 갈 길이 멀지만… 업계에서 핫한 소프트웨어들 중심으로 점차 안정적인 모습을 갖춰가고 있음.

참고자료
[MS의 릴리즈 노트]