我们的一个网站最近遭到 CryptoLocker 感染。幸运的是,我们很早就发现了它,在文件系统上的 200k 左右的文件中,只有大约 8k 个文件被加密。我们的备份也很好,所以我可以恢复文件
我有一个大致如下格式的所有约 8k 加密文件的列表,每个新行一个文件:
\\nas001\DATA\IQC\file.xls
\\nas001\DATA\IQC\file2.xls
\\nas001\DATA\IQC\folder1\file1.xls
\\nas001\DATA\IQC\folder3\file1.xls
我做了一个好的数据快照的 ndmp 副本,所以我正在恢复的备份是 nas 上的另一个卷,在某个点之后具有相同的文件夹结构:
\\nas001\IQC_restore\file.xls
\\nas001\IQC_restore\file2.xls
\\nas001\IQC_restore\folder1\file1.xls
\\nas001\IQC_restore\folder3\file1.xls
powershell(或者实际上,使用批处理脚本或robocopy)是否有一种简单的方法来解析带有加密文件列表的文件,并仅将这些文件从我们的备份复制到原始位置,覆盖加密文件?在另一个解决方案中,我找到了以下脚本:
$a = Get-Content "C:\script\hname.txt"
foreach ($i in $a)
{$files= get-content "C:\script\src.txt"
foreach ($file in $files)
{Copy-Item $file -Destination \\$i\C$\temp -force}
}
这几乎是我所需要的——该foreach $i in $a
语句是多余的,因为我只有一个 $i,它会将列出的所有文件复制到一个文件夹中,而不是以保留文件夹结构的方式复制它们。
最好的方法是什么?我可以将两个单独的文件传递给它并告诉它将两行链接起来,因此对于文件a中的每一行,它会将文件复制到文件b中的路径吗?传递一组文件(文件a)、执行字符串替换并复制到该位置是否更容易?
谢谢!