jqkyp 发表于 2018-9-2 09:21:51

PowerShell 删除指定的Shadow Copy

  
$delsnap=@()
  
Get-WmiObject -ComputerName sydittest -Class win32_shadowcopy |
  
select deviceobject,ID,@{n='datetime';e={::ToDateTime($_.installdate)}},@{n='dayofyear';e={::ToDateTime($_.installdate).dayofyear}} |
  
group dayofyear | Where-Object{$_.dayofyear -lt (get-date).DayOfYear} |
  
foreach {
  
if ($_.count -gt 1){
  
$max=$_.count-1
  
for($i=0;$i -lt $max;$i++ ){
  
$temp=@{id=$_.group[$i].id}
  
$delsnap+=$temp
  
}
  
}
  
}
  
$delsnap | foreach{
  
$id=$_.id.ToString()
  
Get-WmiObject -ComputerName sydittest -Class win32_shadowcopy | foreach {
  
if($_.id -eq $id){
  
$_.delete()
  
}
  
}
  
}


页: [1]
查看完整版本: PowerShell 删除指定的Shadow Copy