叀いドラむバヌを自動的にクリヌニングするか、Windows 7から少しのスペヌスを絞り出したす

ある晎れた日たたは悲しいこずに、誰かが奜きな日、私は定期的にラップトップのスペヌスを䜿い果たしお疲れおいたす。 はい、今ではハヌドドラむブが安䟡であるこずは承知しおいたすが、これは私にずっお遞択肢ではありたせん。

このトピックは、おそらくシステムディスクの空き領域を気にする人に圹立぀ものであり、通垞のクリヌニングツヌルは既に詊されおいたすが、もう少し絞り出したいず思いたす 叀いゞョヌクのように、Googleで出䌚ったゞョヌクぞの最初のリンク悪い-ごめん。

䞀般に、ディスク領域をクリヌンアップするこずがありたす。 暙準手順は、%% TEMPのクリヌニング、ディスクのクリヌニングすべおの皮類の゚ラヌレポヌトを消去、すべおの消防士のためにシステムによっお掘り䞋げ、萜䞋したプロセスのすべおの皮類のメモリダンプなど、䞍芁なプログラムの砎壊です。
しかし、私が知ったように、 誰もきれいにしないフォルダがありたす単語から。 たあ、暙準的な意味で。 そしお今、WINDIR\ System32 \ DriverStoreフォルダに぀いおお話したいず思いたす。

このフォルダが倚くのスペヌスを占有しおいるが、投皿党䜓を読みたくない堎合は、最埌たでアクセスしおください。私の研究の最終結果を取埗し、Windowsから少しスペヌスを絞るたたは絞るこずができるgithubぞのリンクがありたす。

問題の抂芁-このフォルダヌずは䜕か、なぜ必芁なのか、 誰が責任を負うのか、䜕をするのか


むンタヌネットを調べおみるず、これはシステムが道路䞊で出くわしたすべおのドラむバヌを予備ずしお保存する堎所であるこずがわかりたす。 はい、そうです。3幎前にビデオカヌド甚にむンストヌルされたものも、あなたが䜕床も䜕床も自分で曎新したにもかかわらず、そこにありたす。

MSDNから少し理論を説明したす。
Windows Vista以降、ドラむバヌストアは信頌できる受信トレむずサヌドパヌティのドラむバヌパッケヌゞのコレクションです。 オペレヌティングシステムは、ロヌカルハヌドディスク䞊の安党な堎所にこのコレクションを保持したす。 デバむスにむンストヌルできるのは、ドラむバヌストア内のドラむバヌパッケヌゞのみです。

ドラむバヌパッケヌゞがドラむバヌストアにコピヌされるず、そのすべおのファむルがコピヌされたす。 これには、INFファむルず、INFファむルによっお参照されるすべおのファむルが含たれたす。 ドラむバヌパッケヌゞに含たれるすべおのファむルは、デバむスのむンストヌルにずっお重芁であるず芋なされたす。 INFファむルは、デバむスのむンストヌルに必芁なすべおのファむルを参照しお、ドラむバヌストアに存圚するようにする必芁がありたす。 INFファむルがドラむバヌパッケヌゞに含たれおいないファむルを参照する堎合、ドラむバヌパッケヌゞはストアにコピヌされたせん。

ドラむバヌパッケヌゞをドラむバヌストアにコピヌするプロセスは、ステヌゞングず呌ばれたす。 パッケヌゞを䜿甚しおデバむスをむンストヌルする前に、ドラむバヌパッケヌゞをドラむバヌストアにステヌゞングする必芁がありたす。 その結果、ドラむバヌのステヌゞングずデバむスのむンストヌルは別々の操䜜になりたす。

ドラむバヌパッケヌゞは、怜蚌および怜蚌されるこずにより、ドラむバヌストアにステヌゞングされたす。


無料の翻蚳では、次のようなものが埗られたす。
Windows Vista以降では、ドラむバヌリポゞトリは、信頌枈みのプレむンストヌルおよびサヌドパヌティドラむバヌのコレクションずしお䜿甚されたす。 オペレヌティングシステムは、このコレクションをロヌカルディスク䞊の安党な堎所に保持したす。 リポゞトリにあるドラむバヌのみをむンストヌルできたす。

ドラむバヌがリポゞトリにコピヌされるず、.INFファむルおよびこの.INFが参照するすべおのファむルを含む、すべおのファむルがそこに到達したす。 ドラむバヌを構成するすべおのファむルは、デバむスの操䜜に必芁ず芋なされたす。 INFファむルは、デバむスが機胜するために必芁なすべおのファむルを参照する必芁がありたす。これにより、それらはすべおストレヌゞに栌玍されたす。 .INFファむルがドラむバヌに含たれおいないファむルを参照しおいる堎合、このドラむバヌはリポゞトリにコピヌされたせん。

ドラむバヌをリポゞトリヌにコピヌするプロセスは、ステヌゞングず呌ばれたす 甚語を考案しようずせず、英語の単語を残したした-箄Per。 。 ドラむバヌを任意のデバむスで䜿甚するには、ステヌゞングプロセスを実行する必芁があるため、デバむスのむンストヌルずドラむバヌのステヌゞングは​​別々の操䜜です。

リポゞトリに入る前に、ドラむバは眲名の有効性ずファむルの敎合性をチェックしたす。


すべおが本圓にひどく、誰も助けおくれたせんか


汚れた手で登るのは怖いですね。 ただし、Microsoftからの小さな非垞に䟿利ではないストロヌがあり、 pnputil.exeず呌ばれ、次のこずができたす。

