PowerShell 23

PowerShell Repository 구성

PowerShell Internal Repository 구성 및 서비스 방법에 대한 포스팅입니다. PowerShell 모듈을 다운로드하기위해 PSGallery를 많이 사용하고 있습니다.하지만 인터넷 연결이 불가능한 서버들의 경우 모듈설치를 위해 인터넷이 가능한곳에서 모듈파일을 다운로드 받아 서버로 복사하여 사용하는 방법밖에 없었습니다.또한, 인터넷망의 Repository를 통해 인증/검증되지 않은 모듈을 설치 및 사용하여 여러 문제들이 발생되어 최소한 사용이 검증된 모듈들을 한곳(Internal Repository) 에 모아두고 배포하는것이 필요할수 있습니다. 이러한 문제들로인한 요구사항이 있다면, 외부에 공개되지 않은 내부 PowerShell Repository를 생성하여 서비스할 수 있습니다.내부 P..

PowerShell 2017.11.03

PowerShell 도메인에 가입된 컴퓨터 정보확인

도메인에 가입된 컴퓨터의 IP 구성 정보, 컴퓨터 이름, OS 버전, 서비스팩 여부, DN, SID, 도메인에 가입된 날짜 또는 시간, 도메인 로그온 횟수 등 여러가지 정보가 필요한 경우가 있습니다. 아래의 파워쉘 스크립트를 통해서 쉽게 확인이 가능하겠습니다. 위의 스크립트를 우클릭하여 'PowerShell 에서 실행' 을 클릭하면 아래와 같은 결과로 출력됩니다. 상기 출력되는 내용은 컴퓨터 이름, 컴퓨터의 DNS 이름, IPv4 주소, DN, OS버전, OS의 서비스팩여부, 도메인에 가입된 시간, 변경된 시간, 각 컴퓨터의 마지막 로그온 시간, 로그온횟수, 활성화여부, SID 입니다. 아래는 스크립트의 내용입니다. $Temp = get-ADDomain | select DNSRoot | ConvertTo..

PowerShell 2016.04.26

PowerShell 도메인의 모든 컴퓨터에 GPUpdate 즉시 실행

PowerShell을 이용하여 도메인의 모든 컴퓨터의 정책을 새로 고침 하기 위해 invoke-gpupdate 명령을 즉시 실행하는 내용입니다. 관리자 권한으로 실행되어야 하기에 실행시 스크립트 실행권한을 체크하고 관리자 권한이 아닐경우 '현재 실행은 종료되며, 관리자 권한으로 자동 재실행됩니다.' 라는 메세지를 출력합니다. 그렇기에 파워쉘을 관리자 권한으로 실행 후 경로 찾아가서 실행하실 필요없이. 그냥 우클릭해서 'PowerShell에서 실행' 버튼 누르시면 알아서 관리자로 전환되어 집니다. 스크립트내의 핵심 명령어인 invoke-gpupdate 명령이 정상 동작하기 위해서 대상 컴퓨터들에 아래 두가지의 방화벽 인바운드 오픈 작업이 필요합니다. '원격 예약된 작업 관리(RPC)' '원격 예약된 작업관..

PowerShell 2016.04.20

PowerShell 원격데스크톱 포트 변경

PowrShell을 이용하여 원격 데스크탑 포트 변경하는 내용입니다. 정상 실행에는 관리자 권한이 필요합니다. 아래의 스크립트를 받으신 후 직접 실행시켜도 되고 '로그온 스크립트 정책' 으로 실행하셔도 잘 돌아 갑니다. 스크립트내의 변경할 포트는 53389로 지정되어 있으며 변경해서 사용하면됩니다. 아래는 파일의 내용입니다. 포트 변경은 아래의 붉은글씨 부분을 수정하시면 되겠습니다. Set-ItemProperty "HKLM:SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 53389 Restart-Service termservice -Force

PowerShell 2016.04.20

PowerShell을 이용한 정책 확인 및 수정

