설치 중단에서 PowerShell 자동화까지: 나의 Windows Server 2019 여정

발행: (2026년 1월 16일 오전 02:35 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

번역할 텍스트가 제공되지 않았습니다. 번역을 원하는 본문을 그대로 복사해서 알려주시면 한국어로 번역해 드리겠습니다.

소개: 도전 과제

최근에 포괄적인 실습 프로젝트에 도전했습니다: 처음부터 기능적인 Windows Server 2019 환경을 배포하는 것이었습니다. 목표는 단순히 OS를 설치하는 것이 아니라, 자동화를 사용해 사용자, 그룹 및 보안 파일 공유를 관리함으로써 실제 현업 시스템 관리자처럼 환경을 구성하는 것이었습니다.

프로젝트를 시작할 때는 초보자 같은 느낌이었지만, 끝에 다다랐을 때는 인프라를 관리하기 위해 여러 줄에 걸친 PowerShell 스크립트를 작성하고 있었습니다.

Phase 1: 설정 및 “The Freeze”

내 실험실 환경은 Oracle VirtualBox에서 실행되었습니다. 설치 과정에서 가상화 문제 해결에 대한 첫 번째 중요한 교훈을 얻었습니다.

초기에 Windows Server 설치가 “spinning dots” 부팅 화면에서 계속 멈추었습니다. VM 설정을 자세히 살펴본 결과, 최신 서버 OS는 특정 가상화 하드웨어 기능을 필요로 한다는 것을 깨달았습니다.

The Fix

VM 구성에 중요한 프로세서 기능이 누락되어 있었습니다. VirtualBox 프로세서 설정에서 PAE/NX를 활성화하고 비디오 메모리를 늘렸습니다. 이러한 조정을 적용한 후, 설치는 문제 없이 데스크톱 환경까지 진행되었습니다.

Phase 2: 기본 구성 (수동 작업)

관리자 계정으로 로그인한 후, 첫 번째 단계는 서버에 정체성을 부여하는 것이었습니다.

실제 네트워크에서는 서버가 항상 찾아질 수 있도록 고정 주소가 필요합니다. 실험실 환경에 맞는 고정 IPv4 주소(10.0.2.15)를 사용하여 네트워크 어댑터를 설정했습니다.

또한 일반적인 Windows 이름에서 의미 있는 이름으로 컴퓨터 이름을 변경했습니다: WIN‑SERVER‑01. GUI를 사용할 수도 있었지만, 빠른 이름 변경과 재시작을 위해 PowerShell을 사용했습니다:

Rename-Computer -NewName "WIN-SERVER-01" -Restart

3단계: 자동화의 힘 (멋진 기능)

요구 사항은 여러 사용자(Alice, Bob, Charlie)를 생성하고, 이들을 부서(HR, IT)에 할당하며, 첫 로그인 시 비밀번호를 변경하도록 하는 것이었습니다. 이를 수동으로 수행하면 수십 번의 클릭이 필요하므로, 저는 몇 초 만에 처리할 수 있는 PowerShell 스크립트를 작성했습니다.

스크립팅 접근 방식

ISE를 사용하여 루프와 조건문을 활용한 스크립트를 작성했습니다. 사용자를 만들기 전에 해당 사용자 또는 그룹이 존재하는지 확인하여, 스크립트를 멱등성(여러 번 실행해도 안전) 있게 만들었습니다.

# Automating User Creation
$users = @("Alice", "Bob", "Charlie")
foreach ($user in $users) {
    # Create the user
    New-LocalUser -Name $user -Password $securePassword -Description "Staff"

    # Force password change at next login
    $userObj = [ADSI]"WinNT://$env:COMPUTERNAME/$user,user"
    $userObj.PasswordExpired = 1
    $userObj.SetInfo()
}

사용자 스크립트

Source:

4단계: 권한 및 강화

파일 공유

제한된 폴더 HRDocsITDocs를 만들었습니다. PowerShell을 사용하여 적절한 그룹만 해당 문서에 접근할 수 있도록 하여 최소 권한 원칙을 적용했습니다.

보안 강화

기본 보안 조치로, 익명 접근을 방지하기 위해 내장된 Guest 계정을 비활성화했습니다. PowerShell을 이용하면 이를 쉽게 확인할 수 있었습니다.

Security Hardening

결론 및 교훈

이 프로젝트는 Windows Server 관리에 대한 훌륭한 집중 강좌였습니다. 가장 큰 교훈은 무엇을 구성해야 하는지를 아는 것뿐만 아니라, 어떻게 효율적으로 수행할지를 아는 것이었습니다.

GUI는 학습에 도움이 되지만, PowerShell은 확장 가능하고 반복 가능한 시스템 관리에 필수적입니다. 초기 설치 장벽을 극복하고 스크립트가 환경을 성공적으로 배포하는 모습을 보는 것은 큰 승리처럼 느껴졌습니다.

Back to Blog

관련 글

더 보기 »

기술은 구원자가 아니라 촉진자다

왜 사고의 명확성이 사용하는 도구보다 더 중요한가? Technology는 종종 마법 스위치처럼 취급된다—켜기만 하면 모든 것이 개선된다. 새로운 software, ...

에이전틱 코딩에 입문하기

Copilot Agent와의 경험 나는 주로 GitHub Copilot을 사용해 인라인 편집과 PR 리뷰를 수행했으며, 대부분의 사고는 내 머리로 했습니다. 최근 나는 t...