2010. 10. 26. 18:11


IIS 7.0 PowerShell Snap-in

IIS 7.0은 아래 링크를 통해서 설치가 필요합니다.(Windows 2008,Windows Vista)
http://www.iis.net/download/PowerShell

IIS 7.5의 경우 해당 모듈이 운영체제에 포함되어 있으며 서버 역활(Role)을 통해서 설치가 가능합니다.(Windows 2008 R2,Windows 7)
설치가 필요한 역활 서비스는 "IIS 관리 스크립트 및 도구"입니다.

웹 서버(IIS) -> 관리 도구 -> IIS 관리 스크립트 및 도구


역활 설치 후 파워쉘을 실행하여  사용 가능한 모듈을 확인합니다.


PS C:\> Get-Module -ListAvailable

ModuleType Name                      ExportedCommands
---------- ----                      ----------------
Manifest   ADRMS                     {}
Manifest   AppLocker                 {}
Manifest   BestPractices             {}
Manifest   BitsTransfer              {}
Manifest   PSDiagnostics             {}
Manifest   ServerManager             {}
Manifest   TroubleshootingPack       {}
Manifest   WebAdministration         {}


관리 모듈명은 WebAdministration입니다.
사용할 모듈을 Import합니다.

import-module WebAdministration


최초 실행시 Excution Policies로 인해서 실행이 되지 않습니다.

PS C:\> Set-ExecutionPolicy RemoteSigned

Excution Policies 관련 자세한 정보는 아래 명령을 통해 확인할 수 있습니다.
help about_signing

IIS:라는 네임스페이스를 사용합니다.

IIS:

PS IIS:\> ls

Name
----
AppPools
Sites
SslBindings

AppPools는 응용프로그램 풀입니다.
Sites는 웹 사이트들입니다.
SslBindings SSL 바인딩이 되어 있는 NameSpace입니다.


PS IIS:\sites> Get-Item '.\Default Web Site'| Select-Object *


PSPath                     : WebAdministration::\\SPF2010\Sites\Default Web Site
PSParentPath               : WebAdministration::\\SPF2010\Sites
PSChildName                : Default Web Site
PSDrive                    : IIS
PSProvider                 : WebAdministration
PSIsContainer              : True
name                       : Default Web Site
id                         : 1
serverAutoStart            : True
state                      : Started
bindings                   : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
limits                     : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
logFile                    : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
traceFailedRequestsLogging : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
applicationDefaults        : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
virtualDirectoryDefaults   : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
ftpServer                  : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
Collection                 : {Microsoft.IIs.PowerShell.Framework.ConfigurationElement}
applicationPool            : DefaultAppPool
enabledProtocols           : http
physicalPath               : %SystemDrive%\inetpub\wwwroot
userName                   :
password                   :
ItemXPath                  : /system.applicationHost/sites/site[@name='Default Web Site' and @id='1']
Attributes                 : {name, id, serverAutoStart, state}
ChildElements              : {bindings, limits, logFile, traceFailedRequestsLogging...}
ElementTagName             : site
Methods                    : {Start, Stop}
Schema                     : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema



앞으로 IIS 관련 파워쉘을 정리하도록 하겠습니다.



http://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-snap-in/

Posted by 알 수 없는 사용자
:
2010. 10. 5. 18:10

안녕하세요 윈디안입니다.

오늘은 Active Directory를 파워쉘에서 관리할 수 있는 모듈을 소개합니다.

모듈의 명칭은 ActiveDirectory 입니다. 이름이 쉽네요

이 모듈을 사용하기 위해서는 아래와 같은 조건이 필요합니다.

 Windows Server 2008 R2 server에 AD DS 또는 AD LDS 서버 롤 설치
 Windows Server 2008 R2 server에 Dcpromo.exe를 통해 도메인 컨트롤러로 사용하는 경우
 Windows Server 2008 R2 Server에 Remote Server Administration Tools (RSAT)을 설치한 경우
 Windows 7에 RSAT(원격 서버 관리 도구)를 설치한 경우

결론은 Windows7과 Windows 2008 R2 만 사용할 수 있습니다.
(Windows 7 원격 서버 관리 도구는 Windows 7의 Enterprise, Professional 또는 Ultimate Edition을 실행 중인 컴퓨터에만 설치할 수 있습니다. 또한 Windows Server 2008  R2의 경우 Windows Server 2008 R2 for Itanium-Based Systems ,
Windows Web Server 2008 R2 에서는 사용 할 수 없습니다.)

