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.
Ručným spustením baťáku to zmazať ide?
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.
A dát tam nějakou smyčku if exist C:\windows\servicing\lcu\*.* tak to zopakuj..?
Ono je možné, že zatímco ještě nastavuje ty práva tak už vykonává to mazání a někde ty práva ještě nejsou nastaveny..?
Jenom tipuji...
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ť.
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:
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ď).
prípadne v powershelli
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.