자신이 입력한 cmdlet을 파일로 저장하기


하나의 세션에서 입력한 모든 명령어를 확인하여 파일로 저장할 수 있으면 좋을 것 같다. 이것을 가능하게 하는 것이 Get-History이다.
이렇게 하면 다시 그 cmdlet을 순서대로 다시 복습할 수 있기 때문이다.

Get-History로 최대 확인할 수 있는 개수는 64개까지이다. 그러므로 이 이상 되는 것을 확인할 수 없다는데 유의한다

  • 하나의 세션에서 많은 cmdlet을 입력하여 작업을 한다.
  • Get-History
    (이렇게 하면 최근 사용한 명령어를 기준으로 최대 32개까지만 확인이 가능하다)
  • Get-History –Count $MaximumHistoryCount
    (64개까지 cmdlet을 확인할 수 있다)
  • Get-History –Count 64
  • H –c 64
    (위의 3개 명령어는 모두 동일하다)
  • H –c 64 | Out-file c:\cmdletlist.txt
    (이렇게 하여 최근을 기준으로 하여 최대 64개까지의 명령어를 순서대로 기록하여 파일로 저장한다)

나이를 다양하게 표현하기- 전치사 At


창세기 17장 17절 말씀을 다양한 영어 성경 버전으로 나이 표현의 방법을 살펴보면 다음과 같다.

  • Will Sarah bear a child at the age of ninety?”
  • Will Sarah give birth at ninety?
  • And how can Sarah have a baby when she is ninety years old?”
  • Shall Sarah, who is ninety years old, bear a child?
  • Can Sarah, a ninety-year-old woman, give birth?
  • Will Sarah, at ninety years old, give birth?
전치사 At은 “딱 그것”을 말하기 때문에 [집중],[정확한 것],[순간적인 것]을 표현할 때 사용한다. 그래서 [at 나이/숫자]로 표현하면 “정확히 나이/숫자는~”로 이해하면 된다.
“정확한 것”을 표현할 때 사용하는 전치사 at은 나이뿐 아니라  [목표/방향, 거리, 눈금/비율, 가격,희생/대가]일 때도 사용한다 .

Logon 정보(계정, Kerberos/NTLM, SID등등) 확인하기


  1. 현재 로그온 한 도메인 확인
    $env:userdomain
  2. 로그온 한 사용자 계정 확인
    $env:username
  3. 로그온한 사용자 계정의 SID, 인증 종류,
    [System.Security.Principal.WindowsIdentity]::GetCurrent()
  4. 특정한 항목만 가져오기
    [System.Security.Principal.WindowsIdentity]::GetCurrent() |
    Select-Object
     -ExpandProperty User
     


 

SQL Server 2008 이상에서 PowerShell 사용하기


SQL Server에서도 PowerShell을 사용하여 원하는 작업을 할 수 있다.

1) Get-PSSnapin -Registered (등록 가능한 PowerShell Snapin 확인하기)
2) Add-PSSnapin -Name SqlServerCmdletSnapin100  (확인한 snapin 추가하기)
3) Get-Command *sql* (여기서 SQL에 관한 cmdlet는 Invoke-Sqlcmd 만 있음을 확인)
4) Invoke-Sqlcmd -Query “Select @@version” (help invoke-sqlcmd -detailed를 실행하여 구문을 확인한 후 이 명령을 실행한다)
5) Invoke-Sqlcmd -Query “Select getdate()”
6) Invoke-Sqlcmd -Server Adventureworks -Query “Exec SP_HelpDB” (Adventureworks라는 SQL server의 Database 종류를 확인한다)
Invoke-Sqlcmd -server Adventureworks -Query “Exec sp_helpdb” | ft -property name  (이렇게 하면 DB 이름 목록만 볼 수 있다)
7) Invoke-Sqlcmd -S Adventureworks -Q “Exec sp_who2”  (접속한 서버 이름을 지정한다)
8) Invoke-Sqlcmd -Query “Select  @@servername as ‘Server’, count(*) as ‘Blocked’ from master.dbo.sysprocesses where blocked <> 0”  | ft -autosize
(특정한 서버에서 블락된 프로세스를 확인한다)

** 아래는 DB를 만들고, Table을 만들고, 데이터를 입력한 후 데이터를 확인하는 작업이다
10) Invoke-Sqlcmd -Query “Create Database TestDB”
11) Invoke-Sqlcmd -database testDB -Query “Create table tbl1 (id int)”
12) Invoke-Sqlcmd -Database testDB -Query “Insert into tbl1 values (1)”
13) Invoke-Sqlcmd -Database testDB -Query “Select * from Tbl1” | ft -auto

** 이제 SQL Server 2008이 설치되지 않은 컴퓨터에서 원격으로 SQL Server에 접속하여 database를 만들어보자
14) enable-psremoting -force (접속할 원격 컴퓨터에서 원격 접속 허용을 한다)
** 이제부터는 접속할 컴퓨터(DC1)에서 작업을 한다
15)  $s = new-pssession -computername SQLServer1
16)  Get-PSSession
17)  Invoke-Command {get-host} -session $s
18)  Invoke-command {Get-PSSnapin -Registered} -Session $s
19)  Invoke-command {Add-PSSnapin -Name SqlServerCmdletSnapin100 } -Session $s
20) Invoke-command {Invoke-Sqlcmd -Query “Select @@version”} -Session $s
21) Invoke-command {Invoke-Sqlcmd -Server AdventureWorks -Query “Create Database TestDB1”} -Session $s
22)  Invoke-command {Invoke-Sqlcmd -Server AdventureWorks -Query “Exec SP_HelpDB”} -Session $s   | FT -Property Name

참고: http://msmvps.com/blogs/robfarley/archive/2008/03/04/sql-server-2008-powershell-snapin.aspx