전체 글 (306)
RDCMan 2.7 도메인 컴퓨터 원격데스크톱 연결 한방에 등록하기

Remote Desktop Connection Manager 에 도메인에 가입된 모든 컴퓨터를 원격 데스크톱 연결로 일괄 등록할 수 있는 스크립트 입니다.

서버를 관리할때 각각의 서버들에 원격데스크톱 연결로 관리할때의 단점을 'Remote Desktop Connection Manager' (이하 RDCMan) 을 통해 조금더 간단하고 유연하게 관리가 가능한데 도메인에 서버 또는 관리할 컴퓨터가 많다면 등록하는 것 자체가 '일' 이 되겠지요.

기존에 만들어뒀던 [Software/Tools] - RDCMan 2.7 VM 콘솔연결 한방에 등록하기 를 약간 수정하여 도메인의 모든 컴퓨터를 일괄 등록할 수 있게 만들어 두었습니다.

아래의 파일을다운로드 받으신후, 해당파일 우클릭 > 'PowerShell에서 실행' 을 누르면 바탕화면에 도메인명.rdg 파일이 생성됩니다.

RDCMan에서 컴퓨터 리스트로 기본 디스플레이되는 목록은 'IP [호스트명]' 으로 되어지며, 각 컴퓨터 우클릭 > 'Properties' > 'Comment' 부분에는 해당 컴퓨터의 고유이름(DN)이 추가되게 되어있어 해당 컴퓨터가 Active Directory상의 어떤 경로에 위치해 있는지 알 수 있게 되어 있습니다.

 

 

 

 

아래는 해당 스크립트의 소스입니다.

 

<#
    내용: 도메인내 컴퓨터를 Remote Desktop connection Manager에 원격 데스크톱 연결 방식으로 일괄등록
    작성자: 이성환(www.delmaster.net)
    작성일 : 2016.04.29
 업데이트: 2016.04.29
   실행권한 확인후 관리자가 아닐시, 관리자 권한으로 자동 실행
  : 2016.05.02
   기존 파일 유무 확인후, 파일존재시 새로운 파일명으로 생성
#>

Function Permit-Check
{
   Param( [Security.Principal.WindowsBuiltinRole]$Role )
   $CurrentUser = [Security.Principal.WindowsPrincipal]([Security.Principal.WindowsIdentity]::GetCurrent())
   $CurrentUser.IsInRole($Role)
}

$Admin = Permit-Check "administrator"

Write-Host ""
Write-Host "======================www.delmaster.net=============================" -BackgroundColor Black -ForegroundColor White
Write-Host ""

Write-Host "관리자 권한 확인중.." -BackgroundColor Black -ForegroundColor Yellow

