Ha futtatja a Windows 7 rendszert, akkor észrevette, hogy az asztali parancsikonok minden látható ok nélkül eltűnnek. Kiderült, hogy a rendszer karbantartása felelős érte. Heti karbantartási szolgáltatásként fut, amely kétféle módon befolyásolja az asztali parancsikonokat.
Először eltávolítja azokat az asztali parancsikonokat, amelyeket legalább három hónapig nem használtak. A Rendszerkarbantartás eltávolítja a törött parancsikonokat az asztalon, ha ezek közül négynél több van. Az utóbbi problémája az, hogy a Windows 7 megszakadtként ismeri fel a leválasztott hálózati helyekre mutató hivatkozásokat, valamint a parancsfájlokat, amelyek hivatkoznak a shell mappákra.
A Microsoft két megoldást kínál a problémára. Az első tanács az, hogy a megszakadt hivatkozások számát négy alatt tartsák. Ez nem mindig lehetséges a törött parancsikonokkal fentebb említett problémák miatt.
A Microsoft második javaslata a számítógép karbantartásának kikapcsolása:
- Kattintson a Start gombra, majd a Vezérlőpult elemre.
- A Rendszer és biztonság alatt kattintson a Problémamegkeresés és javítás elemre.
- A bal oldali navigációs panelen kattintson a Beállítások módosítása elemre.
- Kapcsolja ki a Computer Maintenance karbantartást.
Ez azonban kikapcsolja az összes többi, a számítógép karbantartásával kapcsolatos feladatot, például a rendszeridő, a lemezmennyiségi hibák vagy a lemezterület-hibajelentések ellenőrzését.
Az összes karbantartási feladatot a c: \ windows \ Diagnostics \ ütemezett \ karbantartás \ helyen található szkriptek hajtják végre. Lehetőség van a szkriptek közvetlen szerkesztésére abban a könyvtárban. Az engedélyek megtiltják, hogy a fájlokat az aktuális felhasználó szerkessze.
A Windows 7 asztali parancsikonjainak elhárítása
Megjegyzés: Ez egy hack, amely kihatással lehet az operációs rendszer más részeire. Ezután a tesztrendszeren minden jól működött, de a fájlok szerkesztése előtt feltétlenül készítsen biztonsági másolatot a fájlokról
Először át kell vennünk a fájlok irányítását, hogy szerkeszthessük azokat. Ehhez először át kell vennie a tulajdonjogot, majd módosítania kell az aktuális felhasználó hozzáférési jogait, hogy a fájlok módosíthatók legyenek.
Az első rész automatizálható. Csak töltse le a szkriptet a fórumon, és hajtsa végre. Ennek hozzá kell adnia egy tulajdonjogosítást a jobb egérgombbal rendelkező menübe a Windows Intézőben.
A szkript telepítése után ugorjon a C: \ Windows \ diagnosztika \ ütemezett \ Karbantartás elemre a Windows Intézőben, és kattintson a jobb gombbal a TS_BrokenShortcuts.ps1 fájlra. Válassza a Tulajdonságok átvétele lehetőséget, amelynek a tulajdonjogot át kell adnia a bejelentkezett felhasználónak.
A felhasználónak még mindig nincs engedélye a fájl mentésére, ami azt jelenti, hogy a törött parancsikonok Powerscript fájljának szerkesztése előtt a következő lépést is meg kell tennünk, hogy az automatikusan nem törölje a törött hivatkozásokat.
Nyisson meg egy emelt parancssort. Ehhez kattintson a Start gömbre, Minden program, majd a Kellékek elemre. Kattintson a jobb gombbal a Parancssor linkre, és válassza a Futtatás rendszergazdaként parancsot.
Most adja ki a következő parancsot, hogy az aktív felhasználó számára teljes jogokat biztosítson a fájlhoz. Feltétlenül cserélje ki a (z) USERNAME felhasználót az aktív felhasználó nevére.
icacls c:\windows\diagnostics\scheduled\maintenance\TS_BrokenShortcuts.ps1 /grant USERNAME:F
Most már szerkesztheti a fájlt általában egy szövegszerkesztőben, például a Jegyzettömbben. Nyissa meg és keresse meg a sort (11. sor)
[string]$list = ""
Töröljön mindent alatta, ami a sor alatt van (22. sor)
return $list
A törölt sorok a következők:
Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _. FullName
$ wmiLinkFile = Get-WmiObject -query "SELECT név, cél, AccessMask a Win32_ShortcutFile-tól WHERE név = '$ fullPath'"
if (-nem (Test-ValidLink $ wmiLinkFile) -and (Test-Delete $ wmiLinkFile))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}
Ez alapvetõen egy üres listát ad vissza a szkripthez, így a hivatkozások nem törlõdnek. Kipróbáltam öt törött parancsikonnal, és a rendszerkarbantartás futtatása után nem törölték őket.
Ez javította a megszakadt hivatkozásokat, de továbbra is fennáll annak a kérdése, hogy a Windows 7 egy ideje nem használt hivatkozásokat is töröl.
(Szinte) ugyanazt a műveletet kell elvégeznünk itt. Keresse meg a TS_UnusedDesktopIcons.ps1 fájlt ugyanabban a könyvtárban. Vegye át a tulajdont, és adja meg az aktív felhasználói hozzáférési jogokat.
Szerkessze a fájlt utána és keresse meg a sort (24)
[string]$list = ""
Mindent törölhet sorig (35)
return $list
így a következő sorok törlődnek
Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _. FullName
$ wmiLinkFile = Get-WmiObject -query "SELECT név, cél, AccessMask a Win32_ShortcutFile-tól WHERE név = '$ fullPath'"
$ lastAccessTime = Get-LastAccessTime $ _. Teljes név
if ((Test-ValidLink $ wmiLinkFile) -and (Test-Delete $ wmiLinkFile) -and (Test-FileShortcut $ wmiLinkFile) -and (Test-Unused $ lastAccessTime $ küszöbérték))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}
Felhívjuk figyelmét, hogy nem teszteltem a második forgatókönyvet, de ugyanolyan jól kell működnie.
Ennek meg kell oldania az összes problémát, amelyet a felhasználók eltávolítottak a Windows 7 asztalon lévő parancsikonokkal kapcsolatban.
A szerkesztés előtt feltétlenül készítsen biztonsági másolatot a fájlokról. Kérjük, tudassa velem, ha ez az Ön számára működött, vagy van-e jobb ötlete a törölt parancsikon probléma kijavításáról a Windows 7 rendszerben.