2010. 8. 24. 15:03
안녕하세요. 엉스데브 입니다.

이번에 새로 WIndows 2008 R2 서버를 하나 설치 했습니다. 웹 사이트를 하나 운영 하려구요.
제가 요새 PowerShell 을 공부하는 중이라서 이번 웹서버 구축은 PowerShell 을 통해서 모든 것을 진행 해 보려고 합니다.

먼저 PowerShell 을 켜 볼까요?
Windows 2008 R2 서버는 관리자로 로그인시 작업표시줄에 PowerShell 아이콘이 기본적으로 있으며,
Windows 7 과는 다르게 아이콘을 오른쪽 클릭하고 "관리자 권한으로 실행" 메뉴를 클릭해서 실행 하지 않아도
자동으로 관리자 권한으로 실행 됩니다. 아무래도 서버 제품이다 보니 작업의 특성을 잘 살린 배려인것 같습니다. 편하네요~



Windows 2008 R2 는 기본적으로 "ServerManager" 라는 모듈을 제공합니다.
이 모듈은 역할, 역할 서비스 및 기능 등을 추가/삭제 할 수 있는 기능을 제공하며, 이를 통해 IIS 를 설치 할 수 있습니다.

어디 정말 "ServerManager" 모듈이 존재하는지 확인 해 볼까요?


네. 역시 존재하네요.

그럼 모듈을 한번 불러들여 보겠습니다. 모듈에서 어떤 cmdlet 을 제공하는지도 확인 해 볼까요?


이야.. 심플합니다. cmdlet 3개가 추가 된 커맨드의 전부네요.
게다가 모두 WindowsFeature 에 대한 내용들이고, Add / Get / Remove 등 직관적으로 무엇을 할 수 있는지가 파악 됩니다.
네.. WindowsFeature 들을 추가하고 목록을 가져오고 삭제도 할 수 있겠네요.

더 정확한 내용을 보려면 Get-Help 명령을 이용하면 됩니다. 도움말이 한글화 되어 있어 상당히 편하네요.


일단 어떤 WindowsFeature 들이 있는지 한번 살펴보겠습니다.


엄청 많이 표시 됩니다. 하부 항목들은 트리구조를 흉내내어 들여쓰기 되어 표시되는군요.
아마도 GUI 로 된 서버 관리자에서 관리 할 수 있는 모든 역할, 역할서비스 및 기능 들을 다 표시 해 주는 것 같습니다.
오른 쪽에는 해당 WindowsFeature 의 정식 이름이 표시 되네요.

너무 많으므로, 웹서버(IIS) 와 관련 된 항목만을 추려서 다시 봐야 겠습니다.
모든 웹서버(IIS) 관련 항목은 이름이 "Web-" 로 시작 합니다. 아래와 같이 입력하면 관련 내용만 표시 됩니다.


웹서버(IIS) 가 보입니다. 이 Feature 의 정확한 이름은 Web-Server 네요.

일단 무조건 설치 해 봤습니다. 약간의 시간이 지나 결과가 표시 되네요.


성공 여부, 재시작이 필요한지 여부, 종료 코드, 그리고 설치 된 항목의 리스트가 표시 되네요.
웹서버(IIS)에 포함된 모든 항목이 설치되는 것은 아니고, 꼭 필요한 필수 Feature 들만 골라서 설치 되네요.
(어떤게 설치 되었는지는 다시한번 Get-WindowsFeature -Name "Web-*" 명령어를 날려서 확인 해 보면 됩니다)

테스트로 설치 해 본 것인만큼 일단 지워 보겠습니다.


아, 지워지긴 했는데 재부팅을 해야지만 정상적으로 제거가 된다고 하는군요. 재시작 해 줍니다.


재부팅이 완료 되었습니다. 이제 실제 서비스에 사용할 웹서버를 다시 설치 해 볼겁니다.
전 서버 용량도 충분하고 혹시나 나중에 기능을 추가할 경우에 번거로운 일들이 생길까봐, 전체 기능을 다 설치 하기로 했습니다.
아래와 같이 입력하면 됩니다.


자, 그럼 잘 설치 되어 있는지 확인 해 볼까요??


모두 잘 설치가 되었습니다!(X 표시가 설치가 되었다는 표시입니다.)

PowerShell 로 IIS 설치하기 참 쉬운 것 같습니다. ^^


