Šiuo metu atidaromų ar sistemoje „Windows“ naudojamų failų negalima perkelti ar ištrinti, kol jie nebus uždaryti. Didžiąją laiko dalį uždarydami susijusią programą, atliksite užduotį, tačiau kartais ji vis tiek neveiks, nes ji priskirta prie atminties arba apsaugota kitu procesu. Norėdami išspręsti šią problemą, dauguma iš mūsų paprasčiausiai pasikliauja trečiosios šalies programine įranga, tokia kaip FileASSASSIN, LockHunter, IObit Unlocker, BlitzBlank ir kt., Kuri geba aptikti užrakintus failus ir bando juos atrakinti tolimesniems veiksmams atlikti. Užrakintų failų atrakinimas turi savo riziką, kuri gali sukelti operacinės sistemos gedimus.
Saugesnis sprendimas yra pažymėti, kad failas bus ištrintas kitame paleidime, o „Microsoft Windows“ operacinė sistema palengvino kūrėjų darbą, nes kartu su „MoveFileEx“ API reikia ištrinti ar pervardyti / perkelti failus kitą kartą paleidus sistemą. Ši užduotis vykdoma perskaičius registro įrašą pavadinimu „ PendingFileRenameOperations“, esantį HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager. Atminkite, kad „PendingFileRenameOperations“ registro rakto nebus, nebent bus vykdoma operacija.
Jei jums nepatinka klaidinti su „Windows“ registru, čia turime keletą nemokamų įrankių, kurie gali padėti perskaityti „PendingFileRenameOperations“ raktus ir pateikti laukiančių failų operacijų sąrašą. Kai kurie iš jų gali leisti suplanuoti perkėlimo ir ištrinimo komandas kitam paleidimui. 1. „ PendMoves“ ir „MoveFile“
„PendMoves“ yra paprasta „Windows Sysinternals“ komandų eilutės programa, kur ji gali nuskaityti „PendingFileRenameOperations“ raktus ir pateikti failų, kurie bus ištrinti arba perkelti į naują tikslinę vietą, sąrašą. Tuščias taikinys bus rodomas kaip DELETE arba kitaip tai bus naujoji vieta, į kurią šaltinio failas bus perkeltas.
Kadangi „PendMoves“ yra komandų eilutės programa, ji turi būti paleista iš komandos eilutės, kad būtų galima pamatyti rezultatus. Priešingu atveju gausite tik mirksintį juodą langą, kuris atsidarys ir užsidarys pats. Paspauskite WIN + R, įveskite lauką Vykdyti cmd ir spustelėkite Gerai. Pakeiskite katalogą, kuriame yra pendmoves.exe, ir įveskite failo vardą, kad paleistumėte programą.
Atskira programa, vadinama „MoveFile“, sujungta su „PendMoves“ archyve, skirta įrašo įtraukimui į „PendingFileRenameOperations“, kad suplanuotų failą ištrinti arba perkelti į kitą „Windows“ įkrovą. Tiesiog nurodykite šaltinį ir tikslą, jei norite perkelti failą, arba palikdami paskirties vietą tuščią su dviem dvigubomis kabutėmis, šaltinis bus ištrintas.
Žemiau pateiktas komandos pavyzdys test.zip perkels iš C: \ į „Raymond“ vartotojo abonemento darbalaukį.
C: \ movefile.exe c: \ test.zip c: \ raymond \ user \ desktop \ test.zip
Žemiau esanti komanda planuoja ištrinti test.zip failą kitame „Windows“ įkrovime.
C: \ movefile.exe c: \ test.zip ““
Atsisiųskite „PendMoves“ ir „MoveFile“
2. „ WhyReboot“
Jei jums labiau patinka patogus įrankis, turintis grafinę vartotojo sąsają, „WhyReboot“ būtų jūsų pasirinkimas. „WhyReboot“ yra mažas ir nešiojamas įrankis, pateikiantis laukiančių failų operacijų sąrašą ir papildomai „RunOnce“ registro raktą. „RunOnce“ registro raktas yra instrukcija, skirta „Windows“ automatiškai paleisti nurodytą programą tik vieną kartą paleidžiant, o raktas bus pašalintas, kai ji apdoros prašymą.
Nors „WhyReboot“ yra sukurtas tam, kad būtų galima nustatyti, ar turėtumėte iš naujo paleisti kompiuterį, kai būsite paraginti įdiegę programą ar naujinimą, kol kas to padaryti negalite. „WhyReboot“ negali pasakyti, ar pakeista svarbi pagrindinė tvarkyklė ar DLL failas, ir ją reikia paleisti iš naujo, o tai gana dažnai pastebima saugumo pagrįsta programinėje įrangoje, pavyzdžiui, antivirusinėje programoje.
Atsisiųskite „WhyReboot“
3. WMI VBScript
Administratoriams ar programuotojams, kurie renkasi scenarijų lankstumą įgyvendindami automatizavimą, radome patogų WMI VBScript, kurį parašė Tomas Millsas, „Microsoft Services“ sprendimų architektas. Iš esmės tai, ką daro VBS failas, yra nuskaityta ir išanalizuota „PendingFileRenameOperations“, rodantį rezultatą iššokančiame lange.
VBS kodą galite gauti iš oficialios Tomo Millso MSDN tinklaraščio svetainės arba galite atsisiųsti scenarijų žemiau.
Atsisiųskite „CheckPendingFileRenameOperations.vbs“
4. „ MoveEx“
Yra dvi „MoveEx“ versijos, vieną sukūrė Aleksandras Frinkas, kurią galima rasti „Softpedia“, kitą - Frankas Westlake'as iš ss64.net, o mes - pastarąją. Priežastis, kodėl mes pirmenybę teikiame Frenkui „MoveEx“, o ne Aleksandrui, yra galimybė ištrinti atskirą „PendingFileRenameOperations“ įrašą, o ne tik analizuoti ir rodyti operaciją.
Norėdami peržiūrėti „PendingFileRenameOperations“ įrašus, tiesiog paleiskite programą komandinėje eilutėje. Norėdami ištrinti atskirą „PendingFileRenameOperations“ įrašą, turėsite pridėti / d kartu su įrašo numeriu, kuris rodomas vykdant „MoveEx“ be komandinės eilutės argumento. Kaip matote iš aukščiau esančio ekrano kopijos, pirmoje komandoje pateikiami visi „PendingFileRenameOperations“ įrašai, o antrojoje komandoje, turinčioje „/ d 003“, trečiasis įrašas ištrinamas.
Įrašo „PendingFileRenameOperations“ įtraukimas naudojant „MoveEx“ yra tas pats kaip „MoveFile“ iš „Sysinternals“, kuris nurodo šaltinį, po kurio nurodomas tikslas. Palikus taikinį tuščią, „Windows“ suplanuos ištrinti šaltinio failą.
Atsisiųskite „MoveEx“
5. Neautomatiškai pridėkite arba ištrinkite „PendingFileRenameOperations“ įrašą
Neįmanoma rankiniu būdu ištrinti „PendingFileRenameOperations“ raktą iš sistemos registro, tačiau pridėti įrašą yra sudėtinga, nes tai yra REG_MULTI_SZ reikšmė, o ne normali eilutė ar DWORD. Norėdami ištrinti, tiesiog eikite į HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager registre ir ištrinkite „PendingFileRenameOperations“ raktą.
Norėdami pridėti ištrynimo įrašą, eikite į HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ dešiniuoju pelės mygtuku spustelėkite dešiniajame skydelyje, eikite į Naujas, pasirinkite „ Multi-String Value“ ir pavadinkite jį kaip PendingFileRenameOperations . Dukart spustelėkite naujai sukurtą registro vertę ir įveskite visą failo vietą, pradedant nuo \ ?? \ (pavyzdžiui, \ ?? \ C: \ raymondcc.exe ), kurią norite suplanuoti ištrinti. Baigę spustelėkite Gerai. Dabar dešiniuoju pelės mygtuku spustelėkite „PendingFileRenameOperations“ ir pasirinkite Modifikuoti dvejetainius duomenis . Vertės duomenyse turėtumėte pamatyti daugybę skaičių. Įveskite keturis nulius „00 00“ be kabučių šešiabriaunės eilutės pabaigoje ir spustelėkite Gerai. Iš naujo paleiskite kompiuterį ir failas bus ištrintas.
Kaip keista, failo perkėlimo operacijos planavimas „Windows“ įkrovos metu naudojant „PendingFileRenameOperations“ yra daug lengvesnis, palyginti su ištrynimu, nes tai nereiškia dvejetainių duomenų pakeitimo registre. Vykdykite aukščiau nurodytus veiksmus, kol pasiekėte dalį, kad pridėtumėte vertės duomenis laukelyje Redaguoti daugialypę eilutę. Turite nurodyti du kelius, kurie yra šaltinis ir taikinys. Žemiau pateiktame pavyzdyje failas raymondcc.exe bus perkeltas iš C: \ source į c: \ target.
\ ?? \ C: \ šaltinis \ raymondcc.exe
\ ?? \ C: \ target \ raymondcc.exe