Computer >> 컴퓨터 >  >> 시스템 >> Windows

PowerShell로 Windows 10 컴퓨터를 원격에서 재시작하는 6가지 방법

시스템 관리자라면 서버나 시스템을 재시작해야 하는 상황이 자주 발생합니다. 물론 그래픽 사용자 인터페이스(GUI)를 통해서도 Windows 10을 원격으로 종료하거나 재시작할 수 있지만, PowerShell은 훨씬 더 유연하고 강력한 원격 재부팅 방법들을 제공합니다. 이 글에서는 실무에서 활용할 수 있는 6가지 대표적인 방법을 소개합니다.

PowerShell로 Windows 10을 원격 재시작하는 방법

아래 방법들을 사용하기 전에 먼저 확인해야 할 사항이 있습니다. 원격 시스템에 접속하고 필요한 인증을 진행할 수 있는지, 그리고 해당 원격 시스템에 재부팅 보류 작업(pending reboot)이 없는지 점검하세요.

또한 다음 두 가지 조건이 충족되어야 합니다.

  • 원격 컴퓨터의 로컬 관리자(Administrators) 그룹에 속한 사용자 계정
  • Windows PowerShell 또는 PowerShell Core

1] Restart-Computer cmdlet 사용

Restart-Computer는 유연한 매개변수를 갖춘 가장 기본적인 cmdlet입니다. 이 명령이 정상적으로 동작하려면 WinRM이 구성되어 있고 원격 컴퓨터의 Windows 방화벽에서 허용되어야 하며, WMI 역시 방화벽에서 허용되어야 합니다.

Restart-Computer -ComputerName $ComputerName -Force

여러 대의 컴퓨터를 동시에 병렬로 재시작하려면 아래 명령을 실행하세요.

$ComputerArray | ForEach-Object -Parallel {
Restart-Computer -ComputerName $_ -Force
} -ThrottleLimit 3

2] Invoke-CimMethod 사용

Invoke-CimMethod는 WMI 메서드를 호출하여 원격 시스템을 재부팅하는 방식입니다. Restart-Computer만큼 유연하지는 않지만 CIM 세션 기반의 안정적인 대안이 될 수 있습니다.

이 명령이 동작하려면 WinRM이 구성되어 있고 원격 컴퓨터의 Windows 방화벽에서 허용되어야 한다는 추가 전제 조건이 있습니다.

Invoke-CimMethod -ComputerName $ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'

3] shutdown.exe 사용

shutdown.exe는 Windows에 기본 내장된 표준 실행 파일로, 엄밀히 말하면 PowerShell 명령은 아니지만 다양하고 강력한 옵션을 제공합니다.

이 명령이 동작하려면 원격 컴퓨터에서 원격 레지스트리(Remote Registry) 서비스가 활성화되어 있고, Windows 방화벽에서 WMI가 허용되어야 합니다.

shutdown.exe /m \\remotecomputer /r /t 0

4] PSExec.exe 사용

Sysinternals 도구 모음에서 가장 널리 쓰이는 유틸리티 중 하나인 psexec.exe는 원격 시스템과 손쉽게 상호작용할 수 있는 독특한 기능들을 제공합니다.

이 명령이 동작하려면 SMB 서비스가 실행 중이고, 파일 및 프린터 공유가 활성화되어 있으며, 단순 파일 공유(simple file sharing)는 비활성화되어 있고, admin$ 관리 공유에 접근 가능해야 합니다.

psexec.exe -d -h \\remotecomputer "shutdown.exe /r /t 0 /f"

5] RunDLL32.exe 사용

rundll32.exe는 shell32.dll 같은 내부 실행 파일이나 Windows API의 특정 메서드를 호출할 수 있게 해주는 도구입니다. 이 기능을 활용해 시스템을 재시작할 수 있지만, rundll32 자체만으로는 원격 실행이 불가능하므로 원격 시스템에서 Invoke-Command와 결합하여 사용해야 합니다.

Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }

6] Taskkill.exe 사용

마지막 방법은 taskkill.exe입니다. 이 유틸리티도 우회적인 방식이지만 Windows 재시작 기능을 제공합니다. lsass.exe 프로세스를 강제로 종료하면 Windows가 재시작됩니다.

taskkill.exe /S \\remotecomputer /IM lsass.exe /F

지금까지 PowerShell을 활용하여 원격 컴퓨터를 재시작하는 6가지 방법을 살펴보았습니다. 환경과 보안 정책에 맞는 방법을 선택하여 활용하시기 바랍니다.