<참고 URL>
http://blogs.msdn.com/b/powershell/archive/2009/01/27/managing-server-features-with-powershell-cmdlets-on-windows-2008-server-r2-beta.aspx
Posted by 알 수 없는 사용자
:
2010. 8. 18. 17:58
안녕하세요. 엉스데브 입니다.

리눅스 시스템을 관리 할 때 편하게 사용했던 명령 중에 findgrep 명령이 있었습니다.
여러개의 폴더 및 하위 폴더의 파일을 대상으로 찾고자 하는 문자열을 포함한 파일을 찾아주는 기능을 하는 명령 입니다.
PowerShell 에서도 이 명령을 사용하고 싶어져서, 만들어 보았습니다.

function Search-FileByContentString
{
  param
  (
    [String]$SearchString,
    [String]$TargetDirectory,
    [String]$IncludeExtension = 'txt;asp;aspx;config;xml',
    [Int32]$SkipFileSize = 5MB
  )
 
 $directory = Get-ChildItem($TargetDirectory) -ErrorAction SilentlyContinue

  if($directory -eq $null)
  {
    return $null
  }

  foreach($item in $directory)
  {
    switch($item.GetType().ToString())
    {
      # 파일 일때
      'System.IO.FileInfo'
      {
        if (!($IncludeExtension.Split(';') -eq $item.Extension.Replace('.','')))
        {
          break
        }

        if($item.Length -gt $SkipFileSize)
        {
          break
        }
       
        $Lines = @(Get-Content($item.FullName))

        for($index = 0; $index -lt $Lines.Count; $index++)
        {
          if( $Lines[$index].Contains($SearchString))
          {
            Write-Host $item.FullName"("($index + 1)"): "$Lines[$index]
          }
        }

        break
      }

      # 디렉토리 일때
      'System.IO.DirectoryInfo'
      {
        Search-FilebyContentString -SearchString $SearchString -TargetDirectory $item.FullName -IncludeExtension $IncludeExtension -ExcludeExtension $ExcludeExtension -SkipFileSize $SkipFileSize
        break
      }

      # 다른 종류 일때
      default
      {
        Write-Host "Error:(" + $item.GetType().ToString() + ")"
        break
      }
    }
  }
}

실행 결과:



<참고 URL>
http://thelazyadmin.com/blogs/thelazyadmin/archive/2007/05/09/powershell-dyi-commands-using-functions.aspx
Posted by 알 수 없는 사용자
:
2010. 8. 18. 17:02
안녕하세요. 엉스데브 입니다.

PowerShell 을 사용해 FTP 사이트를 만들다 보니, FTP 로그인 정보로 사용할 사용자 계정추가가 필요 해 졌습니다.
해서 간단하게 로컬 컴퓨터의 사용자를 추가 및 삭제 할 수 있는 함수를 만들어 보았습니다.

*아래 함수들은 반드시 PowerShell 이 관리자 권한으로 실행 되었을 때에만 권한 문제 없이 실행 됩니다.

# 새 로컬 사용자 추가.
function New-LocalUser
{
  param
  (
    [parameter(Mandatory=$true)]$Name,
    [parameter(Mandatory=$true)]$Password
  )

  $LocalUser = Get-WmiObject Win32_useraccount -Computer $env:computerName -Filter "LocalAccount=True" | Where-Object -Filter {$_.Name -eq $Name}

  if($LocalUser -eq $null)
  {
    $LocalComputer = [adsi]"WinNT://$env:computerName"
    $LocalUser = $LocalComputer.Create("User", $Name)
    $LocalUser.SetPassword($Password)
    $LocalUser.SetInfo()
  }
}

# 로컬 사용자 삭제.
function Remove-LocalUser
{
  param
  (
    [parameter(Mandatory=$true)]$Name   
  )

  $LocalComputer = [adsi]"WinNT://$env:computerName"

  $LocalComputer.Delete("user",$Name) 
}

# 로컬 사용자 목록 가져오기.
function Get-LocalUser
{
  param
  (
    $Name
  )

  if($Name -eq $null)
  {
    Get-WmiObject Win32_useraccount -Computer $env:computerName -Filter "LocalAccount=True"
  }
  else
  {
    Get-WmiObject Win32_useraccount -Computer $env:computerName -Filter "LocalAccount=True" | Where-Object -Filter {$_.Name -eq $Name}
  } 
}

아래 더보기 버튼을 누르시면, 간단한 해설을 보실 수 있습니다.


