Скрипт Powershell для удаления временных интернет-файлов - PullRequest
2 голосов
/ 10 июня 2011

Я пытаюсь удалить файлы с расширением ".htm" в папке временных файлов Интернета (TIF) с помощью powershell.Но не могу далеко уйти от этого.

Ниже приведен скрипт, который у меня есть.Я заметил, что имя кэша в папке TIF отличается от полного имени дисплея.(Я пытался написать программу на C # для этого, но это тоже не работает)

get-childitem "c:\Documents and Settings\sanjeev-nithyanandam\Local Settings\Temporary Internet Files\*" -include *.htm -recurse -force | foreach ($_) {remove-item $_.fullname -force}

Из этого поста я узнал Папка "Temporary Internet Files" в Windows , что TIFпапка ведет себя иначе, чем другие папки.

Есть ли способ изменить сценарий PS и удалить файлы?

Любая помощь приветствуется.

Спасибо!Санджив

Ответы [ 5 ]

2 голосов
/ 10 июня 2011

Я бы не стал беспокоиться о FullName:

get-childitem "c:\Documents and Settings\sanjeev-nithyanandam\Local Settings\Temporary Internet Files*" -include *.htm -recurse -force | remove-item -force -recurse
0 голосов
/ 25 августа 2014
$version = gwmi win32_operatingsystem | select version
$version = $version.version.substring(0,4)
$ErrorActionPreference = "Continue"
$process = Get-Process iexplore -ErrorAction silentlycontinue

if ($process) {
    "exists"
    Stop-Process $process -whatif

     }
else {
    "does not exist"

}

if ($version -ge "6.0."){
    [STRING]$ds = "C:\Users\"
}else{
    [STRING]$ds = "C:\Documents and Settings\"
}

sl $ds

foreach ($directory in get-childitem $ds -Force | where {$_.PsIsContainer}){
$dir =  $ds + $directory + "\Local Settings\Temporary Internet Files\Content.IE5"
get-childitem $dir -Force | where {$_.PsIsContainer} | Remove-Item -include *.htm -Force -Recurse
}


$WinTempInet = $env:windir + '\temp\Temporary Internet Files\Content.IE5'
if ($WinTempInet){
    sl $WinTempInet
    foreach ($WinTempInetDir in get-childitem $WinTempInet -Force | where {$_.PsIsContainer}){
    get-childitem $WinTempInetDir -Force | where {$_.PsIsContainer} | Remove-Item 
    -include *.htm -Force -Recurse`
0 голосов
/ 21 октября 2011

"ClearMyTracksByProcess"

Да, хорошо, если он сделал то, что сказал на коробке, но если вы посмотрите на супер скрытые папки, которые MS имеет повсюду, и файлы Index.dat, то вы бы это зналине выполняет все имена sugests.

, показанный ниже, представляет собой код для удаления большинства файлов шпионских программ, включая FireFox и Flash-файлы cookie / общие объекты, и не забудьте убить процесс 'IExplore' перед попыткой, и вам также нужно будет изменить каталогАтрибуты.

Нажмите мое имя, если вы хотите узнать больше.

using System;
using System.Collections.Generic;
using System.IO;
using System.Diagnostics; 
using System.Text;

namespace Fidling
{
    public static class SpywareRemoval
    {
        private static void RemoveSpywareFiles(string RootPath, string Path,bool Recursive)
        {
            string FullPath = RootPath + Path + "\\";
            if (Directory.Exists(FullPath))
            {
                DirectoryInfo DInfo = new DirectoryInfo(FullPath);
                FileAttributes Attr = DInfo.Attributes;
                DInfo.Attributes = FileAttributes.Normal;
                foreach (string FileName in Directory.GetFiles(FullPath))
                {
                    RemoveSpywareFile(FileName);
                }
                if (Recursive)
                {
                    foreach (string DirName in Directory.GetDirectories(FullPath))
                    {
                        RemoveSpywareFiles("", DirName, true);
                        try { Directory.Delete(DirName); }catch { }
                    }
                }
                DInfo.Attributes = Attr;
            }
        }

        private static void RemoveSpywareFile(string FileName)
        {
            if (File.Exists(FileName))
            {
                try { File.Delete(FileName); }catch { }//Locked by something and you can forget trying to delete index.dat files this way
            }
        }

        private static void DeleteFireFoxFiles(string FireFoxPath)
        {
            RemoveSpywareFile(FireFoxPath + "cookies.sqlite");
            RemoveSpywareFile(FireFoxPath + "content-prefs.sqlite");
            RemoveSpywareFile(FireFoxPath + "downloads.sqlite");
            RemoveSpywareFile(FireFoxPath + "formhistory.sqlite");
            RemoveSpywareFile(FireFoxPath + "search.sqlite");
            RemoveSpywareFile(FireFoxPath + "signons.sqlite");
            RemoveSpywareFile(FireFoxPath + "search.json");
            RemoveSpywareFile(FireFoxPath + "permissions.sqlite");
        }

        public static void RunCleanup()
        {
            try { KillProcess("iexplore"); }
            catch { }//Need to stop incase they have locked the files we want to delete
            try { KillProcess("FireFox"); }
            catch { }//Need to stop incase they have locked the files we want to delete
            string RootPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal).ToLower().Replace("documents", "");
            RemoveSpywareFiles(RootPath, @"AppData\Roaming\Macromedia\Flash Player\#SharedObjects",false);
            RemoveSpywareFiles(RootPath, @"AppData\Roaming\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys\#local", false);
            RemoveSpywareFiles(RootPath, @"AppData\Local\Temporary Internet Files", false);//Not working
            RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.Cookies), true);
            RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.InternetCache), true);
            RemoveSpywareFiles("", Environment.GetFolderPath(Environment.SpecialFolder.History), true);
            RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\Windows\Wer", true);  
            RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\Windows\Caches", false);          
            RemoveSpywareFiles(RootPath, @"AppData\Local\Microsoft\WebsiteCache", false);
            RemoveSpywareFiles(RootPath, @"AppData\Local\Temp", false);
            RemoveSpywareFiles(RootPath, @"AppData\LocalLow\Microsoft\CryptnetUrlCache", false);
            RemoveSpywareFiles(RootPath, @"AppData\LocalLow\Apple Computer\QuickTime\downloads", false);
            RemoveSpywareFiles(RootPath, @"AppData\Local\Mozilla\Firefox\Profiles", false);
            RemoveSpywareFiles(RootPath, @"AppData\Roaming\Microsoft\Office\Recent", false);
            RemoveSpywareFiles(RootPath, @"AppData\Roaming\Adobe\Flash Player\AssetCache", false);
            if (Directory.Exists(RootPath + @"\AppData\Roaming\Mozilla\Firefox\Profiles"))
            {
                string FireFoxPath = RootPath + @"AppData\Roaming\Mozilla\Firefox\Profiles\";
                DeleteFireFoxFiles(FireFoxPath);
                foreach (string SubPath in Directory.GetDirectories(FireFoxPath))
                {
                    DeleteFireFoxFiles(SubPath + "\\");
                }
            }
        }

        private static void KillProcess(string ProcessName)
        {//We ned to kill Internet explorer and Firefox to stop them locking files
            ProcessName = ProcessName.ToLower();
            foreach (Process P in Process.GetProcesses())
            {
                if (P.ProcessName.ToLower().StartsWith(ProcessName))
                    P.Kill();
            }
        }
    }
}

У меня ушло 2 дня на удаление файлов index.dat в Windows 7, потому что MS постоянно меняет правила, так что работали надВерсия XXX для Win732 не будет работать с другими версиями, которые имеют обновленные пакеты обновления, и в итоге вам нужно удалить файлы, используя другую учетную запись Windows с правами администратора, сценарии при запуске не имеют прав администратора по умолчанию.

0 голосов
/ 11 июня 2011

Вам, вероятно, лучше получить окна, чтобы сделать это для вас. Эта команда должна сделать трюк:

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Взято из , как получить .

0 голосов
/ 10 июня 2011
$a = Get-ChildItem C:\Scripts
foreach($x in $a)
{        
    $x.Delete()
}        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...