사무자동화, POWERSHELL로는 어떨까?
요즘 디지털 트랜스포메이션(DX) 등을 이야기 많이 하면서 Perl이라든지 Python 활용의 중요성을 강조하는 경우가 많은데,
사무실에서 하는 일들이 저 언어들이 가지고 있는 잠재적-고급기능들을 얼마나 효과적으로 활용하는지 솔직히 잘 모르겠다.
그러면서 몇백메가나 되는 프로그램과 관리툴을 설치하고, 새롭게 공부하면서 많은 리소스를 사용한다.
사실 윈도우에는 이를 대체할 수 있는(상위호환이라 봄) 훌륭한 프로그램이 내장되어 있는데
잘 모르고 잘 사용하지도 않는다.
사무자동화에 필수적인 크롤링이나 스케쥴링은 충분이 대응 가능하고 별도로 프로그램을 설치하지 않아도 되며
실행도 간단하고 시스템 리소스도 추가로 소요되지 않는데.. 내 생각에는 단점이 없다.
이에 여기에서 간략하게 소개해보고자 한다.
PowerShell의 시작 (윈도우에 기본적으로 있는지도 모르는 사람들을 위한)
윈도우키를 누르고 Powershell이라고 검색을 하면 바로 나온다(!)
CMD와 유사한 클래식 모드와 ISE(윈도우창) 모드를 지원하므로 선택해서 실행하면 된다.
만약 작성하고자 하는 프로그램이 파일을 생성 및 시스템파일의 조회가 필요하다면 관리자로 실행할 필요가 있다.
PowerShell 스터디
마이크로소프트에서 아주 친절하게 완벽한 한글화가 되어 있는 매뉴얼을 제공하고 있다.
https://learn.microsoft.com/ko-kr/powershell/scripting/learn/ps101/01-getting-started?view=powershell-7.3
PowerShell의 주요 특징:
- 객체 기반: PowerShell의 결과물은 단순한 텍스트가 아니라 객체입니다. 이 객체들은 메소드와 속성을 가지고 있어, 데이터의 처리와 조작이 매우 용이합니다.
- Cmdlets: 이는 재사용 가능한 스크립트라고 볼 수 있는데, 각각은 특정 작업을 수행합니다. 예를 들어
Get-Process
는 실행 중인 프로세스의 목록을 반환합니다. - 스크립트 언어: 강력한 스크립트 언어를 지원하여 다양한 작업 자동화가 가능합니다.
- 확장성: 사용자 정의 cmdlets, 함수, 필터, 스크립트 모듈 등을 통해 확장이 가능합니다.
- 원격 관리: 다른 컴퓨터에서 PowerShell 스크립트나 명령을 원격으로 실행할 수 있습니다.
- 파이프라인 지원: 명령의 출력을 다른 명령의 입력으로 사용할 수 있습니다.
PowerShell의 장점:
- 다목적성: 파일 시스템 관리, 프로세스 관리, Windows Management Instrumentation(WMI) 및 Active Directory와 같은 서비스에 대한 액세스 등 다양한 관리 작업을 수행할 수 있습니다.
- 통합된 환경: PowerShell은 Windows OS와 깊게 통합되어 있어 다양한 시스템 컴포넌트를 효과적으로 관리할 수 있습니다.
- 크로스 플랫폼: PowerShell Core의 등장으로 Linux와 MacOS에서도 사용 가능해졌습니다.
- 커뮤니티 지원: 다양한 모듈과 확장이 오픈 소스 커뮤니티에 의해 제공되며, 이를 통해 추가적인 기능을 쉽게 가져올 수 있습니다.
사용시 주의사항:
- 실행 정책: PowerShell 스크립트는 기본적으로 실행되지 않도록 설정되어 있습니다.
Set-ExecutionPolicy
명령을 사용하여 변경할 수 있지만, 신뢰하지 않는 스크립트의 실행은 시스템에 위험을 초래할 수 있습니다. - 관리자 권한: 몇몇 명령은 관리자 권한으로 실행해야 합니다. 이를 무분별하게 사용할 경우 시스템에 변경을 초래할 수 있으므로 주의가 필요합니다.
- 스크립트 출처: 인터넷에서 다운로드한 스크립트나 cmdlet은 출처를 확인하고 실행하기 전에 반드시 코드를 검토해야 합니다.
PowerShell은 강력한 도구이기 때문에 책임감 있게 사용하는 것이 중요하다.
올바르게 사용하면 시스템 관리 작업의 효율성을 크게 향상시킬 수 있다