<참고 URL>
http://stackoverflow.com/questions/383390/create-local-user-with-powershell-windows-vista
http://powershell.com/cs/media/p/2327.aspx
Posted by 알 수 없는 사용자
:
2010. 8. 18. 16:24

안녕하세요 exterminate 입니다.

이번 포스팅은 powershell로 ms-sql을 사용하는 편 입니다.

사실 ms-sql을 사용하면서 작업을 하려고 하다 보면 부하가 있으면 gui환경에서는 너무느려서 짜증나고 쿼리분석기를 쓰자니 쿼리문도 어

렵고 해서 짜증이 솟구치는 적이 한두번이 아니였습니다. my-sql에서 사용하는 모든쿼리문이 적용되지는 않으나 콘솔 환경에서 사용할 수
있는 점이 기존의 gui환경에서 ms-sql을 사용하였을때 보다는 많이 거부감은 없을것 같다.

먼저 데이타베이스를 파워쉘로 접속하는 2가지 방법입니다.

첫번째는 ms-sql에서 해당 db의 오른쪽 클릭을하면 PowerShell 시작이라고 있습니다.



두번째 방법은 PowerShell에서 sqlps를 이용하여 접속하는 방법입니다.
sqlps는 Windows PowerShell 환경을 만든 다음 SQL Server 스냅인을 로드하고 등록하는 유틸리티입니다.
실행 하면 다음과 같이 SQLSERVER로 접속이 되게 됩니다.
데이타 베이스의 경로는 다음과 같습니다.
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2008R2 이며
MYComputer 부분은 hostname 이며 AdventureWorks2008R2은 데이타베이스 명입니다.

그러면 제가 구성해놓은 테스트 db인 sungjin 으로 접속해보겠습니다.

hostname부분은 모두 가려놓았습니다.
보시면 sungjin이라는 db에 접속한것을 확인하실수 있습니다.
여기서 ls로 하위 폴더를 보시면..


해당 db의 구성을 확인할수 있습니다... 목록을 보니..User..Views...Table이 눈에 들어오네요

그러면 Table로 이동해보겠습니다.

sungjin 데이타베이스의 구성된 테이블 목록을 확인할수 있습니다.
또한 여기서 테이블을 여러가지 쿼리문으로 실행해본 결과 입니다.
Invoke-Sqlcmd 을 이용하여 쿼리문을 실행할수 있으며 Invoke-Sqlcmd 는 sqlcmd유틸리티를 이용하여 실행할 수도 있는 쿼리문 및 스크립트를 실행할 수 있습니다.
Invoke-Sqlcmd에 대한 자세한 설명을 아래 경로를 참조해주시기 바랍니다.
http://msdn.microsoft.com/ko-kr/library/cc281720.aspx
쿼리문을 실행하기 위해선 -query를 붙여주셔야 합니다.


테이블을 검색하실땐 스키마.테이블명 으로 조회해야 합니다.
위의 boardId , boardName, fileUpload,reply 는 해당 테이블의 열 이름 입니다.
board라는 테이블에 대하여 조건을 넣어 특정행을 삭제하고 select로 출력해보는 쿼리문 이였습니다.

위와 같이 쿼리문이 실행되게 되며 테이블폴더로 이동한후 하위폴더를 확인해보도록 하겠습니다.
Columns폴더로 이동한후 출력해보면 해당 테이블의 열 이름을 확인할수 있다.


이 처럼 Powershell로 ms-sql을 사용하면 콘솔 모드 에서 사용할수 있기 때문에 편리하며

또한 폴더로 이동하면서 해당 db의 대한 정보를 확인할 수 있다는 점이 매우 편리 한것 같다.

'Powershell > Exterminate' 카테고리의 다른 글

Powershell 시스템 백업  (0) 2010.08.04
Powershell 로 프로세스 관리를 해보자!  (0) 2010.07.20
Posted by 알 수 없는 사용자
:
2010. 8. 12. 10:33
안녕하세요. 엉스데브입니다.

리눅스 서버 관리시 자주 사용하던 명령 중 df 명령어가 있습니다.
아래와 같이 현재 디스크 사용량을 표시 해 주는 명령인데요.



PowerShell 에서 df 대용으로 쓸만한 함수를 마련했습니다.
구글링을 통해 적당한 함수를 찾았고, 살짝 고쳐서 사용 하고 있습니다.

