PowerShell GUI를 활용한 IT 지원 자동화: 사내 개발 경험
4,000–5,000개의 Windows 7–10 워크스테이션을 관리하는 Active Directory 도메인 환경에서 지원 티켓이 IP 주소나 호스트명 없이 도착했습니다. 사용자 PC 정보를 확인하려면 ADUC에서 수동으로 검색해야 했죠: 티켓에서 사용자 이름을 복사하고 콘솔을 탐색한 뒤 계정의 Description 필드에서 호스트명을 추출하는 식입니다. 이 과정이 처리 속도를 늦추었고, 특히 하드웨어 구성을 확인하거나 원격 액세스 없이 일상적인 작업을 할 때 더 큰 문제였습니다.
해결책은 GUI 인터페이스를 갖춘 맞춤형 PowerShell 스크립트였습니다. 사용자 이름을 입력하면 도구가 AD에서 호스트명을 가져오고 계정 및 PC 세부 정보를 수집하며 작업 버튼을 제공합니다. 결과는 하나의 창에 모두 표시됩니다: 상단 패널에 정보, 중간에 기능 버튼, 하단에 출력.
이 스크립트는 오픈소스 LazyWinAdmin GUI(2011)를 분석해 기반으로 처음부터 개발되었으며, 기업 환경에 맞게 조정했습니다. 이를 통해 보안성을 확보하고 특정 작업에 최적화했으며, 중급 개발자 수준의 PowerShell 실무 경험을 쌓았습니다.
도구의 주요 기능
이 도구는 일상적인 IT 지원 시나리오를 포괄합니다. 모든 도메인 PC에서 관리자 권한과 네트워크 액세스(WinRM, SMB, ICMP)가 필요합니다.
핵심 기능은 다음과 같습니다:
- AD 검색 및 데이터: 사용자 이름으로 호스트명, 마지막 로그인 시간, 비밀번호 만료, 호스트명 ping, 전체 이름, 전화번호, 사원 ID, 그룹 멤버십.
- 원격 액세스: MSRA, Dameware, RDP—원하는 대로 선택.
- 하드웨어 진단: PC 구성(Get-WmiObject Win32_ComputerSystem, Win32_Processor 등), HDD S.M.A.R.T. 상태.
- 관리 작업: elevated rights로 mmc 'Computer Management' 실행, PS Remoting, cmd 관리자 권한, 재부팅/셧다운.
- 유지보수: 임시 파일 정리(GPO 불필요), 로컬/로밍 프로필 공간 계산, 소프트웨어 설치 프로그램 복사.
- 소프트웨어 및 할당량: 설치된 소프트웨어 목록(Get-WmiObject Win32_Product), Exchange 메일박스 크기.
- 특수 기능: Windows 방화벽 규칙 재구성, 주변기기 레지스트리 조정, PC로 메시지 전송, 티켓 해결 참조.
- 대량 작업: AD 내보내기(그룹 멤버, 직급별 직원), 그룹 추가.
구현은 ActiveDirectory, WMI/CIM, WinRM 모듈을 사용했습니다. GUI는 Windows Forms(Add-Type -AssemblyName System.Windows.Forms)를 기반으로 하며, TextBox로 사용자 이름 입력, DataGridView로 출력, Buttons로 작업을 처리합니다.
개발 및 개선 과정
처음에는 호스트명 조회 기능부터 시작했습니다. 일상 작업이 드러날 때마다 진단부터 소프트웨어 설치 자동화까지 기능을 점차 추가했습니다. 기본 원칙은 GUI 내 로깅과 원클릭 작업이었습니다.
호스트명 로직 예시:
$username = $textboxLogin.Text
$user = Get-ADUser -Identity $username -Properties Description
$hostname = $user.Description
하드웨어 인벤토리 예시:
Invoke-Command -ComputerName $hostname -ScriptBlock { Get-WmiObject Win32_Processor | Select Name, NumberOfCores }
이 도구는 15명 전문가 팀이 3년간 사용하며 티켓 해결 속도를 크게 높였습니다. 한계: 관리자 권한 의존성, 배포 당시 국내 소프트웨어 대안 없음.
주요 교훈
- 데이터 조회 시간을 분 단위에서 초 단위로 단축해 ADUC 수동 작업을 최소화.
- PC 연결 없이 레벨-2 일상 작업 80%를 커버.
- 전체 도메인 관리자 권한 필요; 제한된 환경에서는 기능이 제약됨.
- PowerShell 5.1+와 AD 모듈, WinRM 활성화 기반.
- 역할별 프로필(다른 버튼 세트)로 확장 가능.
— Editorial Team
아직 댓글이 없습니다.