if ($Admin -eq "True")
{
 Write-Host "권한확인 성공" -BackgroundColor Black -ForegroundColor Red
 Write-Host ""

    $Path = "$env:userprofile\desktop"
    $Domain = Get-ADDomain
    $DomainName = $Domain.Forest
    Write-Host "현재 도메인에 가입된 컴퓨터를 $Path\$DomainName.rdg 파일로 저장합니다." -BackgroundColor Black -ForegroundColor Yellow
    Write-Host "작업중...." -BackgroundColor Black -ForegroundColor Red
    $TestPath = Test-Path $Path\$DomainName.rdg
       
    if ($TestPath -like "True")
    {
        Write-Host ""
        Write-Host "파일이 존재합니다!!" -BackgroundColor Black -ForegroundColor Red
        Write-Host "해당 경로에 새로운 파일을 생성합니다." -BackgroundColor Black -ForegroundColor Red
        Write-Host ""
        $random = random
        $DomainName = "$DomainName $random"
     }

    Get-ADComputer -Filter * -Properties * | select Name,IPv4Address,DistinguishedName | ? IPv4Address -NotLike "" | Export-csv -path $Path\$DomainName.rdg -encoding utf8
   
    $CompList = Get-Content $Path\$DomainName.rdg
    $CompGet = Import-Csv -Path $Path\$DomainName.rdg
    $CompCount = $CompGet.Count
         
    Write-Output "<?xml version=""1.0"" encoding=""utf-8""?>
    <RDCMan programVersion=""2.7"" schemaVersion=""3""><file><credentialsProfiles />
    <properties><expanded>True</expanded><name>$DomainName</name></properties>" > $Path\$DomainName.rdg
  
    for($i=0;$i -lt $CompCount; $i++)
    {
        $CompName = $CompGet.Name[$i]
        $CompIPv4 = $CompGet.IPv4Address[$i]
        $CompDesc = $CompGet.DistinguishedName[$i]
        Write-Output "<server><properties><displayName>$CompIPv4 [$CompName]</displayName>
        <name>$CompIPv4</name><comment>$CompDesc</comment></properties></server>" >> $Path\$DomainName.rdg
    }

    Write-Output "</file><connected /><favorites /><recentlyUsed /></RDCMan>" >> $Path\$DomainName.rdg
   
    $Encoding = Get-Content -Path $Path\$DomainName.rdg
    $Encoding | Out-File -Encoding utf8 -FilePath $Path\$DomainName.rdg

    Write-Host "모든 작업이 완료 되었습니다." -BackgroundColor Black -ForegroundColor Yellow
    Write-Host "$Path\$DomainName.rdg 파일을 확인하세요." -BackgroundColor Black -ForegroundColor Yellow
    Write-Host ""
    Write-Host "======================www.delmaster.net=============================" -BackgroundColor Black -ForegroundColor White
    Write-Host ""
  
 pause
}
else
{
 Write-Host "관리자 권한으로 실행되지 않았습니다." -ForegroundColor Yellow
 write-Host "현재 실행은 종료되며, 관리자 권한으로 자동 재실행 됩니다." -ForegroundColor Yellow
 sleep(1)
 Start-Process -Verb "Runas" -File PowerShell.exe -Argument "-STA -noprofile -file $($myinvocation.mycommand.definition)"
 Write-Host ""
    Write-Host "======================www.delmaster.net=============================" -BackgroundColor Black -ForegroundColor White
}

 

 

[참고글]

 

  Comments
댓글 쓰기
PowerShell 도메인에 가입된 컴퓨터 정보확인

도메인에 가입된 컴퓨터의 IP 구성 정보, 컴퓨터 이름, OS 버전, 서비스팩 여부, DN, SID, 도메인에 가입된 날짜 또는 시간, 도메인 로그온 횟수 등 여러가지 정보가 필요한 경우가 있습니다.

아래의 파워쉘 스크립트를 통해서 쉽게 확인이 가능하겠습니다.

 

 

 

위의 스크립트를 우클릭하여 'PowerShell 에서 실행' 을 클릭하면 아래와 같은 결과로 출력됩니다.

 

 

get-adcomputer

 

상기 출력되는 내용은 컴퓨터 이름, 컴퓨터의 DNS 이름, IPv4 주소, DN, OS버전, OS의 서비스팩여부, 도메인에 가입된 시간, 변경된 시간, 각 컴퓨터의 마지막 로그온 시간, 로그온횟수, 활성화여부, SID 입니다.

 

아래는 스크립트의 내용입니다.

 

 

<#
    내용: 도메인의 컴퓨터 정보 확인
    작성자: 이성환(www.delmaster.net)
    작성일 : 2016.04.22
    업데이트: -
#>

$Temp = get-ADDomain | select DNSRoot | ConvertTo-Csv
$Domain = $Temp[2]
Get-ADComputer -Filter * -Properties * | select Name,DNSHostName,IPv4Address,DistinguishedName, OperatingSystem,OperatingSystemServicePack,whenCreated,whenChanged,LastLogonDate,logonCount,

Enabled, objectSid | Out-GridView -OutputMode Multi -Title "$Domain 의 Computer"

  Comments
댓글 쓰기
PowerShell 도메인의 모든 컴퓨터에 GPUpdate 즉시 실행

PowerShell을 이용하여 도메인의 모든 컴퓨터의 정책을 새로 고침 하기 위해 invoke-gpupdate 명령을 즉시 실행하는 내용입니다.

관리자 권한으로 실행되어야 하기에 실행시 스크립트 실행권한을 체크하고 관리자 권한이 아닐경우 '현재 실행은 종료되며, 관리자 권한으로 자동 재실행됩니다.' 라는 메세지를 출력합니다.

그렇기에 파워쉘을 관리자 권한으로 실행 후 경로 찾아가서 실행하실 필요없이. 그냥 우클릭해서 'PowerShell에서 실행' 버튼 누르시면 알아서 관리자로 전환되어 집니다.

 

