Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Mazanie zložky LCU W10/11

Dobrý deň.

MS po záplatách vytvára v Windows zložke C:\Windows\servicing\LCU\*.* zálohy rollup balíkov. Od istej doby (2019) začal pomenovávať podriadené zložky s rollup dlhými názvami.

V čom je problém?

Mám vytvorený skript pre *.bat, komplet dávku mazania obsahu zložiek tmp, koša, System Volume Information a spol., ktorý je zároveň o.i., manuálneho spustenia, aj v Plánovači úloh, spustený automaticky, na pozadí, po reštartoch PC (nircmd.exe, s argumentom exec hide "C:\xxxxx" ), aby mazal predmetný obsah zložky LCU po reštartoch.

takeown /f "C:\Windows\servicing\LCU" /a /r /d y
icacls "C:\Windows\servicing\LCU" /grant:r administrators:F /t /l
icacls "C:\Windows\servicing\LCU" /T /C /E /P Administrators:F
icacls 'C:\Windows\servicing\LCU' /t /c /grant administrators:F System:F everyone:F
rmdir "C:\Windows\servicing\LCU" /s /q

V čom je problém?

Uvedené príkazy z dielne priamo MS nedokonale, iba z časti alebo vôbec nedokážu zmazať obsah zložky kvôli pitomému dlhému názvu Rollup balíkov situované v predmetnej zložke LCU. V permissions ani elevate (povýšeniu prístupových práv) nebude pes zakopaný.

Kto dokáže vytvoriť skript, aby zmazal na "jednu šupu" obsah zložky LCU?

Pozn.: Unlocker 1.9.2 v kontextovom menu zložku maže v pohode, nemá problém.

Doplním Registre:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager

Value:
PendingFileRenameOperations

hodnota poslednej záplaty:
\??\C:\Windows\servicing\LCU\Package_for_RollupFix~31bf3856ad364e35~amd64~~19041.1320.1.18

S pozdravom, Karel, v.r.

Předmět Autor Datum
Ručným spustením baťáku to zmazať ide?
pozorovateľ 01.11.2021 14:46
pozorovateľ
V tom je problém, úspešne predmetný príkaz maže (snaží sa makať na pozadí) na záver skončí *bat, (po…
Nuda 01.11.2021 14:56
Nuda
A dát tam nějakou smyčku if exist C:\windows\servicing\lcu\*.* tak to zopakuj..? Ono je možné, že za…
Abox 01.11.2021 15:00
Abox
Zrejeme múúdra rada, zatiaľ neotestovaná. Až pri novej záplate nejakého W10/11. Pozn: Nemám moment…
Nuda 01.11.2021 15:10
Nuda
No skúsil by som to zmazať ešte powershellom, občas tie staré cmd príkazy vedia na niečo neprekonate…
pozorovateľ 01.11.2021 15:04
pozorovateľ
Po reštarte PC sa v prípade ukončených WU nejedná o dodatočné používanie tohto rollup záložného balí…
Nuda 01.11.2021 15:15
Nuda
Pre tú srandu som to otestoval, a podarilo sa mi to zmazať aj starým rmdir-om, bez akýchkoľvek úprav…
pozorovateľ 01.11.2021 15:22
pozorovateľ
Všetko je u teba O.K., lenže mne sa jedná o všeobecné mazanie zložky LCU skriptom *.bat, nielen indi…
Nuda 01.11.2021 17:44
Nuda
Ešte je tam jeden detail.. ty mažeš celé LCU (a ono má na sebe iné oprávnenia ako jeho obsah). LCU b… poslední
pozorovateľ 01.11.2021 20:03
pozorovateľ

V tom je problém, úspešne predmetný príkaz maže (snaží sa makať na pozadí) na záver skončí *bat, (po manuálnom spustení dávky), ale beztak nezmaže "miriady" súborov načisto, zostane po čistení nejaké torzo.

Je nutné zopakovať dávku. Tiež po reštarte PC.

Zrejeme múúdra rada, zatiaľ neotestovaná.

Až pri novej záplate nejakého W10/11.

Pozn:
Nemám momentálne čas na retro návrat z predošlej Image bitovej zálohy v prípade WU k tomuto príkazu, doplnený o príkaz "if exist" v *.bat.

Skúsim. Dik.

No skúsil by som to zmazať ešte powershellom, občas tie staré cmd príkazy vedia na niečo neprekonateľné naraziť.

Remove-Item -Recurse -Force some_dir

Ak nepôjde ani to, tak aspoň ti presnejšie napíše dôvod. A dôvod by napríklad mohol byť ešte ten, že sa nejaký ten súbor práve používa. Hoci asi aby na to nemal byť dôvod.

Po reštarte PC sa v prípade ukončených WU nejedná o dodatočné používanie tohto rollup záložného balíka.

Mal by sa dať bežne rollup odstrániť.

Ide o sakra dlhý názov priečinka s ktorým si nedokážu poradiť samotné nástroje z dielne MS. Úmysel je zjavný.

Pre tú srandu som to otestoval, a podarilo sa mi to zmazať aj starým rmdir-om, bez akýchkoľvek úprav práv a vlastníctva. Len to treba spustiť ako admin.
Mal som tam dva adresáre, a jeden som bez problémov zmazal:

C:\Windows\servicing\LCU>dir
 Volume in drive C is Windows
 Volume Serial Number is D4B9-9F1A

 Directory of C:\Windows\servicing\LCU

17.10.2021  13:47    <DIR>          .
17.10.2021  13:47    <DIR>          ..
01.11.2021  15:18    <DIR>          Package_for_RollupFix~31bf3856ad364e35~amd64~~19041.1237.1.10
13.10.2021  03:46    <DIR>          Package_for_RollupFix~31bf3856ad364e35~amd64~~19041.1288.1.7
               0 File(s)              0 bytes
               4 Dir(s)  212 505 792 512 bytes free

c:\Windows\servicing\LCU>rmdir /s /q "Package_for_RollupFix~31bf3856ad364e35~amd64~~19041.1237.1.10"

c:\Windows\servicing\LCU>

Všetko je u teba O.K., lenže mne sa jedná o všeobecné mazanie zložky LCU skriptom *.bat, nielen individuálne, segregovane "users" ID HW OS W10/11, ale aj u rôznych edícii a verzií. Tu vznikol problém.

Skús skript aplikovať na rozdielnom HW a OS W10/11, tobôž v Plánovači úloh - Po spustení.

Ešte je tam jeden detail.. ty mažeš celé LCU (a ono má na sebe iné oprávnenia ako jeho obsah). LCU by som sa nechytal.
Ideálne riešenie pre teba je do baťáku pridať iba takýto jednoduchý cyklus na jeden riadok (bez zmien vlastníctva atď).

for /d %%d in (c:\Windows\servicing\LCU\Package*) do rmdir /s /q %%d

prípadne v powershelli

Remove-Item -Force -Recurse -Path "c:\Windows\servicing\LCU\Package*"

V prípade plánovača je potrebné iba nastaviť spustenie ako SYSTEM. Treba tam vybrať lokálny účet SYSTEM, v právach už potom problém nebude.

Zpět do poradny Odpovědět na původní otázku Nahoru