使用Windows PowerShell查找和删除特定所有者的文件

由于勒索软件攻击(没有什么大不了,全部从备份中恢复),我想清理networking共享上的目录和子目录,攻击发生时会创build大量的压缩文件。 他们都是在受感染的PC上工作的用户所拥有的。

到目前为止,我的最佳尝试是这样的:

Get-ChildItem Z:\ -Recurse | get-acl | where {($_.Owner -eq "DOMAIN\username")} | foreach { $_.Delete()} 

但由于get-acl不支持$_.Delete()所以不起作用$_.Delete()


这个$$_不是我想的问题。 我确实有一些可能的其他命令。 他们跑。

像这样一个在这里:

 Get-ChildItem -filter "~*.*" -path Z:\ -recurse | where {($_.LastWriteTime -lt (get-date).AddDays(-7))} | foreach { $_.Delete()} 

为了删除通过备份恢复未被恶意软件破解的文件而创build的文件,我使用这种方法。 我简单地恢复了整个份额

但我会试一试。

关于您的其他提示,我必须解释,运行勒索软件的用户帐户在该networking驱动器上没有自行创build的文件。 读取权限对于该用户来说已经足够了。

不幸的是,这个分享对每个人都有改变。 这是从早期的我们都没有太多的勒索软件。 当然,主要工作完成后,我会改变这些访问权限。

所以,请我需要build议,以删除这个特殊帐户拥有的文件。

首先,你的代码有一些错别字。 where子句中的列表的单个对象由$_而不是$寻址。

而你正在考虑转angular。 你的方法有点复杂。 试试这个:)

 Get-ChildItem Z:\ -Recurse | where { $_.GetAccessControl().Owner -eq "DOMAIN\username"} | Remove-Item 

虽然个人而言,我并不认为这是最好的办法,因为业主可能并不总是你想象的那样。