PowerShell 실행 서비스
다른 서버의 PowerShell을 실행하기 위해서는 원격 명령 실행 방법을 따라야 합니다. 하지만 웹 사이트나 CS 프로그램에서 이 방법을 구현하기란 매우 번거럽고 어려울 수 있습니다.
PowerShell 실행 서비스 는 WEB API를 호출하여 대상 서버에서 PowerShell 명령을 실행하는 서비스로 앞서 언급한 번거로운 과정 없이 개발자들에게 익숙한 WEB API를 호출함으로써 쉽게 PowerShell 명령을 실행할 수 있습니다.
보안
PowerShell 실행 서비스 와 API를 호출하는 클라이언트에 동일한 비밀키를 설정하여 키값이 서로 일치하는 경우에만 명령어가 실행됩니다. 비밀키는 관리자가 직접 설정할 수 있기 때문에 매우 복잡한 문자로 지정하여 보안을 강화할 수 있습니다.
실행 환경
- 윈도우 OS에서 동작합니다.
- .NET 5가 설치된 환경에서 동작합니다.
.NET 5 다운로드 페이지에서 ASP.NET Core Runtime > Windows > Hosting Bundle
을 다운받아 설치합니다.
.NET 5는 설치 후 재부팅이 필요하지 않습니다.
설치 및 실행
상시 실행이 필요한 경우 윈도우에 내장된 sc.exe를 이용하여 서비스로 등록할 수 있습니다.
sc create [서비스내부이름] binpath= "c:\[설치경로]\powershell-service.exe" DisplayName= "[서비스 표시 이름]" start= auto
예시)
sc create LimeorangePowerShellService binpath= "c:\services\powershell-service\powershell-service.exe" DisplayName= "Limeorange PowerShell Service" start= auto
서비스를 설치한 서버에 요청할 명령에 특별한 권한이 필요한 경우 서비스의 계정을 적절히 변경해야 합니다.
향후 계획
- 별도로 설치하지 않아도 되도록 .NET 5를 포함하여 배포
- 서비스 설치 시 윈도우 서비스를 자동으로 생성하도록 수정
- 비밀키 설정 및 변경 UI 개발