Function Get-DiskFreeSpace
{
  Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" | Format-Table -AutoSize `
  @{Label="DiskDrive";Expression={$_.VolumeName + " (" + $_.DeviceID + ")"}},`
  @{Label="Size";Expression={($_.Size/1gb) -as [int]};FormatString="{0:N1}G"},`
  @{Label="Used";Expression={($_.Size/1gb)-($_.FreeSpace/1gb) -as [int]};FormatString="{0:N1}G"},`
  @{Label="Avail";Expression={($_.FreeSpace/1gb) -as [int]};FormatString="{0:N1}G"},`
  @{Label="Use%";Expression={(($_.Size/1gb)-($_.FreeSpace/1gb))/($_.Size/1gb) * 100 -as [int]};FormatString="{0:N1}%"}
}

위 함수를 프로필에 추가 해 두고 사용하면 됩니다. 전 df 라는 이름으로 Alias 도 걸어 두었습니다.
Set-Alias "df" "Get-DiskFreeSpace"

PowerShell 에서 df 를 실행 해 본 결과입니다.


쓸만하지요?

#아래 펼치기를 누르면 다소 복잡한 스크립트 설명이 나옵니다.#



<참고 URL>
http://binarynature.blogspot.com/2010/04/powershell-version-of-df-command.html
http://technet.microsoft.com/ko-kr/library/dd315369.aspx
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. 8. 4. 16:58

안녕하세요 Exterminate 입니다.

이번 포스팅은 Powershell로 시스템 상태 백업 만들기 입니다.

Windows Server 2008 R2에서는 백업 일정 마법사, 백업 마법사, Wbadmin start systemstatebackup 명령, Wbadmin enable backup 명령 또는 Windows Server 백업용 Windows PowerShell cmdlet 사용하여 서버의 시스템 상태 백업을 만들 있습니다. 시스템 상태 백업은 로컬로 연결된 내부 또는 외부 디스크나 원격 공유 폴더에 저장할 있으며 DVD, 광학 미디어 또는 기타 이동식 저장 미디어에는 저장할 없습니다. 또한 시스템 상태 백업을 만들 복구를 위한 다른 파일, 폴더 볼륨을 추가할 수도 있습니다.

 

Wbadmin start systemstatebackup 사용하여 일회성 백업 또는 시스템 상태를 만들고 Wbadmin enable backup 사용하여 시스템 상태의 예약된 백업을 만드는 방법에 대해 설명합니다

 

먼저 Wbadmin start systemstatebackup 이용하여 백업하는 방법 입니다.

 

위에서 설명하였다시피 Wbadmin start systemstatebackup 이용한 백업은 일회성 입니다.

 

먼저 구문은 wbadmin start systemstatebackup -backupTarget:<볼륨 이름> [-quiet] 이며

c드라이브에 대한 시스템 상태 백업을 e드라이브에 저장 되도록 실행해 보겠습니다..

wbadmin start systemstatebackup -backupTarget:e: -quiet

 

 

백업에 대한 로그 파일은 C:\Windows\Logs\WindowsServerBackup 경로에 쌓이게 됩니다.

 

E 드라이브에 다음과 같이 파일이 생성이 되며 VHD파일로 백업파일을 지원하고 있습니다.


여기서 잠깐..!

Windows2008에서는 기존 2000,2003에서 지원하던 ntbackup이 지원을 안하며 windows server 백업을 지원하고 있습니다. Ntbackup은 파일 기반 백업 및 복원 도구 이지만 windows server 백업은 볼륨 및 블록 기반의 도구 입니다. Windows server 백업에서는 백업 소스를 볼륨 집합으로 다루며 각 볼륨은 디스크 블록의 모음으로 다룹니다. 이러한 방식은 파일 시스템을 통해 파일을 백업하는 방식보다 훨씬 효율적이라고 합니다.

 

Wbadmin enable backup 이용하여 백업 스케쥴링을 만들어 보겠습니다.

일단 기본 구문은 아래와 같습니다.

