달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
#####################################
 $ClusterName = "<Hyper-V 클러스터 이름>"
 $DPMServerName = "<DPM 서버 이름>"

 $PGPrefix = "<보호 그룹 접두어>"
 $VMPrefix = "<VM 이름 접두어>"
#####################################

If ($DPMServerName -notlike "*.$env:userdnsdomain")
{
  $DPMFQDN = $DPMServerName+".$env:userdnsdomain"
}
Else
{
  $DPMFQDN = $DPMServerName
}

Connect-DPMServer $DPMFQDN

$Cluster = Get-DPMProductionCluster $DPMFQDN | Where {$_.ClusterName -like "$ClusterName.*"}
$NotProtectedVM = Get-DPMProductionVirtualName $Cluster | Where {$_.MachineName -like "SCVMM*$VMPrefix*" -and $_.ServerProtectionState -ne "HasDatasourcesProtected"}

# 초기 복제 시간 설정 (밤 12시)
$tmpDate = Get-Date
$tmpDate = [String]$tmpDate.Year+"-"+[String]$tmpDate.Month+"-"+[String]$tmpDate.Day
$tmpDate = [DateTime]$tmpDate
$ReplicaCreationTime = [DateTime]$tmpDate.AddDays(1)

# 백업되고 있지 않은 VM을 보호 그룹에 추가
# 보호 그룹은 구성원 수가 가장 적은 그룹 선택
foreach ($Item in $NotProtectedVM)
{
  $TargetDS = $Item | Get-DPMDatasource -Inquire | Where {$_.ObjectType -like "*Hyper-V*"}
  If (! $TargetDS) {continue}
  Else
  {
    $TargetPG = Get-DPMProtectionGroup $DPMFQDN | Where {$_.Name -like "$PGPrefix*"} | Sort-Object -Property NumberOfShortTermDatasources,TotalDiskReplicaSize | Select-Object -First 1
    $MPG = Get-DPMModifiableProtectionGroup $TargetPG
    $NPG = Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $TargetDS
    $DiskAlloc = Get-DatasourceDiskAllocation -Datasource $TargetDS
    Set-DatasourceDiskAllocation -Datasource $TargetDS -ProtectionGroup $MPG
    Set-DPMReplicaCreationMethod -ProtectionGroup $MPG -Later $ReplicaCreationTime
    Set-DPMProtectionGroup $MPG
  }
}


 
:
Posted by 커널64