我在创建脚本以从大约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
}
}
}
答案 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