파워쉘을 이용하여 그룹정책개체 (GPO) 를 확인하고 수정하는 방법입니다. Powershell에서 Get-GPRegistryValue 명령어와 Set-GPRegistryValue 명령을 통해 레지스트리 기반 정책에 대한 정책 내용 확인과 정책 수정을 할 수 있겠습니다. 파워쉘을 통해 방화벽 정책내의 규칙을 수정하기 위해 시작되었으나 각 규칙의 수정은 불가능하고 규칙의 생성 및 삭제만 가능했습니다.일반적인 레지스트리 기반 정책은 정책 설정을 변경하는것이 가능합니다. 아래 예제는 제어판 사용에 대한 정책과 방화벽 정책내의 규칙에 대한 내용입니다. [제어판 정책] 1. '제어판 사용 금지 정책' 생성 후 내용 확인 2. 실제 경로로 이동하여 Registry 파일을 확인하기 위해 경로 확인 3. C:\Windo..

PowerShell 2016.03.30

원격 Powershell 실행

Remote PowerShell을 사용하기위해서 Trusted Host 즉, 신뢰할수있는 컴퓨터 목록에 추가해주어야 합니다. 파워쉘을 원격으로 실행하기 위해서 아래와 같은 과정을 선행해주면 되겠습니다. 1. 대상서버에 아래 명령어 실행 Enable-PSRemoting -Force 2. 관리할 컴퓨터의 '신뢰할 수 있는 호스트 목록'에 대상서버를 추가 Set-Item WSMan:\localhost\Client\TrustedHosts -Value -Force 만약 정책을 사용한다면 아래와 같이 정의할 수 있습니다. (2016.04.29 내용 추가) 'TrustedHostList' 부분에 특정 컴퓨터를 지정할 수 있으며, 아래와 같이 도메인의 모든 컴퓨터를 정의 할 수 도 있습니다. 만약 여러대의 컴퓨터를 지..

PowerShell 2016.03.02

PowerShell 리디렉션 출력

파워쉘에서 입력한 명령줄의결과물을 화면으로 출력 또는 파일로 출력, 프린터 출력이 가능합니다. 물론 Powershell 명령줄의 기본 출력은 모니터 즉, 화면입니다. Out-Host : 화면으로 출력 Out-File : 파일로 출력 Out-Printer : 프린터로 출력 Out-GridView : 창으로 출력 Out-Host '-Paging' 옵션은 CMD에서의 'More'와 비슷한 효과를 내줍니다. Out-File 인코딩을 지정해줄 수 있습니다. 출력 결과에 한글이 포함되어 있다면 utf8로 지정해주어야 한글이 제대로 표현되어 집니다. Out-Printer 하기의 예제와 같이 출력할 프린터를 지정할 수 있습니다. 만약 상기 예제와 같이 지정하지 않는다면 컴퓨터에 설정된 '기본 프린터' 로 출력되어집니다..

PowerShell 2016.02.26

PowerShell 필터링 기능

파워쉘 명령어를 통해 결과물을 출력할때 원하는 결과만 필터링 해서 봐야할 때가 있습니다. 그럴때는 'Where-Object' 를 사용해서 필터링 할 수 있겠습니다. 'Where-Object' 또는 Alias 되어진 'Where' 또 다른 Alias인 '?' 를 사용할 수 있습니다. 또한 '-Property'는 '$PSitem.' 또는 '$_.' 으로 쓸수 있습니다. Get-Service 를 입력하면 아래와 같이 출력되어집니다. 서비스의 상태 즉, Status 가 Running 인 서비스만 출력하고 싶다면 아래와 같이 입력할 수 있습니다. 상기 명령줄을아래와 같이 실행 할 수도 있습니다. 그런데 상태가 실행중이면서 서비스명이 'WIN' 포함되는 것을 찾고 싶다면. 즉, 두가지 이상의 조건으로 필터링 하고 ..

PowerShell 2016.02.26

PowerShell 비교 연산자

파워쉘의 비교 연산자는 일반적으로 '==' '!=' 와 같은것을 사용하지 않습니다. Powershell의 비교연산자는 '-eq', '-ne' 와 같은것을 사용하므로 알아두어야겠습니다. Equality : 같음 -eq Inequality : 같지않음 -ne Greater than : 보다 큰 -gt Less than : 보다 작은 -lt Greater than or equal to : 보다 크거나 같은 -ge Less than or equal to : 보다 작거나 같은 -le Wildcard equality : 텍스트의 와일드카드 비교 비슷함 -like 비슷하지 않음 -notlike 포함됨 -contains 포함되지않음 -notcontains

PowerShell 2016.02.25