스크립트내의 핵심 명령어인 invoke-gpupdate 명령이 정상 동작하기 위해서 대상 컴퓨터들에 아래 두가지의 방화벽 인바운드 오픈 작업이 필요합니다.

'원격 예약된 작업 관리(RPC)'
'원격 예약된 작업관리 (RPC-EPMAP)'

 

아래는 스크립트 파일과 내용입니다.

붉은색 부분의 도메인만 적절하게 변경해서 사용하면 되겠습니다.

 

 

<#
내용 : delmaster.net 도메인의 모든 컴퓨터에 그룹정책 업데이트 명령을 즉시 실행
작성자 : 이성환
작성일 : 2016.04.15
업데이트 : 2016.04.20
  관리자권한으로 자동 실행되게 변경
#>

Function Permit-Check
 {
   Param( [Security.Principal.WindowsBuiltinRole]$Role )
   $CurrentUser = [Security.Principal.WindowsPrincipal]

([Security.Principal.WindowsIdentity]::GetCurrent())
   $CurrentUser.IsInRole($Role)
 }

$User = Permit-Check "administrator"

if($User -eq "True")
{
 Write-Host "업데이트 명령 전송 작업중..."
 Get-ADComputer -filter * -Searchbase "DC=delmaster,DC=net" | foreach {Invoke-GPUpdate -computer

$_.name -force -RandomDelayInMinutes 0}
 write-Host "모든 서버에 업데이트 명령 전송 완료" -ForegroundColor Yellow
 pause
}
else

 Write-Host "관리자 권한으로 실행되지 않았습니다." -ForegroundColor Yellow
 write-Host "현재 실행은 종료되며, 관리자 권한으로 자동 재실행 됩니다." -ForegroundColor Yellow
 sleep(1)
 Start-Process -Verb "Runas" -File PowerShell.exe -Argument "-STA -noprofile -file

$($myinvocation.mycommand.definition)"
}

  Comments
댓글 쓰기
RDCMan 2.7 VM 콘솔연결 한방에 등록하기

Remote Desktop Connection Manager 2.7의 RDCMan VM Console Connec 기능을 활용할 수 있는 스크립트 입니다.

현재 컴퓨터에 만들어진 가상머신을 별도의 작업 없이 스크립트 실행을 통해 즉시 작업 가능한 파일(Hyper-V.rdg)로 저장해 줍니다.


[참고]



스크립트 실행시 반드시 파워쉘을 관리자 권한으로 실행해야 합니다.

2016년 4월 20일 수정.

스크립트 우클릭 후 'PowerShell에서 실행'  을 누르면 관리자 권한을 체크하고 관리자 권한이 아닐시

'현재 실행은 종료되며, 관리자 권한으로 자동 재실행됩니다.' 라는 메세지가 보여지고 자동으로 관리자 권한으로 실행시켜 줍니다.

 

인터넷을 통해 다운로드 받은 파일은 윈도우 운영체제의 보안 구성에 따라 기본적으로 차단됩니다.

아래 '스크립트 차단 해제 방법'을 참고하여 스크립트 차단 해제 후 실행 하시기 바랍니다.



 

스크립트 차단 해제 방법


'Software,Tools' 카테고리의 다른 글

Office 2016 Key 수동 변경  (0) 2017.02.18
RDCMan 2.7 VM 콘솔연결 한방에 등록하기  (2) 2016.04.20
GUID Generator  (0) 2016.01.11
파일의 Hash 값 확인  (0) 2016.01.07
Hash Tab  (0) 2016.01.07
VMware Workstation 가상머신 생성  (0) 2015.10.16
  Comments
  • ThankYou
    감사합니다.. 좋은정보 잘보고 있습니다.
    제가 Win10 PC에서 Window Server 2012 R2에 연결하는것 까지는 성공을 했는데, Windows Server 2012 R2 의 VM까지도 Win10 PC의 RDCMan에 등록이 가능할까요?
    • 안녕하세요.
      http://www.delmaster.net/57 글에서 "7번" 항목 참고하셔서 추가하시면됩니다.
      "Server" 에는 2012서버의 IP를 입력하고, "VM Console Conec"에는 2012서버에서 get-vm 으로 찾은 VM ID값을 입력하시고 "Display Name"에는 VM을 식별할 적당한 이름 주면 되겠죠?
댓글 쓰기