McAfee 消费产品删除静默脚本

问题描述 投票:0回答:2

我制作了一个有时可以删除 McAfee 产品的脚本。问题是有时会创建 2 个 tmp 文件夹。然后,它有可能重命名并复制错误的文件夹。我正在使用Where-Object 和LastWriteTime 来重命名并复制过去10 秒内创建的tmp 文件夹。必须有更好的方法来查找随机命名的 tmp 文件夹。我该如何修复代码?谢谢你。

New-Item "C:\temp" -ItemType Directory
$url = "https://download.mcafee.com/molbin/iss-loc/SupportTools/MCPR/MCPR.exe"
$dest = "C:\temp\MCPR.exe" 
Invoke-WebRequest -Uri $url -OutFile $dest -verbose
start-process C:\temp\MCPR.exe -verb runas  -verbose
start-sleep -Seconds 3
stop-process -Name "McClnUI" -verbose
cd $Env:LocalAppData\Temp
$Now = Get-Date
Get-ChildItem $Env:LocalAppData\Temp\*.tmp | Where-Object { $_.LastWriteTime -gt $Now.AddSeconds(-10) } | Rename-Item -NewName "MCPRtemp" -verbose -ErrorAction SilentlyContinue
Copy-Item -Path "$Env:LocalAppData\Temp\MCPRtemp*" -Destination "C:\temp" -Recurse
cd C:\temp\MCPRtemp
.\Mccleanup.exe -p StopServices,MFSY,PEF,MXD,CSP,Sustainability,MOCP,MFP,APPSTATS,Auth,EMproxy,FWdiver,HW,MAS,MAT,MBK,MCPR,McProxy,McSvcHost,VUL,MHN,MNA,MOBK,MPFP,MPFPCU,MPS,SHRED,MPSCU,MQC,MQCCU,MSAD,MSHR,MSK,MSKCU,MWL,NMC,RedirSvc,VS,REMEDIATION,MSC,YAP,TRUEKEY,LAM,PCB,Symlink,SafeConnect,MGS,WMIRemover,RESIDUE -v -s
powershell automation temp mcafee where-object
2个回答
1
投票

由于您似乎知道 tmp 目录中的 exe 名称,因此您只需找到包含它的最新目录即可。您还可以在复制时重命名,进一步简化代码。

New-Item "C:\temp" -ItemType Directory
$url = "https://download.mcafee.com/molbin/iss-loc/SupportTools/MCPR/MCPR.exe"
$dest = "C:\temp\MCPR.exe" 
Invoke-WebRequest -Uri $url -OutFile $dest -verbose
start-process C:\temp\MCPR.exe -verb runas  -verbose
start-sleep -Seconds 3
stop-process -Name "McClnUI" -verbose
$tempfolder = Get-ChildItem $Env:LocalAppData\Temp\*.tmp -Recurse -Directory | 
    Where-Object {$_ | Get-Childitem -Recurse *mccleanup.exe} |
        Select-Object -First 1
Copy-Item -Path $tempfolder.fullname -Destination "C:\temp\MCPRTemp" -Recurse
cd C:\temp\MCPRtemp
.\Mccleanup.exe -p StopServices,MFSY,PEF,MXD,CSP,Sustainability,MOCP,MFP,APPSTATS,Auth,EMproxy,FWdiver,HW,MAS,MAT,MBK,MCPR,McProxy,McSvcHost,VUL,MHN,MNA,MOBK,MPFP,MPFPCU,MPS,SHRED,MPSCU,MQC,MQCCU,MSAD,MSHR,MSK,MSKCU,MWL,NMC,RedirSvc,VS,REMEDIATION,MSC,YAP,TRUEKEY,LAM,PCB,Symlink,SafeConnect,MGS,WMIRemover,RESIDUE -v -s

0
投票

有多种方法,但我认为一个简单的方法是这样的:

$tempfile = Get-ChildItem -Path $Env:LocalAppData\Temp\ -Recurse *mccleanup.exe | Sort-Object -Descending LastWriteTime | Select-Object -First 1

$tempdirectory = $tempfile.DirectoryName

基本上获取所有名为 *mccleanup.exe 的文件,并按上次写入时间对它们进行排序,然后选择具有最新文件的文件。下一行只是获取包含最新文件的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.