본문 바로가기
IT Knowledge/Client(PC, 기타)

PC/Server 원격 재부팅/종료 (Powershell 스크립트)

2021. 3. 24.

 

지난 글을 통해 PC의 정기적인 재부팅 방법을 알아보았습니다. 하지만 정기 재부팅이 아닌 경우에는 굳이 스케줄러까지 걸면 번거로움이 많겠죠? 

 

이번 포스팅의 예약 재부팅 방법은 다음과 같은 상황에서 유용합니다.

- 서버 역할의 장비와 같이 항상 켜져있어야 하지만 유지보수를 위해 일시적인 재부팅을 해야할 때

- 사용자(현업)와의 스케줄 조정으로 시간이 빈번하게 변경될 때 등... 

 

PC, Server 원격 재부팅/종료 (예약 재부팅, 종료)

 

동작 화면부터 보겠습니다. 재부팅/종료를 예약하면 다음 화면과 같이 타이머가 발생합니다. 종료 시점이 언제인지, 시간이 얼마나 남았는지 표기해주고 필요 시, 취소할 수 있습니다.

 

 

 PowerShell (파워쉘)

 

PowerShell(파워쉘) ISE 를 이용해 작업합니다. 반드시 관리자 권한으로 실행해주세요.

 

 

 

 PowerShell Script (파워쉘 스크립트)

 

전체 스크립트는 아래 덧붙이고, 먼저 값을 변경해야하는 부분 먼저 보겠습니다.

 

 

① 재부팅/종료 실행날짜, 시간을 입력합니다.  ** 이전 시점의 날짜, 시간 입력 시 즉시 실행되니 주의하세요.

② 대상 PC, 서버 이름을 입력합니다. 

③ 정해진 시간이 되면 동작하는 스크립트입니다.

> '-Force'는 반드시 붙여주세요

> Restart-Computer/Stop-Computer 명령어는 각각 재부팅/종료 명렁어입니다.

 

 

 

④ 정해진 시간 이전에 동작하는 스크립트입니다. 위에서 보여드린 동작화면이 나타납니다. 

 

 

 

 PowerShell Script (전체)

 

## 서버 재부팅 시각 설정.
## 예시   -  $time = "2017-12-29 10:10:0 AM"

time = "2021-03-24 03:30:0 PM"        

$h1 = "컴퓨터이름" ## PC, Server 이름 입력

while ($true)
{
clear
if ((get-date) -ge $time)
{
     #Restart-Computer -computername $h1 -Force ## $h1 PC/Server 재부팅 명령어
     #Stop-Computer -computername $h1    -Force ## $h1 PC/Server 종료 명령어

return

}
else
{
      write-host "Shutdown : $time" -ForegroundColor Red
      $remain = NEW-TIMESPAN -Start (get-date) -End $time

      write-host "남은시각 :"$remain.Days "일"$remain.Hours"시"$remain.Minutes"분"$remain.Seconds"초" " (취소하려면 CTRL + C를 눌러주세요.)" -ForegroundColor Yellow
      write-Host

      write-host "종료/재부팅 대상" -ForegroundColor Cyan
      write-host "===================="
      write-host "$h1"
}
Start-Sleep 1
}


서버 관리자 입장에서는 정기적인 재부팅보다 이번 포스팅의 재부팅 방식을 훨씬 많이 활용하고 있는데요, 많은 도움이 되길 바랍니다.

 

정기적인 재부팅 관리는 아래 글을 참고해주세요.

2021.03.24 - [IT Knowledge/Client(PC, 기타)] - PC/Server 원격 재부팅/종료 (Powershell 스크립트)

반응형

댓글