Powershell – Remoting EnableCompatibilityHttpListener

원격지의 서버에 Powershell Remote를 활성화 시키는 작업중 해당 네트워크가 80번 포트를 제외한 거의 모든 포트가 윈도우즈 방화벽이 아닌 네트워크 상에서 막혀 있었다. 즉 Default port 인 5985 / 5986 을 사용 할 수 없어 원격 접속이 불가능한 경우 였다. 이때 포트를 직접 80번으로 바꾸어 주었는데 WSMan:localhostServiceEnableCompatibilityHttpListener 를 활성화 시키면 자동으로 80번 포트가 추가로 사용 가능…

Read More

Powershell – 원격 접속을 위한 Credential 만들기

원격 접속을 위해 Enter-PSSession 또는 Invoke-Command 를 수행 할 때 -Credential 파라메터가 필요하다. 사용자 이름만 적으면 자동으로 대화 상자가 뜨면서 입력 할 수 있다.

직접 Password 를 입력 할 수 없고 대화상자가 뜨는 이유는 -Credential 파라메터에 PSCredential 타입의 개체가 필요한데 이것을 만드는데 사용되는 SecureString 개체가 대화상자를 통해서만 만들수 있다. SecureString 만들기 아래와 같이 직접…

Read More

Powershell – Remoting (원격 접속)

원격지에 있는 Powershell 에 접속이 가능하다 정확히는 Session 을 만들수 있는데 이 Session을 이용하여 원격지에 있는 Powershell 과 상호작용이 가능한것이다. 자주쓰게 되는 기능인데 물어보는 분들이 많아 정리 해 둔다. 자세한 규칙이나 프로토콜, 원리등을 설명하면 20페이지정도 문서가 나올꺼 같지만 여기선 필요한 과정들에 대한 설명만 기록한다. 바쁜사람들은 아래를 보고 따라하자. A 가 B 에 원격 접속 하고…

Read More

Powershell – Ping-MultipleTarget

ICMP 패킷을 이용하여 Ping 결과를 bool 로 리턴하는 Function을 작성하고, 이를 이용하여 지정된 범위 의 모든 주소에 Ping을 시도하여 Host들의 상태를 확인 한다.

Read More

Powershell – Resize Powershell Window size

Powershell 창을 사용 할 때 가끔 폭이 너무 작아 불편 할 때가 있다. Height는 창을 늘리면 늘어 나지만 Width는 특정 크기 이상 최대화를 해도 늘어 나지 않는다. Property가 많은 개체를 열어 보거나 긴 text line을 봐야 하는 경우 갑갑 하기도 하다. 이때는 $Host.UI.RawUI.WindowSize 값을 조절 해 줌으로써 넓은 화면을 사용 할 수 있다. 단 변경할때…

Read More

Powershell – Invoke-BatchCommand

일반 cmd 에서 잘 수행되던 명령이 Powershell 에서 똑같이 입력 했을 때 오류가 나는 경우가 있다. 대부분 특수문자가 있을때 Powershell이 특수 문자를 특정 연산자로 인식하면서 의도하지 않은 동작이 일어나는 경우 이다. 예를 들어 svn Dump file을 load하는 경우 다음과 같은 명령을 사용한다.

cmd 에서는 잘 실행되지만 Powershell 에서는 다음과 같은 Error가 날 것이다. ‘…

Read More

Powershell – Parameter Attribute

Powershell Cmdlet, Function을 이용 하다 보면 명령 뒤의 Parameter를 필수 적으로 입력을 요구 할 때가 있다. 또 명령어 뒤에 -[parameter명] 을 붙히지 않고 공백으로 구분하여 입력 하면 자동으로 순서대로 Parameter를 인식 하는데 이런 동작들은 Cmdlet, Function 내부에 진입 하기 전에 Parameter Attribute 에 의해서 조절 된다. 즉 꼭 필요로 하는 Parameter를 Cmdlet 안에서 $null 체크를…

Read More