* Active Directory 모듈은 아래 기능들을 기본으로 설치합니다.

Windows PowerShell
Microsoft .NET Framework 3.5.1


* 사용 하기

시작 -> 관리도구 -> Active Directory PowerShell을 통해서 파워쉘을 실행하거나
수동으로 모듈을 구동하여 사용할 수 있습니다.

Import-Module ActiveDirectory

ActiveDirectory 모듈을 통해서는 다음과 같은 작업을 할 수 있습니다.
많은 기능이 있어 링크로만 소개합니다.


* 이 모듈을 통해서 ActiveDirectory 관리를 위해서는 사용자가 적절한 그룹에 속해있어야 합니다. EX> Domain Admins,Schema Admins,Enterprise Admins

AD관리시 유용한 모듈입니다.

이상 윈디안입니다~

출처 : 마이크로 소프트 테크넷
         http://technet.microsoft.com/en-us/library/dd378937(WS.10).aspx

'Powershell > 윈디안' 카테고리의 다른 글

PowerShell을 통한 IIS 관리  (0) 2010.10.26
iPowerShell???  (0) 2010.09.15
파워쉘상에서 키보드 입력 받기  (0) 2010.09.08
About PowerShell Pack !!!  (7) 2010.08.25
PowerShell 히스토리 내보내기 & 가져오기  (0) 2010.08.11
Posted by 알 수 없는 사용자
:
2010. 9. 15. 17:54
안녕하세요? 윈디안입니다.

가을이 오고 있네요 모두 감기 조심하세요.
전 벌써 감기가 와서 골골하네요 ㅠㅠ

오늘 소개할 것은 iPowerShell입니다.
아이팟,아이폰 이후 i가 붙는 제품이 많아지네요.

이름이 i(?)Powershell 입니다.이 녀석도 느낌이 오시지요?

이름 처럼 아이폰 APP으로 Powershell Cmdlets들과 설명을 볼 수 있습니다.
아이폰,아이팟터치,아이패드에서 사용할 수 있습니다.
위 기기들은 Apple app Store를 통해서 다운로드를 받을 수 있습니다.



Cmdlets,Aliases,Providers들을 지원하며 가로보기 모드,확대가 지원됩니다.
(기본 cmdlet및 Exchange, 써드파티 모듈에 대한 정보도 제공합니다.)

item으로 검색해 보겠습니다.
잘나오네요 ^^;

Search 기능을 통해 원하는 명령을 간편하게 검색할 수 있습니다.
급할때 유용할 것 같습니다.

세상이 너무 좋아졌어요.
파워쉘도 스마트폰으로 스마트하게~ ㅎㅎ

이상 윈디안이였습니다.
감사합니다. :)

출처: http://blog.sapien.com/index.php/2010/03/01/ipowershell-v-2-now-available-in-apple-app-store/
Posted by 알 수 없는 사용자
:
2010. 9. 8. 18:11
안녕하세요 윈디안입니다.

오늘은 파워쉘상에 키보드 입력에 대하여 이야기 하겠습니다.

대화형 스크립트를 만들어 보려고 했습니다.
여기서 문제에 봉착하게 됩니다.
대화형 스크립트는 사용자 입력을 받아야 하더군요;

이전에 소개드렸던 PowerShell Pack 사용할까 했으나 스냅인을 추가해야 했고 "이정도는 이미 있지 않을까?"라는 생각에
구글링을 했습니다. 물론 저와 같은 고민에 있는 사람들이 계시더군요 ^^;

Read-Host [[-Prompt] <Object>] [-AsSecureString] [<CommonParameters>]

이녀석으로 사용자 키보드 입력을 받을 수 있습니다.

특별한 파라미터를 2개만 설명하겠습니다.
-AsSecureString
사용자가 입력한 문자를 와일드카드(*)로 처리합니다.
입력된 스트링은 SecureString 개체(System.Security.SecureString)가 됩니다.
(안보여요 ~ )

