kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

Windows Server 2012 강의 3일차 - PowerShell, VPN, WSUS (미완료) FTP

까마기 2014. 9. 22. 21:58
728x90
반응형
 
Windows PowerShell

-Windows Server 2012에서는 Version 3.0

-기본적으로 cmdlets이라 불리는 체계호된 명령 포맷으로 구성이 됨

동사-명사

Get-Process : 가져오기 - 프로세스

자주쓰이는 동사 : Get, Set, Start, Stop

cmd 창열어서
>powershell
---> powershell 시작


-옵션 줄때는 -옵션명 내용


ex) Get-Process -Name lsass
                   * name 뒤에는 검색하고자 하는 프로세스명
   * name 뒤에 tab 키누르면 프로세스가 차례로 넘어감
                   * name 뒤에 찾고자 하는 문자에 * 도 허용됨, 예를 들어 s*  또는  t* 와 같이





================================================================================================


2. 변수 사용 가능


ex) PS C:\Users\Administrator> $a = Get-Process -Name ServerManager
PS C:\Users\Administrator> $a

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    480      54    99056      38428   773     8.27   2908 ServerManager


PS C:\Users\Administrator>

PS C:\Users\Administrator> echo $a

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    480      54    99056      38428   773     8.30   2908 ServerManager


PS C:\Users\Administrator>

============================================================================================



3. 모든 것이 객체 단위로 관리도미

-  .NET Object에 기반되어 구현되어 있음 

PS C:\Users\Administrator> "Hello World"
Hello World
PS C:\Users\Administrator> "Hello World".Length
11
PS C:\Users\Administrator>



PS C:\Users\Administrator> $a = "Hello World"
PS C:\Users\Administrator> $a
Hello World
PS C:\Users\Administrator> $a.Length
11
PS C:\Users\Administrator>


데이터를 관리할수있는 객체단위로 관리가 되고있다...


.NETFRAMEWORK

C#이나 프로그래밍언어에서 사용하는 스트리밍이라는 데이터 객체, 데이터 타입이 정리가 되어있다.

그렇기 때문에 위와 같이 
system
-------------  .NET Object를 직접 호출할 수도 있다.

--> 기본적인 계산은 그냥 입력하면 실행되며, 
>40gb/250mb
--->오늘은 2013년 1월1일 기준으로 며칠이나 지났는지 


PS C:\Users\Administrator> [datetime]::Now -[datetime] "01/01/2013"


Days              : 113
Hours             : 10
Minutes           : 30
Seconds           : 8
Milliseconds      : 450
Ticks             : 98010084504045
TotalDays         : 113.437597805608
TotalHours        : 2722.50234733458
TotalMinutes      : 163350.140840075
TotalSeconds      : 9801008.4504045
TotalMilliseconds : 9801008450.4045



PS C:\Users\Administrator> $a = [datetime]::Now -[datetime] "01/01/2013"
PS C:\Users\Administrator> $a.TotalDays
113.438490153535
PS C:\Users\Administrator> $a.Days
113
PS C:\Users\Administrator>



파이프라인 기능

PS C:\Users\Administrator> Get-Item "C:\1.vhd" | move-item -Destination "C:\Wind
ows"
PS C:\Users\Administrator>


명령 실제 실행 전에, 어떻게 명령이 실행될 지를 미리 확인 가능  => -whatif 옵션을 끝에 줌

ex)
 Get-Process [b-t]*[c-f] | Stop-process -whatif


============================================================================================

PS C:\Users\Administrator> Get-process -Name notepad

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    117      10     1784      10828    99     0.20    728 notepad
    275      20     7364      24460   140     5.16   2384 notepad


PS C:\Users\Administrator> $a = Get-Process -Name notepad
PS C:\Users\Administrator> $a.kill

OverloadDefinitions
-------------------
void Kill()

void Kill()



PS C:\Users\Administrator> $a.kill()
PS C:\Users\Administrator>

kill 다음에 ()를 붙여야 한다.



> Stop-Process -Name notepad



  PS C:\Users\Administrator> [datetime]::IsLeapYear(2008)
True


=========================================

명령어를 찾는 명령어
와일드 카드도 이용

> Get-Command : 명령어 리스트 살펴보기
Get-command *process*     // process 가 들어간 명령어 찾기
get-help : 명령어 도움말을 살펴보기
get-help get-process

:item과 관련된 모든 명령어 목록을 살펴보고, 그 중 get-item, get-childitem 명령어에 대한 설명을 읽어보기
--> 별칭이 있는데 이 별칭을 치면 쉽게 커맨드를 실행할 수 있다.
지금과 같은 경우는 ls, dir, gci   (한마디로 명령어 약자)

:옵션이 있다. get-help 뒤에 사용
-examples
-detail
-full

ex)get-help -full
get-help -detail

* get-member
: 객체 내에 구성요소를 살펴보기
ex) gps | get-member
 > "Hello World" | Get-Member | more



<반복문>

ex) 

$handleCount = 0
foreach ($process in Get-process) {
 $handleCount += $process.handles }
$handleCount



** for,foreach
**$[리스트 변수명] | % {}

PS C:\Users\Administrator> $handleCount = 0
PS C:\Users\Administrator> foreach ($process in Get-Process) {
>> $handleCount += $process.Handles}
>> $handleCount
>>
12111
PS C:\Users\Administrator>


list 문을 통해서도 할 수 있다.

####################################################################
1. for 문

$변수=0 #초기화를 시켜줌
 for($[변수]=0;$[변수] -lt[최대값];$[변수]++)
{
# 수행할 작업
}