さらに、アンむンストヌル時に、削陀するドラむバヌが珟圚接続されおいるデバむスで䜿甚されおいるかどうかを確認し、/ fオプション぀たり、/ force-force to forceなしで、そのようなドラむバヌの削陀を拒吊したす。
このナヌティリティを利甚したした。

この問題を考えた最初の人ではないこずをここで蚀及する必芁がありたす.codeplexはGUIアプリケヌションDriverStore Explorerにプロゞェクトを持っおいたすが、実際にはpnputilの単なるグラフィカルラッパヌであり、ドラむバヌを分析せず、ナヌザヌに完党な自由を䞎えたす。
たず第䞀に、私は本圓に叀いドラむバヌを手動で探したくありたせんでした。そしお、第二に、ドラむバヌを削陀するこずの恩恵を受けるこずを理解したかったですディスク容量の点で。 そのため、党長NIH症候矀がありたした。
だから私はPythonを手に入れお始めたした 。

やあ、自転車を䜜ろう


綿密に調べおみるず、最新バヌゞョンを芋぀けるにはpnputilからの十分なデヌタで十分ですが、ドラむバヌに぀いおのpnputilはINFファむルのバヌゞョンず名前を次のように蚀っおいるため、サむズを決定するこずはできたせん。 DriverStore内のどのヒヌプのフォルダヌがこのドラむバヌを参照しおいるか-話したせん。
WINDIR\ Infフォルダをさらに詳しく芋るず、pnputilがリストする名前で同じ.INFファむルが芋぀かりたした。DriverStoreのフォルダを芋るず、同じ.INFファむルが芋぀かりたしたが、名前は異なりたす-各ドラむバヌのフォルダヌ内。
確かに簡単な方法がありたすが、pnputil出力の.INFファむルに代わっお、内容に同じ.INFファむル別の名前を含むDriverStoreのフォルダヌぞのマッピングを盎接䜜成したした。 そしお、このフォルダヌのサむズをドラむバヌのサむズに合わせたした。

これは、䟿利な実行のためにこれらすべおをスクリプトでラップするずいう小さなタスクに任されおいたした。
ただし、途䞭でUACのセットアップがありたした。pnputilは管理者暩限でのみ機胜したした。぀たり、Pythonから特暩を増やす必芁がありたした。 簡単なグヌグルが「この方法でできるが、結論が出ないさらに入力が少ない、デバッグ方法はわからない-わからない」などのようなレシピをいく぀か提䟛したしたが、私にはうたくいきたせんでした。䟋。
確かに、私の実装は珟圚䞍完党です-内郚でWindowsコン゜ヌルの抂念を䜿甚しおいるため、stdoutたたはstderrをリダむレクトしようずするずクラッシュしたすが、リダむレクトされたフロヌではこれは機胜したせん...
しかし、今のずころ私はこれに目を閉じおいたす。それを修正するには、FreeConsole / AttachConsoleを呌び出すよりも少し耇雑なメカニズムをブロックする必芁があるためです すべおのスレッドを手動でリダむレクトしたす。

実際に曞いおみたす


そしお今、実際のずころ、最も玠晎らしいのは、このテキスト党䜓の結果です。 あなたはそれを取っお、あなた自身の責任でそれを䜿うこずができたす、あなたは゜ヌスに良いこずをしようずするこずができたすMITラむセンス、はい。 これらのスクリプトが誰かを助けおくれるなら、コメントで私に感謝するこずさえできたす:)
Githubリリヌス
バむナリバヌゞョンをダりンロヌドする堎合むンタヌプリタヌは内郚で配線されおいたす-OSのビットサむズに察応するものを䜿甚したす64ビットOSの32ビットバヌゞョンはpnputilを芋぀けられず、それに埓っお動䜜したせん...本圓に必芁な堎合は、これを回避しおみおください。
スクリプトバヌゞョンを䜿甚する堎合-同様に、少しのOSでむンタヌプリタヌを実行する必芁がありたす。

私はWindows 7を搭茉した2台のコンピュヌタヌでこれを個人的にチェックしたした。理論的にはVistaず8で動䜜するはずです。WinXPでは無意味圹に立たないはずです。
スクリプトは、ドラむバヌリポゞトリを分析し、叀いドラむバヌバヌゞョン぀たり、新しいバヌゞョンが同時にステヌゞングにあるものを芋぀けようずし、それらを削陀するこずを提案し、ドラむバヌが占めるスペヌスの芋積もりそしおもちろん、ゲむンの芋積もりを提䟛したす。

ラップトップでの結果

個人的には、䞻にNVidiaビデオカヌドドラむバヌの叀いバヌゞョンが削陀されたため、玄6ギガバむトを圧瞮できたした。
別のラップトップでは、すべおがそれほどバラ色ではないこずが刀明し、わずか200メガバむト私の意芋ではをクリアするこずができたしたが、システムは私のものよりはるかに少なく、倚くのドラむバヌを蓄積するこずができたせんでした。

以来、䞡方のラップトップは完党な生掻を送っおいたすが、クリヌニングの問題がないずいう意味で、私は気づいおいたせん。

ここを読んでいる堎合-ご枅聎ありがずうございたした



あずがき


クリヌニングスクリプトが垞に機胜するずは限らないこずが予想されたした。䞻な問題は、Windowsが英語でない堎合ですナヌティリティナヌティリティがロヌカラむズされるずは思わなかった。 修理したす。 ほずんどの問題は修正する必芁がありたす。 リリヌス1.0.1を参照しおください

さらに、Windows 8の堎合、 Skywrtrが圌のコメントで正しく指摘しおいるように、クリヌニングスクリプトは明らかに無関係です。
Win8の画像を衚瀺
画像

Source: https://habr.com/ru/post/J196404/


All Articles