Windows 7を実行している場合、デスクトップショートカットが明確な理由もなくまったく表示されないことに気付いているかもしれません。 システムメンテナンスがその原因であることがわかりました。 これは、デスクトップショートカットに2つの方法で影響を与える毎週のメンテナンスサービスとして実行されます。
最初に、少なくとも3か月間使用されていないデスクトップショートカットを削除します。 システムメンテナンスは、4つ以上ある場合、デスクトップ上の壊れたショートカットも削除します。 後者の問題は、Windows 7が切断されたネットワークの場所へのショートカットを壊れたものとして認識し、シェルフォルダーにリンクするショートカットも認識することです。
Microsoftは、この問題に対する2つのソリューションを提供しています。 最初のアドバイスは、壊れたショートカットの数を4以下に抑えることです。 上記の壊れたショートカットの問題のため、これは常に可能とは限りません。
マイクロソフトによる2番目の提案は、コンピューターのメンテナンスをオフにすることです。
- [スタート]をクリックし、[コントロールパネル]をクリックします。
- [システムとセキュリティ]で、[問題の検索と修正]をクリックします。
- 左側のナビゲーションペインで、[設定の変更]をクリックします。
- コンピュータのメンテナンスをオフに設定します。
ただし、これにより、システム時間のチェック、ディスクボリュームエラー、ディスクスペースエラーレポートなど、他のすべてのコンピューターメンテナンス関連タスクがオフになります。
すべてのメンテナンスタスクは、c:\ windows \ Diagnostics \ Scheduled \ Maintenance \にあるスクリプトによって実行されます。 オプションは、そのディレクトリ内のスクリプトを直接編集することです。 パーミッションは、現在のユーザーがファイルを編集することを禁止しています。
Windows 7デスクトップショートカットの消失の修正
注:これは、オペレーティングシステムの他の部分に影響を与える可能性があるハッキングです。 その後はテストシステムですべて正常に機能しましたが、ファイルを編集する前に適切にバックアップしてください。
まず、ファイルを制御して、編集できるようにする必要があります。 そのためには、最初に所有権を取得してから、現在のユーザーのアクセス権を変更して、ファイルを変更できるようにする必要があります。
最初の部分は自動化できます。 このフォーラムでスクリプトをダウンロードして実行するだけです。 これにより、Windowsエクスプローラーの右クリックメニューに所有権の取得エントリが追加されます。
スクリプトをインストールした後、WindowsエクスプローラーでC:\ Windows \ diagnostics \ scheduled \ Maintenanceに移動し、ファイルTS_BrokenShortcuts.ps1を右クリックします。 ログインしたユーザーに所有権を譲渡する所有権の取得オプションを選択します。
ユーザーはまだファイルを保存する権限を持っていないため、破損したショートカットPowerscriptファイルを編集して破損したショートカットを自動的に削除しないようにするには、次の手順も完了する必要があります。
管理者特権でコマンドラインプロンプトを開きます。 それには、スタートオーブ、[すべてのプログラム]、[アクセサリ]の順にクリックします。 [コマンドプロンプト]リンクを右クリックし、[管理者として実行]を選択します。
次のコマンドを発行して、アクティブユーザーにファイルの完全な権限を付与します。 USERNAMEをアクティブなユーザーの名前に置き換えてください。
icacls c:\windows\diagnostics\scheduled\maintenance\TS_BrokenShortcuts.ps1 /grant USERNAME:F
これで、メモ帳などのテキストエディタで通常どおりファイルを編集できます。 開いて行を見つけます(11行目)
[string]$list = ""
以下のすべてを削除します(22行目まで)
return $list
削除される行は次のとおりです。
Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _。FullName
$ wmiLinkFile = Get-WmiObject -query "SELECT Name、Target、AccessMask FROM Win32_ShortcutFile WHERE Name = '$ fullPath'"
if(-not(Test-ValidLink $ wmiLinkFile)-and(Test-Delete $ wmiLinkFile))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}
これは基本的にスクリプトに空のリストを返すので、ショートカットは削除されません。 5つの壊れたショートカットでテストしましたが、システムメンテナンスの実行後に削除されていません。
これにより、壊れたショートカットが修正されましたが、しばらく使用されていないショートカットがWindows 7でも削除されるという問題が依然としてあります。
ここで(ほぼ)同じ操作を実行する必要があります。 同じディレクトリでファイルTS_UnusedDesktopIcons.ps1を見つけます。 その所有権を取得し、アクティブなユーザーにアクセス権を付与します。
その後ファイルを編集し、行を見つけます(24)
[string]$list = ""
行(35)までをすべて削除します。
return $list
次の行が削除されるように
Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _。FullName
$ wmiLinkFile = Get-WmiObject -query "SELECT Name、Target、AccessMask FROM Win32_ShortcutFile WHERE Name = '$ fullPath'"
$ lastAccessTime = Get-LastAccessTime $ _。FullName
if((Test-ValidLink $ wmiLinkFile)-and(Test-Delete $ wmiLinkFile)-and(Test-FileShortcut $ wmiLinkFile)-and(Test-Unused $ lastAccessTime $ threshold))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}
2番目のスクリプトはテストしていませんが、同じように機能するはずです。
これにより、ユーザーがWindows 7デスクトップで削除されたショートカットに関連するすべての問題を解決するはずです。
ファイルを編集する前に、ファイルを適切にバックアップしてください。 これがあなたのために働いたかどうか、またはWindows 7で削除されたショートカットの問題を修正する方法についてより良いアイデアを持っているかどうかをお知らせください。