从PC列表中为所有用户删除appdata中文件/文件夹的脚本

时间:2018-08-17 02:14:56

标签: powershell

我在创建脚本以从大约75台PC的PC列表中为PC上的每个用户删除位于“ appdata \ roaming \ templates”中的特定文件时遇到一些困难。研究表明,我应该为此创建一个powershell脚本,但是我对Powershell还是相当陌生。有人可以协助吗?

这是我到目前为止的内容。如果仅运行主体,则它可用于本地PC。

foreach ($line in Get-Content .\file.txt) {
    if ($line -match $regex) {
        $users = Get-ChildItem -Path "C:\Users"
        $users | ForEach-Object {
            Remove-Item -Path "C:\Users\$($_.Name)\AppData\Local\File.exe" -Force
        }
    }
}

2 个答案:

答案 0 :(得分:1)

Remove-Item可以使用通配符,因此您可以从所有给定的文件夹中删除有问题的文件,如下所示:

Remove-Item -Path 'C:\Users\*\AppData\Local\File.exe' -Force

要在远程主机列表上运行此命令,请从文件中读取远程主机列表(该文件每行应包含一个IP地址或FQDN):

$servers = Get-Content 'serverlist.txt'

然后通过Remove-Item在远程主机上运行Invoke-Command

Invoke-Command -Computer $servers -ScriptBlock {
    Remove-Item -Path 'C:\Users\*\AppData\Local\File.exe' -Force
}

答案 1 :(得分:0)

尝试类似这样的东西:

Get-ChildItem "C:\Users" -directory | Remove-Item -Path {("{0}\AppData\Local\File.exe" -f $_.fullname)} -force -ErrorAction SilentlyContinue