PowerShell 删除指定的Shadow Copy

昨天在powershell.org的论坛看见有人问如何删除ShadowCopy。这个网友的要求是,凡事老于今天的快照,如果一天有很多份备份,只保留最后的一份。

豆子写了个脚本实现这个功能。自己觉得有点啰嗦,但是因为没有找到对应的comlet删除指定ID的快照,只有通过wmi找到所有的快照过滤之后在用其对象本身的函数删除自己。

[email protected]()
Get-WmiObject -ComputerName sydittest -Class win32_shadowcopy | 
select deviceobject,ID,@{n=‘datetime‘;e={[management.managementDateTimeConverter]::ToDateTime($_.installdate)}},@{n=‘dayofyear‘;e={[management.managementDateTimeConverter]::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=[pscustomobject]@{id=$_.group[$i].id}
$delsnap+=$temp
}
}
}
$delsnap | foreach{
$id=$_.id.ToString()
Get-WmiObject -ComputerName sydittest -Class win32_shadowcopy | foreach {
if($_.id -eq $id){
$_.delete() 
}
}
}
时间: 2024-08-12 18:02:49

PowerShell 删除指定的Shadow Copy的相关文章

Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么方便,需要一个插件进行数据的导出和导入进行备份和恢复操作.这里要说的插件是elasticdump. elasticdump的安装: [[email protected] ~]# yum install elasticdump 已加载插件:fastestmirror, product-id, subs

利用任务计划自动删除指定日期的SQLServer备份文件

利用任务计划自动删除指定日期的SQLServer备份文件 命令FORFILES [/P pathname] [/M searchmask] [/S]         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}] 方法1:描述:可以删除7天以前的后缀名为log的日志文件.如今天是6.29,那么会删除6.22号以前创建的文件.不会删除到回收站.指定路径为要删除的文件夹路径,该批处理可以放在任意文件夹下.forfiles /p D:\aizzw\LOG /m

删除指定天数文件,再删除所有的空目录批处理文件

需求说明: 有一个普通电脑架设的监控服务器,需要删除指定日期的监控数据,监控数据时2层文件夹加文件 网上找到的好多批处理,不能直接用,因此学习修改如下: forfiles /p F:\ivms4200\video\RecordFile /m *.* /s /c "cmd /c del /a /q /f @path" /d -60 dir /ad/b/s F:\ivms4200\video\RecordFile\|sort /r >F:\kill.txt For /f "

php 删除指定文件夹

php 删除指定文件夹 1.前言 目标:php删除一个指定目录 所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数) 2.相关函数介绍 php文件操作的方法大致相同,已经在上一篇介绍过了,这里就不在重复介绍,这里就介绍一个新函数 rmdir 详情参考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp 其他函

Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份 2.上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份. 3.FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目

php删除指定目录所有文件

1 <?php 2 /** 3 * 删除指定文件目录下的所有文件 4 * @param str $dir 指定文件路径: 如:K:/wamp/www/test 5 * return boole 6 *--------------------使用方法------------------------------- 7 * $dir = str_replace('\\', '/', $_SERVER['CONTEXT_DOCUMENT_ROOT']); 8 * delfile($dir); 9 *--

Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongodb数据库存放目录:/home/data/mongodb/mongodb_data Mongodb日志存放目录:/home/data/mongodb/mongodb_log 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令

【Linux】linux中删除指定文件外所有其他文件(夹)的问题

今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep2) #删除keep1和keep2文件之外的所有文件 在Ubuntu14.04下有个大坑,keep1和keep2与“|"之间千万不能留空格,就是!(keep1 | keep2).这样的话会删除当前文件夹内的所有文件. 应该这样写(keep1|keep2). 具体原因未知,等慢慢寻找.以后再来补充.

MFC - 删除指定文件夹

1 // 删除指定的文件夹 2 void DeleteDirectory(CString strDir) 3 { 4 if (strDir.IsEmpty()) 5 { 6 RemoveDirectory(strDir); 7 return; 8 } 9 10 //首先删除文件及子文件夹 11 CFileFind ff; 12 BOOL bFound = ff.FindFile(strDir + _T("\\*"), 0); 13 while (bFound) 14 { 15 bFou