Enterprise IT Solutions/Microsoft 26

[PowerShell] System.IO.File 클래스를 이용한 파일 분할/병합 파워셸 스크립트

1. 파일 분할하기닷넷의 System.IO.File 크래스를 활용하여 500MiB 단위로 파일을 분할하는 코드입니다. 원본 파일을 2MB씩 읽고 쓰는 이유는 파워셸이 너무 큰 배열을 다룰 수 없기 때문이고, 아마 다른 스크립트 언어도 비슷한 한계를 가지고 있을 것 같습니다. 시스템 메모리가 한정되어 있다는 것도 이유 중 하나입니다. 아래 코드를 실행하면 다운로드 폴더 내의 지정된 파일이 "파일명_part00" 여러 개로 분할됩니다.$file = Read-Host -Prompt "Enter file name to split."$srcFile = "$env:userprofile\Downloads\$file"$outFilePrefix = "$env:userprofile\Downloads\$file"+"_par..

[윈도우 10/11] Windows RE 진입 메뉴(문제 해결 - 고급 옵션 - 명령 프롬프트)가 없을 때

발단윈도우 11로 업그레이드하려고 MBR2GPT를 실행하려다 RE 진입 버튼이 없는 걸 발견했다.원인Windows RE가 비활성화되어 있어서 그렇다.나는 실수로 부트로더와 복구 파티션을 다른 SSD에 설치했다가 그걸 포맷해서 문제가 생겼다.해결 방법REAGENTC.EXE /INFO 명령을 치면 Windows RE 상태가 Disabled로 나올 것이다.이 상태에서 REAGENTC /ENABLE 명령을 치면 "REAGENTC.EXE: 부팅 설정 데이터를 업데이트할 수 없습니다."만 출력된다. (REAGENTC.EXE: Unable to update Boot Configuration Data.)REAGNETC /DISABLE && REAGENTC /ENABLE 명령을 입력하면 RE가 활성화된다.앰퍼샌드(&)를..

KMS 에뮬레이터를 통한 Windows 정품인증 방법

2025년 추신: KMS 매커니즘이 변경된 것 같습니다. 아래 내용을 따라하셔도 최신 버전 윈도우에서는 Activation이 불가능합니다. 지난번에 KMS를 통한 정품 인증 매커니즘에 대해 쓴 글이 있었습니다. 오늘은 공식적인 KMS 호스트가 아닌 파이썬으로 작성된 KMS 에뮬레이터를 통한 activation 방법을 적어 보겠습니다. 소스는 github.com/Py-KMS-Organization/py-kms에, 문서는 py-kms.readthedocs.io에 있습니다. 원래 KMS 호스트에는 Volume Activation Management Tool을 설치해서 아래 화면처럼 라이센스를 관리할 수 있다고 합니다. (KMS 호스트가 MS 인증 서버와 내부 컴퓨터 사이의 프록시 역할을 해 줍니다.)그러나 p..

[윈도우 서버] 이벤트 기반 예약 작업으로 PowerShell 스크립트 실행하기 (Event-triggered Scheduled Task)

윈도우의 작업 스케줄러에는 특정 이벤트 코드가 발생했을 때, 외부 프로그램이나 스크립트가 실행되게 할 수 있는 유용한 기능이 있습니다. 이벤트 뷰어에서 이벤트 항목을 우클릭하거나 작업 스케줄러 MMC에서 새 작업을 만들 때 '새 트리거 만들기'를 통해 이벤트를 선택할 수 있습니다. 예를 들어서, 4720 이벤트가 생겼을 때 그 내용을 텍스트 파일로 기록하고 싶을 수 있습니다. 예약 작업(Task)을 만들기 전에, 스크립트를 먼저 작성해 보았습니다.# 원본 이벤트 문자열$original = wevtutil.exe qe Security /q:"*[System[(EventID=4720)]]" /rd:true /c:1 /f:XML | Out-String# 원하는 부분 문자열 인덱스의 처음과 끝을 잡아서 필요한 ..

윈도우 애플리케이션 네트워크 통신 차단 방법

실행파일 경로 기반 $install = 'C:\Program Files (x86)\HNC\Office 2022\' $execs = ls -File -Recurse -Path $install -Include '*.exe' $execs | % { New-NetFirewallRule -Action Block -Direction Outbound -DisplayName $_.name -Group '_HNC' -Enabled True -Program $_.fullname } $execs | % { New-NetFirewallRule -Action Block -Direction Inbound -DisplayName $_.name -Group '_HNC' -Enabled True -Program $_.fullname ..

Windows 패키지 관리자 "winget"으로 Git 설치하기

언제부턴가 winget이라는 프로그램이 윈도우에 기본 탑재되었습니다. 오늘 처음 사용해 봤는데 굉장히 편하고... 편합니다. 서버 관리나 개발 등의 이유로 리눅스를 사용해오신 분들께는 '패키지 관리자'라는 개념이 당연하게 여겨질 수도 있겠습니다. 레드햇 계열은 rpm, 데비안 계열은 dpkg, 거기에 더해서 yum, dnf와 apt를 자연스럽게 사용하고 있었을 것입니다. winget을 통해서 MS 스토어, 그리고 aka.ms/winget에 수록되어 있는 무료 프로그램을 마치 yum이나 apt를 사용하듯 설치할 수 있습니다. 패키지 검색은 winget search [검색어], 설치는 winget install [이름 또는 ID] 하면 됩니다. 기본적으로 MS 스토어와 aka.ms/winget에 커밋되어 있..

The WinRM client cannot process the request.

오늘 PowerShell Remoting을 통해서 여러 대의 윈도우 호스트들에 보안 패치를 설치하면서 생긴 WinRM 관련 문제와, WinRM 자체에 대해 정리해 보려고 합니다. 먼저 WinRM은 이런 프로토콜입니다. https://docs.microsoft.com/en-us/windows/win32/winrm/portal Windows Remote Management - Win32 apps Windows Remote Management (Windows Remote Management) is the Microsoft implementation of WS-Management Protocol, a standard SOAP-based, firewall-friendly protocol that allows ha..