PowerShell 5

Microsoft Docs - 윈도우 명령어 레퍼런스 총집합 PDF

인터넷이 불가한 환경에서 시스템 운영을 하다보면 어려운 상황이 많은데, 아무리 기술도서를 많이 구비해 놓아도 불충분한 부분이 있습니다. PowerShell이 훨씬 나으니까 PowerShell만 쓰면 될 것 같지만 여전히 과거 버전의 Windows와 PowerShell을 사용하는 경우에는 명령어 레퍼런스가 하나쯤 있으면 좋지 않을까 해서 올려봅니다. Microsoft Docs에 가면 아래 화면처럼 윈도우 명령어 레퍼런스를 정리해놓은 코너가 있습니다. 여기에서 좌측 하단에 Download PDF 링크가 있는데, 모든 내용을 7MB 남짓의 PDF 파일로 다운로드 받을 수 있습니다. PowerShell은 Command shell처럼 레퍼런스 PDF 다운로드가 없는 것 같습니다. 대신 인터넷에 연결하고 Updat..

[PowerShell] GUI 애플리케이션 만들기

이번에 올릴 스크립트는 제가 실무에서 활용했던 마법사 형태의 GUI 툴입니다. 개인적으로 당연히 터미널 속에서 작업을 끝낼 수 있는 스크립트를 선호하지만 어떤 이유로 Windows Forms를 이용해서 GUI 형태로 만들었습니다. 스크립트 내용은 제외하고 껍데기만 가져와서 정리해 보았습니다. 스크린샷 필요한 컴포넌트 임포트 Add-Type -AssemblyName system.Windows.Forms [System.Windows.Forms.Application]::EnableVisualStyles() 스테이지별 작업 정의 $Global:step=0 $Global:hosts='localhost','127.0.0.1' function Run-Check { if($Global:step -eq 1) { $pre..

[vCenter] OVF template import via PowerCLI

얼마 전 어느 vSphere 클러스터에서 다른 클러스터로 VM 하나를 복사할 일이 생겼습니다. 이럴 때 VHDX 이미지를 복사하는 것 보다 OVF template를 export하는 것이 옮길 용량도 적어지고, VHDX 스냅샷도 고려할 필요가 없어 편리합니다. 서로 분리된 시스템이라서 외장 드라이브를 통해 옮겼는데, OVF template을 import 할 때 IE에서는 파일이 4GB 이상이면 한 번에 업로드가 되지 않기때문에 PowerCLI 파워셸 모듈을 처음 사용해 보았습니다. 먼저 원본 클러스터에서 내보낼 VM을 선택하고 OVF template를 다운로드 받습니다. .ovf, .mf, .vhdx, .nvram 파일이 다운로드되고, .mf파일에 SHA256 해시값이 있으니 파일들을 검증하면 좋습니다. ..

[PowerShell] 파워셸로 마우스, 키보드 입력 매크로 만들기

마우스와 키보드 입력을 간단한 매크로처럼 활용할 수 있게 해 보았습니다. 쏠쏠하게 잘 활용하고 있습니다^^ mouse_event() Add-Type -Name mouse -Namespace u32 -MemberDefinition '[DllImport("user32.dll")] public static extern void mouse_event(int flag, int x, int y, int a, int b);' $move = 0x0001 $ldn = 0x0002 $lup = 0x0004 $rdn = 0x0008 $rup = 0x0010 $abs = 0x8000 $left_click = $ldn -bor $lup -bor $move -bor $abs $right_click = $rdn -bor $rup ..

[PowerShell] 워드 파일을 PDF로 일괄 변환하는 스크립트

고등학생 시절 학습자료를 워드 파일(혹은 RTF)로 정리하다 간혹 다른 사람에게 주기 위해 PDF로 바꿀 필요가 있었습니다. 그 때 요긴하게 사용했던 스크립트입니다. 코드에는 *.docx로 되어 있는데, 워드로 열 수 있는 확장자면 필요에 따라 바꾸시면 됩니다. 실행할 때는 변환하려는 워드 파일들이 있는 디렉터리에서 하면 됩니다. function Export-WordToPDF { param( [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)] [Alias("FullName")] $path, $pdfpath = $null) process { if (!$pdfpath) { $pdfpath = [System.IO.Path]::ChangeEx..