ex) for($counter=0; $counter -lt 10; $counter++)
{
Write-Host "카운터 $counter"
}

PS C:\Users\Administrator> for($counter=0; $counter -lt 10; $counter++)
>> {
>> Write-Host "카운터 $counter"
>> }
>>
카운터 0
카운터 1
카운터 2
카운터 3
카운터 4
카운터 5
카운터 6
카운터 7
카운터 8
카운터 9

==> 10번 반복해서 화면에 출력시켜줌.!



PS C:\Users\Administrator> for($counter=0; $counter -lt 5; $counter++)
>> {
>> Start-Process "notepad"
>> }
>>

--->메모장 5개 실행됨.



#############################################################################




PS C:\Users\Administrator> $name = ""
PS C:\Users\Administrator> foreach($process in Get-Process) {
>> $name += $process.name + " " }
>> $name
>>
armsvc chrome chrome chrome chrome cmd conhost csrss csrss dfsrs dfssvc dwm exp
lorer Idle iexplore iexplore lsass msdtc notepad powershell services smss spool
sv svchost svchost svchost svchost svchost svchost svchost svchost svchost svch
ost System taskhostex vds vmms wininit winlogon





PS C:\Users\Administrator> Update-List
PS C:\Users\Administrator> Update-help


=======================================================================
=======================================================================
=======================================================================




로컬에서 cmd 창에서  mmc(microsoft management console)

> mmc

그리고 DC1과 CL1 부팅

mmc에서 열기 하면
확장자는 .msc 
c:\windows\system32

UI 가 거의 비슷하기 때문에 여러 서비스를 하나로 붙여놓았다고 이해하면됨

예를 들어 디스크관리자, 컴퓨터관리자를 마우스로 클릭해서 찾아가는데 
이런것들이 그냥 mmc로 동작을 한다고 보면 된다.


제어판, control panel 같은 경우

안에 있는 프로그램 확장자가 cpl 로 끝나는 경우가 많다.

시스템 구성 유틸리티를 통해 현재 프로세스 분석을 할 경우도 있다.

(시작프로그램 탭에서)

desk.cpl 디스플레이 설정



mms 콘솔에서
파일-> 스냅인 추가/제거


윈도우즈 기반 관리 콘솔하고 있는데 사용가능한 (system32을 기반으로)
스냅인이 뜨는데 스냅인을 추가하고 새로만들면 원하는 스냅인 만을 만들수있다.

나만의 msc를 묶은 mmc 를 만들 수 있다.

--윈도우즈 서버를 관리 할때 편하게 관리 할 수있는 장점이 있다.


=============================================================
CL1 에서 admin 계정으로 로그인(adatum 도메인)

, <netsh을 이용하여 ip 설정하기>


powershell

>netsh

>

Import-Module netadapter


powershell
$netadapter = Get-netadapter -name "Local Area Connection"
$netadapter | Set-netipinterface -dhcp enabled
ipconfig


set-netipinterface -interfacealias "local area connection" -dhcp enabled

하면 ip주소가 고정ip에서 자동으로 받아온 것을 알 수있다.



다시 수동으로 ip 바꾸기

$netadapter | New-netipaddress -addressfamily ipv4 -ipaddress 172.16.0.50 -prefixlength 16 -type unicast 
-defaultgateway 172.16.0.1

enter 치면 바뀐다
근데 이미 존재한다는 오류가 나오면 그냥 바뀐것이니 상관이 없다.

DNS 서버 고정 설정하기

netsh interface ipv4 set dnsservers "Local Area Connection" static 168.126.63.1 primary


$netadapter | set-dnsclientserveraddress -resetserveraddresses 172.16.0.10,168.126.63.1


<dns from dhcp>
$netadapter | set-dnsclientserveraddress -resetserveraddresses


=======================================================================
hyper-v 관리자에서 svr1 실행

DC1 서버관리자 모든서버에서 서버추가 svr1 추가해서 원격으로 관리 할 수 있다.
UI는 DC1에서만 동작하고 나머지 관리하는 서버는 servercore로 성능을 높이는 방법이 있다.

추가하고 추가된 서버 오른쪽클릭 다음으로 관리 -> adatum\administartor
로 인증받고 컴퓨터관리나 서비스를 클릭하면 이벤트 뷰어 에러가 뜨는데
해당 svr1 서버에 가서 고급 방화벽 인바운드 규칙에서 해당 규칙을 사용(허용으로)하고
접속하면 된다.

또 svr1에 컴퓨터 속성에서 원격접속을 허용한후
dc1에서 원격 데스크톱 접속도 가능하다.

========================================================================
성능을 실시간으로 모니터링 하고 싶을때 성능 모니터를 사용.
추가에서 카운터를 추가 할수있는데
여러 항목이 카운터를 의미. 선택해서 볼 수있다.
=========================================================


VPN

접속 관리자 관리 도구
(CMAK)

네트워크 어댑터를 수동으로 추가하지 않아도 툴을 이용하여

자동으로 어댑터추가하고 설정하여 접속 가능.

=============================
SVR1에서 네트워크 정책서버 설치, RRAS 설치

네트워크 정책 서버 열어서 NPS 오늘쪽 클릭 AD에 서버 등록




==============
windows update 관리를 중앙에서 하는.

WSUS 

windows update server





DC1 : 도메인 컨트롤러
SVR1 : WSUS 업데이트 서버가 이미 설치가 되어 있는 상태





*pickpic

 

반응형