안녕하세요? 윈디안입니다!
파워쉘 스냅인 중 흥미로운 녀석이 있어 소개해 드리려 합니다.
WASP(Windows Automation Snapin for Powershell)
http://wasp.codeplex.com/
이 녀석은 무엇일까요?
이름에도 나와 있듯이 자동화(Automation)를 구현할 수 있는 스냅인입니다.
그럼 어떻게 자동화를 구현할까요?
AutoHotkey라는 프로그램 들어 보신적 있나요? 매크로를 이용한 자동화 프로그램입니다.
저는 이 것과 유사하다고 느꼈습니다.
지원하는 Cmdlet은 아래와 같습니다.
Cmdlet을 보시면 느낌이 확 오시죠? 윈도우를 선택, 활성화,창크기 변경, 창 닫기, Keyboard,Mouse Action 등을 할 수 있습니다.
http://wasp.codeplex.com/releases/22118/download/55849
압축파일을 다운로드 하면 파일이 3개 있는데 이 중 Install.ps1을 파워쉘에서 실행하시면 됩니다.
저는 -Force 스위치를 사용하여 설치했습니다.
PS C:\Users\windian7.SDS\Downloads\WASP\WASP> dir
디렉터리: C:\Users\windian7.SDS\Downloads\WASP\WASP
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2009-01-20 오전 12:50 2570 Install.ps1
-a--- 2009-01-20 오전 12:53 520 UnInstall.ps1
-a--- 2009-01-21 오전 11:13 43008 WASP.dll
PS C:\Users\windian7.SDS\Downloads\WASP\WASP> .\Install.ps1 -force
You're running PowerShell 2.0, so you don't need to Install this as a PSSnapin,
you can use Import-Module (or Add-Module in CTP2) to load it. If you still want
to install it as a PSSnapin, re-run this script with -Force
Microsoft (R) .NET Framework Installation utility Version 2.0.50727.4927
Copyright (c) Microsoft Corporation. All rights reserved.
트랜잭트 설치를 실행하고 있습니다.
설치의 Install 단계를 시작하고 있습니다.
C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll 어셈블리의 진행 상황을 보려면
로그 파일 내용을 검토하십시오.
파일은 C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.InstallLog 위치에 있습니다
.
어셈블리 'C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll'을(를) 설치하고 있
습니다.
영향을 받는 매개 변수:
assemblypath = C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll
logfile = C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.InstallLog
logtoconsole =
Install 단계는 완료되었으며 Commit 단계를 시작하고 있습니다.
C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll 어셈블리의 진행 상황을 보려면
로그 파일 내용을 검토하십시오.
파일은 C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.InstallLog 위치에 있습니다
.
어셈블리 'C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll'을(를) 커밋하고 있
습니다.
영향을 받는 매개 변수:
assemblypath = C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.dll
logfile = C:\Users\windian7.SDS\Downloads\WASP\WASP\WASP.InstallLog
logtoconsole =
Commit 단계가 완료되었습니다.
트랜잭트 설치가 완료되었습니다.
CommandType Name Definition
----------- ---- ----------
Cmdlet Get-WindowPosition Get-WindowPosition [-Window]...
Cmdlet Remove-Window Remove-Window [-Window] <Win...
Cmdlet Select-ChildWindow Select-ChildWindow [-Window]...
Cmdlet Select-Control Select-Control [[-Index] <In...
Cmdlet Select-Window Select-Window [[-ProcessName...
Cmdlet Send-Click Send-Click [[-Left] <Int32>]...
Cmdlet Send-Keys Send-Keys [-Keys] <String> [...
Cmdlet Set-WindowActive Set-WindowActive [-Window] <...
Cmdlet Set-WindowPosition Set-WindowPosition [[-Left] ...
To load the Windows Automation Snapin in the future, you need to run:
Add-PSSnapin WASP
You can also add that line to your Profile script to load it automatically.
설치 완료 후 다음 파워쉘 실행 시 "Add-PSSnapin WASP"을 통해서 스냅인을 로드해야 Cmdlet을 사용할 수 있습니다.
(프로필을 통해서 자동으로 로드 되도록 할 수도 있습니다.)
그럼 예제를 보겠습니다.
notepad.exe
explorer.exe
## 윈도우 리스트를 출력합니다.
Select-Window | ft –auto
## 노트패드를 활성화합니다.
Select-Window notepad* | Set-WindowActive
## 탐색기를 종료합니다.
Select-Window explorer | Select -First 1 | Remove-WIndow
## 노트패드를 여러개 실행합니다.
notepad; notepad; notepad; notepad;
## 노트패드 위치 변경하기
$i = 1;$t = 100; Select-Window notepad | ForEach { Set-WindowPosition -X 20 -Y (($i++)*$t) -Window $_ }
## 노트패드에 텍스트를 입력합니다.
Select-Window notepad | Send-Keys "테스트입니다!!!"
## 첫번째 notepad를 ALT+F4로 종료합니다.
Select-Window notepad | Select -First 1 | Send-Keys "%{F4}"
## "Remove-Window" Cmdlet을 통해 notepad를 종료합니다. 키 명령을 통해서 저장하지 않고 종료합니다.
Select-Window notepad | Select -First 1 | Remove-Window -Passthru | Select-ChildWindow | Send-Keys "n"
## ProcessID 파이프를 통해 Kill 명령으로 notepad를 종료합니다.
Select-Window notepad | Select -First 1 | kill
이렇게 파워쉘을 통해서 윈도우를 컨트롤 할 수 있습니다.
응용하기에 따라 유용한 도구가 될 것 같습니다.
그럼 다음 포스팅에서 뵙겠습니다.
PS. 스냅인 사용을 위해서는 Add-PSSanpin 명령을 통해 해당 스냅인을 로드해야 합니다. 기억하세요.
'Powershell > 윈디안' 카테고리의 다른 글
파워쉘상에서 키보드 입력 받기 (0) | 2010.09.08 |
---|---|
About PowerShell Pack !!! (7) | 2010.08.25 |
PowerShell 히스토리 내보내기 & 가져오기 (0) | 2010.08.11 |
PowerShell 비교연산자[比較演算子] 'comparison operator' (0) | 2010.08.11 |
Windows 2008 R2 Server Core에서 파워쉘 사용하기(Sconfig.exe) (0) | 2010.07.16 |