PowerShell 19

PowerShell Repository 구성

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

PowerShell 2017.11.03

RDCMan 2.7 도메인 컴퓨터 원격데스크톱 연결 한방에 등록하기

Remote Desktop Connection Manager 에 도메인에 가입된 모든 컴퓨터를 원격 데스크톱 연결로 일괄 등록할 수 있는 스크립트 입니다. 서버를 관리할때 각각의 서버들에 원격데스크톱 연결로 관리할때의 단점을 'Remote Desktop Connection Manager' (이하 RDCMan) 을 통해 조금더 간단하고 유연하게 관리가 가능한데 도메인에 서버 또는 관리할 컴퓨터가 많다면 등록하는 것 자체가 '일' 이 되겠지요. 기존에 만들어뒀던 [Software/Tools] - RDCMan 2.7 VM 콘솔연결 한방에 등록하기 를 약간 수정하여 도메인의 모든 컴퓨터를 일괄 등록할 수 있게 만들어 두었습니다. 아래의 파일을다운로드 받으신후, 해당파일 우클릭 > 'PowerShell에서 실행'..

PowerShell 2016.05.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 조건문 Switch

파워쉘의 조건문 중 하나인 스위치를 사용하면 상황에 따라 'IF'문 보다 간단하게 작업을 처리할 수 있습니다. 사용방법은 아래와 같습니다. 조건에 쓰일 값을 대입 - 여기서는 임의로 '5' 라는 값을 대입 switch (5) { 1 { Write "1입니다." } 2 { Write "2입니다." } 3 { Write "3입니다." } 4 { write "4입니다." } 5 { write "5입니다." } default { "1,2,3,4,5중에 없습니다." } } 상기 내용에 변수를 사용하면 아래와 같이 사용될 수 있겠습니다. $input = 3 switch ($input) { 1 { Write "1입니다." } 2 { Write "2입니다." } 3 { Write "3입니다." } 4 { write "..

PowerShell 2016.03.02

원격 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 조건문 IF

파워쉘의 조건문인 IF 를 통해 값을 비교하고 그 비교 결과에 따른 명령어를 수행할 수 있도록 지정할 수 있습니다. 하기의 내용을 실습하기 위해서 'PowerShell ISE' 를 실행시켜 작업해야겠습니다. 먼저 아래와 같이 입력해 보면 'IF' 문의 조건에 맞을때 뒤의 'Write-Host' 명령이 실행되는것을 확인할 수 있습니다. if(100 -eq 100) { Write-Host "조건에 맞습니다." } if(100 -eq 10) { Write-Host "조건에 맞습니다." } IF문의 조건에 맞지 않을때 실행할 명령어는 'ELSE'문에 넣을 수 있습니다. if(100 -eq 10) { Write-Host "조건에 맞습니다." } else { Write-Host "조건에 맞지 않습니다" } 조건을 ..

PowerShell 2016.02.29