Opravit zástupce na ploše systému Windows 7

Pokud používáte Windows 7, možná jste si všimli, že zkratky na ploše zmizí bez zjevného důvodu. Ukázalo se, že za to odpovídá údržba systému. Funguje jako služba týdenní údržby, která ovlivňuje zástupce na ploše dvěma způsoby.

Nejprve odstraní zástupce na ploše, které nebyly používány po dobu nejméně tří měsíců. Údržba systému také odstraní poškozené zkratky na ploše, pokud jich jsou více než čtyři. Problém s posledním je v tom, že systém Windows 7 rozpozná zkratky pro odpojená síťová umístění jako poškozené a také zkratky, které odkazují na složky prostředí.

Společnost Microsoft nabízí dvě řešení problému. První rada je udržet počet přerušených zkratek pod čtyřmi. To není vždy možné kvůli výše uvedeným problémům s přerušenými zkratkami.

Druhým návrhem společnosti Microsoft je vypnout údržbu počítače:

  • Klepněte na tlačítko Start a potom na příkaz Ovládací panely.
  • Ve skupinovém rámečku Systém a zabezpečení klepněte na Najít a opravit problémy.
  • Na levém navigačním podokně klikněte na Změnit nastavení.
  • Nastavte Údržba počítače na Vypnuto.

Tím se však vypnou všechny ostatní úkoly související s údržbou počítače, jako je kontrola systémového času, chyby svazku disku nebo zprávy o chybách místa na disku.

Všechny úkoly údržby jsou poháněny skripty, které jsou umístěny v c: \ windows \ Diagnostics \ Scheduled \ Maintenance \. Možnosti jsou úpravy skriptů přímo v tomto adresáři. Oprávnění zakazuje, aby soubory upravoval aktuální uživatel.

Oprava chybějících zástupců na ploše systému Windows 7

Poznámka: Jedná se o hack, který může ovlivnit jiné části operačního systému. Poté na testovacím systému všechno fungovalo dobře, ale před jejich úpravou si soubory řádně zálohujte

Nejprve musíme převzít kontrolu nad soubory, abychom je mohli upravovat. Chcete-li to provést, musíte nejprve převzít vlastnictví a poté upravit přístupová práva aktuálního uživatele, aby bylo možné soubory upravovat.

První část může být automatizována. Prostě stáhněte skript na tomto fóru a spusťte jej. To by mělo přidat položku Převzít vlastnictví do nabídky klepnutí pravým tlačítkem v Průzkumníkovi Windows.

Po instalaci skriptu přejděte do složky C: \ Windows \ diagnostics \ naplánované \ Údržba v Průzkumníkovi Windows a klepněte pravým tlačítkem myši na soubor TS_BrokenShortcuts.ps1 . Vyberte možnost Převzít vlastnictví, která by měla převést vlastnictví na přihlášeného uživatele.

Uživatel stále nemá oprávnění k uložení souboru, což znamená, že musíme provést i další krok, než budeme moci upravit poškozený soubor Powerscript s poškozenými zkratkami, aby automaticky neodstranil poškozené zkratky.

Otevřete příkazový řádek se zvýšeným příkazem. To provedete kliknutím na Start orb, Všechny programy, pak Příslušenství. Klepněte pravým tlačítkem myši na odkaz Příkazový řádek a vyberte Spustit jako správce.

Nyní vydejte následující příkaz, abyste aktivnímu uživateli udělili úplná práva k souboru. Ujistěte se, že jste USERNAME nahradili jménem aktivního uživatele.

icacls c:\windows\diagnostics\scheduled\maintenance\TS_BrokenShortcuts.ps1 /grant USERNAME:F

Nyní můžete soubor upravovat normálně v textovém editoru, jako je Poznámkový blok. Otevřete jej a najděte řádek (řádek 11)

[string]$list = ""

Vymažte vše pod tímto řádkem až do (řádek 22)

return $list

Řádky, které jsou vymazány, jsou:

Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "VYBRAJTE jméno, cíl, AccessMask OD Win32_ShortcutFile WHERE Name = '$ fullPath'"

if (- not (Test-ValidLink $ wmiLinkFile) - a (Test-Delete $ wmiLinkFile))

{

$ list = AttachTo-List $ list $ wmiLinkFile.Name

}

}

Toto v podstatě vrací prázdný seznam skriptu, takže nebudou odstraněny žádné zkratky. Testoval jsem to s pěti poškozenými zkratkami a po spuštění údržby systému nebyly odstraněny.

To opravilo přerušené zkratky, ale stále máme problém, že zkratky, které nebyly nějakou dobu použity, budou odstraněny také systémem Windows 7.

Tady musíme (téměř) provést stejnou operaci. Vyhledejte soubor TS_UnusedDesktopIcons.ps1 ve stejném adresáři. Převezměte vlastnictví za to a udělete aktivní přístupová práva uživatelů.

Poté upravte soubor a vyhledejte řádek (24)

[string]$list = ""

Smazat vše až do řádku (35)

return $list

takže budou odstraněny následující řádky

Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "VYBRAJTE jméno, cíl, AccessMask OD Win32_ShortcutFile WHERE Name = '$ fullPath'"

$ lastAccessTime = Get-LastAccessTime $ _. FullName

if ((Test-ValidLink $ wmiLinkFile) - a (Test - Smazat $ wmiLinkFile) - a (Test-FileShortcut $ wmiLinkFile) - a (Test-Nepoužitý $ lastAccessTime $ práh)))

{

$ list = AttachTo-List $ list $ wmiLinkFile.Name

}

}

Vezměte prosím na vědomí, že jsem druhý test netestoval, ale měl by fungovat stejně dobře.

To by mělo vyřešit všechny problémy, které uživatelé mají s odstraněnými zástupci na ploše Windows 7.

Než je upravíte, nezapomeňte je správně zálohovat. Prosím, dejte mi vědět, jestli to fungovalo pro vás, nebo pokud máte lepší představu o tom, jak vyřešit problém s odstraněnou zkratkou v systému Windows 7.