Windows PowerShell 1편

Windows Server를 관리하다보면, 리눅스와 달리 Shell 스크립트 제작에 불편함이 있다.
cmd로 기본적인 기능들의 구현은 가능하지만, 복잡한 작업을 하기에는 무리가 있다.
이를 극복하기 위해 Windows PowerShell이 나왔으며, Windows 2008 Server에서는 기본으로 체택하고 있다.
Windows PowerShell 1.0을 통하여 보다 많은 작업들이 가능해졌으며,
Windows PowerShell 1.0은 WIndows Server 2003 에서도 사용 가능했었으나, 3rd Party의 느낌이었다.
하지만 Windows 2008 Server 에서는 WIndows PowerShell 1.0을 기본으로 체택함과 동시에,
현재는 WIndows PowerShell 2.0이 발표 되었고, 보다 많은 기능들의 개선이 있었다.
Windows Server 2003용 PowerShell 1.0은 이곳 에서 구할 수 있으며, Windows PowerShell 2.0은 이곳에서 구할 수 있다.

그럼, 몇가지 간단한 예제들

PS C:\> Get-Help
항목
    Get-Help

간단한 설명
    PowerShell cmdlet 및 개념에 대한 도움말을 표시합니다.

PS C:\> Get-Help Get-Date

이름
    Get-Date

개요
    현재 날짜 및 시간을 가져옵니다.


기존 cmd의 echo와 같은 Write-Host. cmd의 명령들도 그대로 사용할 수 있다.
PS C:\Users\Administrator> Write-Host "Hello, World!"
Hello, World!
PS C:\Users\Administrator> echo "Hello, World!"
Hello, World!
시간 표시
PS C:\Users\Administrator> Date
2009년 2월 12일 목요일 오전 12:15:37
PS C:\Users\Administrator> Get-Date
2009년 2월 12일 목요일 오전 12:15:41
시간 가지고 놀기
PS C:\Documents and Settings\Administrator> [DateTime]
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     DateTime                                 System.ValueType
PS C:\Documents and Settings\Administrator> [DateTime]::Now
2009년 2월 12일 목요일 오전 12:21:43
PS C:\Documents and Settings\Administrator> [DateTime]::Now.ToString()
2009-02-12 오전 12:23:27
PS C:\Documents and Settings\Administrator> [DateTime]::Now.AddHours(-1)
2009년 2월 11일 수요일 오후 11:23:04
PS C:\Documents and Settings\Administrator> [DateTime]::Now.AddHours(1).ToString()
2009-02-12 오전 1:24:09
변수 및 시간 포맷 바꾸기
PS C:\Documents and Settings\Administrator> $a=1
PS C:\Documents and Settings\Administrator> write-host $a
1
PS C:\Documents and Settings\Administrator> $b=2
PS C:\Documents and Settings\Administrator> write-host $a+$b
1+2
PS C:\Documents and Settings\Administrator> $c=$a+$b
PS C:\Documents and Settings\Administrator> write-host $c
3
PS C:\Documents and Settings\Administrator> $date=[DateTime]::Now.AddHours(-2)
PS C:\Documents and Settings\Administrator> $date=get-date $date -uformat "%y%m%d%H"
PS C:\Documents and Settings\Administrator> write-host $date
09021122
get-command 명령
PS C:\Documents and Settings\Administrator> get-command wscript
CommandType     Name                                                Definition
-----------     ----                                                ----------
Application     wscript.exe                                         C:\WINDOWS\system32\wscript.exe
PS C:\> Get-Command *.msc
CommandType     Name                                                Definition
-----------     ----                                                ----------
Application     certmgr.msc                                         C:\WINDOWS\system32\certmgr.msc
Application     ciadv.msc                                           C:\WINDOWS\system32\ciadv.msc
Application     compmgmt.msc                                        C:\WINDOWS\system32\compmgmt.msc
Application     devmgmt.msc                                         C:\WINDOWS\system32\devmgmt.msc
Application     dfrg.msc                                            C:\WINDOWS\system32\dfrg.msc
Application     diskmgmt.msc                                        C:\WINDOWS\system32\diskmgmt.msc
Application     eventvwr.msc                                        C:\WINDOWS\system32\eventvwr.msc
Application     fsmgmt.msc                                          C:\WINDOWS\system32\fsmgmt.msc
Application     gpedit.msc                                          C:\WINDOWS\system32\gpedit.msc
Application     lusrmgr.msc                                         C:\WINDOWS\system32\lusrmgr.msc
Application     ntmsmgr.msc                                         C:\WINDOWS\system32\ntmsmgr.msc
Application     ntmsoprq.msc                                        C:\WINDOWS\system32\ntmsoprq.msc
Application     perfmon.msc                                         C:\WINDOWS\system32\perfmon.msc
Application     rsop.msc                                            C:\WINDOWS\system32\rsop.msc
Application     secpol.msc                                          C:\WINDOWS\system32\secpol.msc
Application     services.msc                                        C:\WINDOWS\system32\services.msc
Application     SQLServerManager.msc                                C:\WINDOWS\system32\SQLServerManager.msc
Application     SQLServerManager10.msc                              C:\WINDOWS\system32\SQLServerManager10.msc
Application     wmimgmt.msc                                         C:\WINDOWS\system32\wmimgmt.msc
get-process 명령
PS C:\> get-process

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    105       5     1224       3668    36     0.02   2796 alg
     39       3     1000       3360    31     0.09   2072 conime
    493       7     5344       6636    69    15.44    908 csrss
    150       6     1096       4424    39     0.89   1840 ctfmon
    149       6     4084       9580    45     0.77   1980 daemon
    170       5     3052       6632    57     0.13   1792 dpupdchk

PS C:\> $a = get-process
PS C:\> get-process -inputobject $a | format-table -view priority


   PriorityClass: Normal

ProcessName                  Id   HandleCount   WorkingSet
-----------                  --   -----------   ----------
alg                        2796           105      3756032
conime                     2072            39      3457024
csrss                       908           493      6852608


   PriorityClass: High

ProcessName                  Id   HandleCount   WorkingSet
-----------                  --   -----------   ----------
winlogon                    932           459      4165632


   PriorityClass: Normal

ProcessName                  Id   HandleCount   WorkingSet
-----------                  --   -----------   ----------
wlcomm                     3784           472     27295744

첫 포스팅이니 깊이 파코들지 않도록 하겠다.
위의 예제들 처럼, PowerShell을 통하여 리눅스 처럼 시스템 관리용 스크립트 제작이 용이해졌으며,
기존과 달리 많은 작업들을 단순화 하는것이 보다 쉬워졌다고 할 수 있다.
저작자 표시
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 2
prev 1 ... 29 30 31 32 33 34 35 36 37 ... 121 next