wbadmin enable backup [-addtarget:<백업 대상>] [-removetarget:<백업 대상>] [-schedule:<백업 실행 시간>] [-include:<포함할 항목> [-nonRecurseInclude:<포함할 항목>] [-exclude:<제외할 항목>] [-nonRecurseExclude:<제외할 항목>] [-allCritical] [-systemState] [-vssFull | -vssCopy] [-user:<사용자 이름>] [-password:<암호>] [-quiet]

 

D드라이브를 백업하며 기본적으로 포함되는 c드라이브를 제외하여 스케쥴링을 적용해보겠습니다.

wbadmin enable backup -addtarget:e: -include:d: -exclude:c: -schedule:02:00 -systemState –quiet


 

정상적으로 예약 작업이 실행 되었으며 적용된 사항 확인해보도록 하겠습니다.

 

 

백업 항목을 보시면 기본적으로 C 볼륨이 적용되지만 제외된 것을 확인할 수 있습니다.

addtarget에서 지정한 e 볼륨에 백업파일이 생성되며 생성된 백업파일 VHD

디스크 관리에서 VHD연결을 통하여 백업 데이터 확인할 수 있습니다.

감사합니다.

Posted by 알 수 없는 사용자
:
2010. 8. 2. 11:50

안녕하세요. 엉스데브입니다.

가끔, 현재 작업 중인 PowerShell 창이 관리자 권한을 가지고 있는지를 확인 하고 싶을 때가 있습니다.
아래 명령어를 실행하면, 관리자 권한이 있는지를 확인 할 수 있습니다.
현재 내가 연 PowerShell 창이 관리자 권한을 가졌는지 여부를 확인 하려면, 아래의 명령어를 사용 하면 됩니다.

([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).isInRole([Security.Principal.WindowsBuiltinRole]::Administrator)



False 가 리턴 되는걸 보니 현재 연 PowerShell 창은 관리자 권한이 없네요.

헌데 명령어가 너무 길죠? ^^;
그래서 저는 아래 Function 을 따로 만들어서 Profile 에 추가 해 두었습니다.

Function Test-Role
{
  Param( [Security.Principal.WindowsBuiltinRole]$Role )

  $CurrentUser = [Security.Principal.WindowsPrincipal]([Security.Principal.WindowsIdentity]::GetCurrent())

  $CurrentUser.IsInRole($Role)
}

사용법은 다음과 같습니다.

Test-Role {"체크할 권한"}

지정 한 권한을 가지고 있다면 True 를 반환하고, 그렇지 않다면 False 를 반환 합니다.

이 Function 으로 관리자 권한을 가지고 있는지 확인 하려면, 아래처럼 사용하면 됩니다.

Test-Role "Administrator"



만약, 잘못 된 값을 지정하면 아래와 같이 오류가 반환 됩니다.


에러 메시지 내용에 현재 시도 할 수 있는 값들을 알려주네요.

스크립트 제작시 권한을 체크해야 할 경우, 유용하게 사용 할 수 있을 것 같습니다.

<참고 URL>
http://serverfault.com/questions/95431/in-a-powershell-script-how-can-i-check-if-im-running-with-administrator-privlie

Posted by 알 수 없는 사용자
:
2010. 7. 29. 10:33

안녕하세요 @우주인입니다.

파워쉘 관련 다양한 툴들이 있지만 그래도 기존에 쓰고 있는 툴에 붙여쓰면 좋겠다싶어 visual studio에 연결해서 쓰는 방법을 찾아봤습니다.

1. PowerGui 를 설치합니다. ( http://www.powergui.org/index.jspa )
  파워쉘을 위한 독립적인 툴입니다. 이 툴을 최신버전으로 우선 설치합니다.

2.PowerGui를 Visual Studio 2010 에 붙여주는 툴을 다운로드 합니다. ( http://powerguivsx.codeplex.com/ )

위에 두가지를 설치하면 Visual Studio 2010 에서 파워쉘파일에 대해 자동완성이나 하이라이트 기능을 이용할 수 있습니다.

파워쉘 파일 생성은



위 과정으로 파일을 생성하면 아래와 같이 사용이 가능합니다.


원본: http://woojuin79.tistory.com/category/Window/VS

'Powershell > @우주인' 카테고리의 다른 글

[MSSQL]WMI for SQL Management(1)  (0) 2010.09.15
파워쉘을 이용한 DOM 사용  (0) 2010.09.09
파워쉘 부팅매크로(Invoke-Item)  (0) 2010.09.09
파워쉘 버전  (0) 2010.09.09
PowerShell Profile Configuration  (2) 2010.09.09
Posted by 알 수 없는 사용자
:

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

카테고리

분류 전체보기 (76)
Windows (2)
Powershell (56)
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 :