-Prompt "입력"
사용자 입력을 받기전에 텍스트를 출력합니다.
따옴표를 (") 묶어서 사용하셔야 하니다.

Read-Host가 있다면 Write-Host도 있겠죠?

Rad-host "입력하세요:" | Write-host

이렇게 하면 입력한 문자를 다시 뿌려줍니다.

오늘은 요까지만 하겠습니다.
환절기가 오니 알레르기로 힘이 드네요
다들 건강하세요!



Posted by 알 수 없는 사용자
:
2010. 8. 25. 18:09
안녕하세요 윈디안입니다~

늘 띵가 띵가 놀다가 이맘때가 되면 포스팅을 합니다.

오늘 소개올릴 제품은 Powershell Pack입니다.
홈쇼핑 광고 멘트 같군요;

먼저 이 녀석이 무엇인지 알아야 겠죠?

PowerShell Pack은 파워쉘 스냅인으로 Windows 7 Resource Kit의 일부로 사용되고 있습니다.
10개에 피와 살이될 수 있는 모듈의 집합체입니다.

Module

Description

WPK

Create rich user interfaces quick and easily from Windows PowerShell. Think HTA, but easy. Over 600 scripts to help you build quick user interfaces

TaskScheduler

List scheduled tasks, create or delete tasks

FileSystem

Monitor files and folders, check for duplicate files, and check disk space

IsePack

Supercharge your scripting in the Integrated Scripting Environment with over 35 shortcuts

DotNet

Explore loaded types, find commands that can work with a type, and explore how you can use PowerShell, DotNet and COM together

PSImageTools

Convert, rotate, scale, and crop images and get image metadata

PSRSS

Harness the FeedStore from PowerShell

PSSystemTools

Get Operating System or Hardware Information

PSUserTools

Get the users on a system, check for elevation, and start-processaadministrator

PSCodeGen

Generates PowerShell scripts, C# code, and P/Invoke


번역하려 했으나... 하면 할 수록 말이 꼬여 패스합니다.
원문으로 즐겨주세요.

WPK(Windows PowerShell Kit)

먼저 Channel 9에서 배포하는 동영상입니다.

동영상을 보시면 WPK 이해에 큰 도움이 되실듯 합니다.




그럼 시작해 볼까요?

Windows Powershell v2기반입니다.(Windows7 Windows 2008 R2 Powershell V2 내장되어 있습니다.)

1.0  버전은 사용할 없습니다.

 

1.     곳(here)에서 PowerShell Pack 다운로드 받은 MSI 파일을 설치합니다.

2.     파워쉘을 실행합니다.
“Import-Module PowerShellPack”
실행하여 모듈을 로드하여 사용합니다.

3.     모듈사용법은 Get-Help module 통해서 확인할 있습니다.

Get-Help  module




Powershell Pack을 Import한 상태에서 Get-help module을 사용하면 아래와 같이 help command를 확인 할 수 있습니다.

Import-Module powershellpack
get-help module

Name                              Category  Synopsis                                                                                                                                                                                                                            
----                              --------  --------
New-Module                        Cmdlet    메모리에만 있는 새 동적 모듈을 만듭니다.
Import-Module                     Cmdlet    현재 세션에 모듈을 추가합니다.
Export-ModuleMember               Cmdlet    내보내는 모듈 멤버를 지정합니다.
Get-Module                        Cmdlet    현재 세션으로 가져왔거나 가져올 수 있는 모듈을 검색합니다.
Remove-Module                     Cmdlet    현재 세션에서 모듈을 제거합니다.
New-ModuleManifest                Cmdlet    새 모듈 매니페스트를 만듭니다.
Test-ModuleManifest               Cmdlet    모듈 매니페스트 파일이 모듈의 내용을 정확하게 설명하는지 확인합니다.
about_ISEPack_Module              HelpFile  Describes the ISEPack module in the Windows 7 Resource Kit.                                                                                                                                                                    
about_FileSystem_Module           HelpFile  Describes the FileSystem module in the Windows 7 Resource Kit.
about_PSImageTools_Module         HelpFile  Describes the PSImageTools module in the Windows 7 Resource Kit.
about_PSRSS_Module                HelpFile  Describes the PSRSS module in the Windows 7 Resource Kit.
about_PSUserTools_Module          HelpFile  Describes the PSUserTools module in the Windows 7 Resource Kit.
about_System_Module           HelpFile  Describes the System module in the Windows 7 ResourceKit.
about_modules                     HelpFile  Windows PowerShell 모듈을 설치하고 가져와서 사용하는 방법에 대해 설명합니다.
                                           


예를 들어 ISE 모듈에 대한 설명은 아래와 같이 확인이 가능합니다.                      
   

get-help about_ISEPack_Module         



너무 내용이 많아 자세한 설명 보는 법만 소개했네요

그냥 넘어가기는 그러니 몇개만 볼까요?

WPK - 파워쉘 상에서 인터페이스를 만들어 낼 수 있습니다.
(예제를 실행해 보면 완전 신기합니다!!!)

자세한 설명은 다음 문서를 다운로드 받으세요 -> Writing User Interfaces with WPK.

 

사용법

 

import-module WPK



모듈을 import 후 사용하세요.

아래
스크립트는 Powershell ISE에서 사용하세요

예제 1. 메시지 박스 생성

 

New-Label “Hello, World” -Show -FontSize 48


예제
2. 시계

 

New-Label -FontSize 24 -On_Loaded {

    Register-PowerShellCommand -scriptBlock {    

        $window.Content.Content = (Get-Date | Out-String).Trim()

    } -run -in "0:0:0.5"

} -AsJob

 

예제  3. 프로세스 모니터?

 

New-ListView -Width 350 -Height 350 -DataBinding @{

    ItemsSource = New-Binding -IsAsync -UpdateSourceTrigger PropertyChanged -Path Output

} -View {

    New-GridView -AllowsColumnReorder -Columns {

        New-GridViewColumn "Name"

        New-GridViewColumn "Id"

    }

} -DataContext {

    Get-PowerShellDataSource -Script {

        Get-Process | ForEach-Object { $_ ; Start-Sleep -Milliseconds 25 }

    }

} -On_Loaded {

    Register-PowerShellCommand -Run -In "0:0:15" -ScriptBlock {

        $window.Content.DataContext.Script = $window.Content.DataContext.Script

    }

} -asjob


 

예제4. 동영상 플레이

 

New-Window -AllowDrop -On_Drop {

    $file = @($_.Data.GetFileDropList())[0]

    $this.Content.Source = $file

    $this.Content.Play()

} -On_Loaded {

    $this.Content.Source = dir "$env:PUBLIC\videos\Sample Videos" -Filter *.wmv |

        Get-Random | Select-Object -ExpandProperty Fullname

    $this.Content.Play()

} -On_Closing {

    $this.Content.Stop()

} {

    New-MediaElement -LoadedBehavior Manual

} -asJob

 

예제 4. Dialog Box

 

$Name = New-Grid -Rows 2 -Columns 'Auto','1*' {

    $TextChanged = {

        $firstName = Get-Resource FirstName | Select-Object -ExpandProperty Text

        $lastName = Get-Resource LastName | Select-Object -ExpandProperty Text

        $this.Parent.Tag = "$LastName, $FirstName"

    }

    New-Label "First Name"

    New-TextBox -Name FirstName -Column 1 -On_Loaded {

        Set-Resource -Name FirstName -Value $this -Depth -1

    } -On_TextChanged $TextChanged

    New-Label "Last Name" -Row 1

    New-TextBox -Name LastName -Column 1 -Row 1 -On_Loaded {

        Set-Resource -Name LastName -Value $this -Depth -1

    } -On_TextChanged $TextChanged

} -show

 

입력 결과 : $name


 


IsePack - PowerShell ISE에 모듈입니다. 다양한 단축키를 지원합니다.

 

예제

 

Command

Shortcut

Description

Add-InlineHelp

ALT + H

Quickly insert inline help into your functions so that Get-Help can help other users figure out how to use your code

Copy-Colored

CTRL + ALT + C

Email scripts to your colleagues in rich color

Copy-ColoredHTML

CTRL + ALT + SHIFT + C

Blog out the scripts that you write with Copy-ColoredHTML

Show-Syntax

ALT + Y

Select a command and press ALT + Y to see the syntax

Show-Member

ALT + M

Select a variable and pipe to Get-Member and Out-GridView with ALT+M

 

FileSystem - 디스크용량 체크,ZIP 압축파일 지원,드라이브명 변경등 파일 시스템 관련 작업을 지원합니다.

You can use the filesystem module to check free disk space, create and add to zip files, watch locations on the filesystem, find duplicate files, or rename drives.

DotNet - 개발자가 아니라 ... 패스

The DotNet module helps you work with the types loaded on the system. You can use Get-Type to search for loaded .NET types or you can use Get-ProgID to search for loaded COM types. For instance, this one liner will show the fullname property of all types whose short name contains file:

Get-Type | Where-Object { $_.Name –like “*File*” } | Select-Object FullName


You can try creating one of the types with New-Object or getting static members of the type with Get-Member –Static.
To look for COM types, like those used from VBScripts, use something like

Get-ProgID *Image*

 

PSImageTools  - 이미지 파일을 다양하게 지원하는 모듈입니다.


The PSImageTools lets you manage photos of other images using Windows PowerShell. Resize, Rotate, or Crop images, or check out image metadata. Convert to JPEG or Bitmap. Here’s a quick example:

Get-ChildItem $env:UserProfile\Pictures | Get-Image  |Get-ImageProperty

 

PSRSS - RSS를 관리합니다.


PSRss lets you read your RSS feeds from Windows PowerShell. You can subscribe to new feeds, mark articles as read, and get feeds and descriptions. Here’s a quick pipeline to show the 10 most recent RSS articles.

Get-Feed |

    Get-Article |

    Sort-Object PubDate -Descending |

    Select-Object Title, Description -First 10

 

PSSystemTools - 운영체제 하드웨어,설정 정보등을 확인 할 수 있는 시스템 모듈입니다.


System Tools helps you get hardware and configuration information out of the operating system. Get information about USB devices, processors, boot status, fonts, and more. Check out this quick script to see the USB devices and their manufacturers.

Get-USB |

    Select Name, Manufacturer

 

PSUserTools - 사용자를 관리합니다.


User Tools helps you deal with process elevation and users. You can test to see if the current user is an administrator, start processes that prompt for administrative credentials, get the users on the system, and get detailed information about the current user.

PSCodeGen - Code를 생성합니다.


PSCodeGen is a module to help advanced scripters create code more quickly by automatically generating the code. In PSCodeGen there is New-Enum, which allows you to define a new enumerated type, New-PInvoke, which allows you to work with the C APIs more easily, and New-ScriptCmdlet, which can be used to create new PowerShell advanced functions with ease. Check out these examples of using New-ScriptCmdlet to make new script cmdlets. The first example creates the Start-ProcessAsAdministrator script cmdlet that is in the PSUserTools module

New-ScriptCmdlet -Name Start-ProcessAsAdministrator -FromCommand (Get-Command Start-Process) -RemoveParameter Verb -ProcessBlock { 

    $null = $psBoundParameters.Verb = "RunAs"

    Start-Process @psBoundParameters

}

New-ScriptCmdlet -Name -FromCommand (Get-Command Get-Process) -RemoveParameter Verb

 

 

TaskScheduler  - 예약 작업을 관리할 수 있습니다.


The TaskScheduler module helps you use the Task Scheduler APIs available on Windows Vista and above to schedule running programs or scripts on your system. You can check running tasks, start tasks on demand. You can also start tasks with an incredible variety of triggers, like single time, daily, weekly, monthly, event log, workstation lock and workstation unlock . Here are some simple examples:

New-task |

    Add-TaskTrigger -DayOfWeek Monday, Wednesday, Friday -WeeksInterval 2 -At "3:00 PM" |

    Add-TaskAction -Script {

        Get-Process | Out-GridView

        Start-Sleep -Seconds 100

    } |

    Register-ScheduledTask TestTask

 

New-task |

    Add-TaskTrigger -In (New-TimeSpan -Seconds 30) |

    Add-TaskAction -Script {

        Get-Process | Out-GridView

        Start-Sleep -Seconds 100

    } |

    Register-ScheduledTask TestTask

 

 

대충 대충 봐도 너무 많네요 .. 휴휴

 

오늘은 이만~

 

윈디안이였습니다.

 

출처 : http://code.msdn.microsoft.com/PowerShellPack

Posted by 알 수 없는 사용자
:
2010. 8. 11. 17:36
안녕하세요? 윈디안입니다.

오늘 포스팅을 2개나 하네요.
밀린 숙제하는 것 같아 마음이 편하지 않네요.
다음 부터는 게으르지 않기로 다시 한번 마음을 잡아 봅니다.(과연?)

이번에 말씀드리고자 하는 것은 파워쉘의 히스토리입니다.
파워쉘에는 과거 cmdlet을 보여주는 히스토리 기능이 있습니다.

Get-History


위 cmdlet을 통해서 입력 히스토리를 볼 수 있죠.

예제를 보죠
PS C:\Users\windian7.SDS> get-history
PS C:\Users\windian7.SDS> 멍청이
'멍청이' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확
인하고 경로가 포함된 경우 경로가 올바른지 확인한 다음 다시 시도하십시오.
위치 줄:1 문자:4
+ 멍청이 <<<<
    + CategoryInfo          : ObjectNotFound: (멍청이:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\windian7.SDS> 거지
'거지' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인
하고 경로가 포함된 경우 경로가 올바른지 확인한 다음 다시 시도하십시오.
위치 줄:1 문자:3
+ 거지 <<<<
    + CategoryInfo          : ObjectNotFound: (거지:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\windian7.SDS> Get-Acl

    디렉터리: C:\Users

Path                                    Owner                                   Access
----                                    -----                                   ------
windian7.SDS                            NT AUTHORITY\SYSTEM                     NT AUTHORITY\SYSTEM Allow  FullContr...

PS C:\Users\windian7.SDS> Get-History
  Id CommandLine
  -- -----------
   1 get-history
   2 멍청이
   3 거지
   4 Get-Acl

PS C:\Users\windian7.SDS>

1번 get-history는 아무런 결과가 없습니다. history가 없으니 결과가 없겠죠?
마지막 Get-History를 보면 시간 순서에 따라 get-history,멍청이,거지,get-acl등 모든 cmdlet을 확인할 수 있습니다.

그러나 이 history 기능이 완벽한 것은 아닙니다.
PowerShell을 종료하면 모든 히스토리가 삭제됩니다.
그러면 이를 유지할 수 있는 방법은 없을까요?
물론 있습니다. 그러니 제가 포스팅을 하는 것이 겠지요...

방법은 간단합니다. xml로 history를 내보내기한 후 다시 가져오기 하는 것 입니다.

2가지만 기억하세요. 내보내기,가져오기...

xml로 history 내보내기 - Export history
Get-History | Export-Clixml "파일경로\파일명.xml"

Add-History xml파일 가져오기 - Import history
Import-Clixml "파일경로\파일명.xml" | Add-History


"C:\history.xml"을 만들어 위 예제 파일을 가지고 왔습니다.

내보내기

PS C:\Users\windian7.SDS> Get-History | Export-Clixml "c:\history.xml"

가져오기

PS C:\Users\windian7.SDS> history
PS C:\Users\windian7.SDS> Import-Clixml "c:\history.xml" | Add-History
PS C:\Users\windian7.SDS> history
  Id CommandLine
  -- -----------
   1 history
   2 Import-Clixml "c:\history.xml" | Add-History
   3 get-history
   4 멍청이
   5 거지
   6 Get-Acl
   7 Get-History

PS C:\Users\windian7.SDS>


Import를 한 데이터가 history에 등록되어 있는 것을 볼 수 있습니다.
응용할 수 있는 방법은 여러가지가 있겠지만
"프로필에 등록하여 작업 로그 형태로 사용할 수 있지 않을까?"라는 생각을 해봤습니다.

다른 머신에서도 이를 통해 history를 유지할 수 있겠군요.

이번 포스팅은 여기까지입니다.
감사합니다.


참고 링크 : Using the Add-History Cmdlet
http://technet.microsoft.com/ko-kr/library/ee156792(en-us).aspx

Posted by 알 수 없는 사용자
:
2010. 8. 11. 17:07

안녕하세요~ 윈디안입니다.

오랜만에 포스팅 하네요... 여름 휴가 후에 게으름으로 인한 늦장이였습니다.  죄송합니다. (__)

오늘 이야기해 볼 것은 비교연산자(comparison operator)입니다. 

파워쉘 스크립트들을 예제를 보다 보면 -lt, -le, -eq 이런 녀석을 볼때가 있죠.
대충 분위기를 보면 값을 비교하는 것 같은데 정확한 의미를 알 수 없었습니다.
스크립트를 만들거나 개발을 하신 분들은 이미 익숙 하겠지만 저는 몰랐습니다.

아주 오래전에 비슷한 걸 배웠던 기억만 있었죠.

비슷한???

저는 이런 것을 배웠었거든요

= 같다
< 작다
> 크다
>= 크거나 같다.


느낌이 오시지 않습니까?

그렇습니다.

값을 비교해주는 연산자였던 것입니다.
그래서 비교연산자라고 하겠죠? ㅎㅎ

다음은 Windows PowerShell Quick Reference에 나와 있는 원문입니다.

How to Make Comparisons


Windows PowerShell cmdlets (like Where-Object) use a special set of comparison operators, including those shown in the following table.

 

Each of these operators can be made case sensitive by adding a c immediately after the hyphen. For example,   -ceq represents the case-sensitive equals operator; -clt is the case-sensitive less than operator.

 

-lt

Less than

-le

Less than or equal to

-gt

Greater than

-ge

Greater than or equal to

-eq

Equal to

-ne

Not equal to

-like

Like (uses wildcards for matching)

-notlike

Not like (uses wildcards for matching)

 


간단하게 정리하자면 아래와 같습니다.


-lt Less than 작다
-le Less than or equal to 작거나 같다
-gt Greater than 크다
-ge Greater than or equal to 크거나 같다
-eq Equal to 같다
-ne Not equal to 같지 않다
-like Like (uses wildcards for matching) 유사하다
-notlike Not like (uses wildcards for matching) 유사하지 않다

-c를 통해서 대소문자 구분 추가 가능
  ex> -clt, -cle

영어로 외워두시면 기억하기가 편할 것 같습니다.

원문에 보면 Case sensitive라는 것이 있습니다. 쉽게 대소문자 구분이라고 생각하시면 됩니다.
비교 연산자와 "-"사이에 c 를 추가하여 사용 할 수 있습니다.


참고 링크 : Windows PowerShell Quick Reference
ttp://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=df8ed469-9007-401c-85e7-46649a32d0e0

비교 연산자뿐 아니라 짧고 굵은 내용이 많습니다. 4쪽 밖에 되지 않으니 Powershell을 시작하시는 분은 꼭 읽어 보셨으면 합니다.

그럼 이만 이번 포스팅을 마치겠습니다.
감사합니다. ^^
Posted by 알 수 없는 사용자
:
2010. 7. 22. 09:00


안녕하세요? 윈디안입니다!

파워쉘 스냅인 중 흥미로운 녀석이 있어 소개해 드리려 합니다.

WASP(Windows Automation Snapin for Powershell)
http://wasp.codeplex.com/

이 녀석은 무엇일까요?

이름에도 나와 있듯이 자동화(Automation)를 구현할 수 있는 스냅인입니다.

그럼 어떻게 자동화를 구현할까요?

AutoHotkey라는 프로그램 들어 보신적 있나요? 매크로를 이용한 자동화 프로그램입니다.
저는 이 것과 유사하다고 느꼈습니다.

지원하는 Cmdlet은 아래와 같습니다.


  • Select-Window - pick windows by process name or window caption (with wildcard support)
  • Select-ChildWindow - pick all owned windows of another window (eg: dialogs, tool windows)
  • Select-Control - pick controls (children) of a specific window, by class and/or name and/or index (with wildcard support) -- NOTE: the "Window" can be specified as "-Window 0" to get all parentless windows, which includes windows, dialogs, tooltips, etc... With -Window 0 this returns a true superset of the Select-Window output.
  • Send-Click - send mouse clicks (any button, with any modifier keys)
  • Send-Keys - Windows.Forms.SendKeys lets you send keys ... try this: Select-Window notepad | Send-Keys "%(ea)Testing{Enter}{F5}" (and for extra fun, try it with multiple notepad windows open).
  • Set-WindowActive - yeah, just activates the window
  • Set-WindowPosition - set any one of (or all of) top, left, width, height on a window ... or maximize/minimize/restore
  • Get-WindowPosition - get the position (kind-of redundant, actually, since the Window object has it's position as a property)
  • Remove-Window - closes the specified window
  • 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 명령을 통해 해당 스냅인을 로드해야 합니다. 기억하세요.

    Posted by 알 수 없는 사용자
    :
    2010. 7. 16. 11:42

    안녕하세요 윈디안입니다.

    아마 처음 Windows 2008 서버 코어를 설치하셨던 분들은 한번씩 경험을 하셨을 것 같습니다.
    서버 설치 후 덩그러니 CMD 창만 반기고 있을 때의 당황스러움을 말이죠 ^^;

    Windows 2008 R2에서는 이런 당황스러움과 어려움을 해소해 줄 수 있는 새로운 Tool이 추가되었습니다.
    "SCONFIG.EXE"
    아주 기본적이지만 CMD로 하려면 막막한(...) 그런 것들을 쉽게 할 수 있도록 도와주는 한줄기 빛 같은 고마운 Tool입니다.


    위 이미지가 "Sconfig.exe"를 실행한 화면입니다.

    1. 그룹 변경 및 도메인 조인
    2. 컴퓨터 이름 변경
    3. 관리자 계정 추가
    4. 원격 관리 설정(MMC,PowerShell 사용,관리도구 연결,방화벽 설정)
    5. 윈도우 자동 업데이트 설정
    6. 보안 업데이트 수동 다운로드 및 설치
    7. 원격 데스크톱 설정(RDP)
    8. 네트워크 설정
    9. 날짜/시간 설정
    10. 로그오프
    11. 서버 재시작
    12. 서버 종료
    13. sconfig.exe 종료

    정말 꼭 필요한 기능들이죠.
    원하는 "숫자"를 입력한 후 엔터를 눌러 실행하시면 됩니다.

    저는 파워쉘 설치를 위해 "4"를 입력하였습니다.


    추가 메뉴가 나오네요.
    여기서 2를 선택하여 Windows PowerShell을 사용할 수 있도록 합니다.


    무언가 설치하고 설정합니다.


    설치완료를 위해 재시작이 필요하다고 알립니다.
    뭐 시키는 대로 예(Y)를 눌러 재시작을 해야죠.


    재시작 후 CMD 창에서 "powershell"이라고 입력하면 실행이 됩니다.

    참 쉽죠~ ㅎㅎ

    물론 Server Core에서는 DISM 같은 명령을 이용한 기능를 통해 PowerShell 및 다른 추가 기능을 이용할 수 있습니다.
    여러가지 방법 중 하나이며 R2에서만 사용할 수 있는 쉬운 방법인거죠.

    ServerCore에서 Sconfig을 이용하여 원격 연결을 활성화한 경우 MMC등을 통해서 cmdlet 없이 클라이언트의 GUI툴을 통한 관리가 가능합니다.

    * Remote Server Administration Tools for Windows 7
    http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=en

    그럼 다음에 뵙겠습니다. ^^;

    TIP. CMD에서 새로운 창으로 명령을 실행하는 경우 작업 관리자를 이용하여 새 창을 여시는 분들이 있는데 그럴 필요 없이 
          "start"라는 명령을 사용하면 새 창으로 CMD,PowerShell을 실행할 수 있습니다.
          "start cmd","start powershell" 이런 식으로 말이죠~

          이건 팁이라고 하기는 좀 그렇지만
          Windows 2008 R2는 64Bit만 지원합니다.
          Windows 7의 Windows VirtualPC로 테스트 VM을 설치하는 경우 VirtualPC가 64Bit를 지원하지 않기 때문에 설치가 되지 않습니다.
          처음에 이 생각을 못하고 DVD가 문제인가 하고 고민했습니다;;

    Posted by 알 수 없는 사용자
    :

    BLOG main image
    Windows Server를 공부 하는 사람들의 팀블로그 by 마성민

    카테고리

    분류 전체보기 (76)
    Windows (2)
    Powershell (56)
    마성민 (3)
    엉스데브 (20)
    윈디안 (9)
    10000wo (2)
    cyber1008 (2)
    Exterminate (3)
    shc1313 (1)
    junghwan83 (0)
    @우주인 (16)
    AD (0)
    Exchange (6)
    System Center (9)
    IIS (0)
    SQL (3)
    Sharepoint (0)

    태그목록

    Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

    Total :
    Today : Yesterday :