C:から廃止されたpagefile.sysを再構成し、削除する:バッチスクリプトを使用して一度に


1

Windows XPインストーラー用の自動スクリプトをセットアップしようとしています。これは、インストール後の最初の起動時に実行されるバッチスクリプトです。私が達成しようとしていることの1つは、C:からページファイルを完全に削除し、代わりにD:に16〜768 ​​MBのページファイルを置くことです。

バッチファイルの手順は次のとおりです。

echo === Creating new page file on D: ...
cscript %windir%\system32\pagefileconfig.vbs /create /i 16 /m 768 /vo d: >nul
echo.
echo === Removing old page file from C: ...
cscript %windir%\system32\pagefileconfig.vbs /delete /vo C:
attrib -s -h c:\pagefile.sys
del c:\pagefile.sys

私の問題は、これらが正常なコマンドであるにもかかわらず、C:のページファイルを削除するには、それらのコマンドが成功する前に再起動する必要があることです。bつまり、最初にD:ページファイルを作成し、 :\ pagefile.sysファイル、またはWindows自体でさえ認識されないac:\ pagefile.sysファイルで立ち往生しています(D:にページファイルがあり、C:にはないというだけです)すべてのページファイル)。明らかに、すでにいくつかのページがC:\ pagefile.sysファイルに書き込まれているためです。

それで、私はこれを一度に達成するにはどうすればよいですか?または、2回で、これが「バッチスクリプト可能」である場合:)

TIA、ダニエル:)

編集:おそらく明確にする必要があります:上記のコマンドの実行はすべて有効ですが、次回の起動時に「attrib」および「del」コマンドを再実行した場合にのみ完全に成功します。C:ページファイルはその時点で使用中であるため、使用しているファイルを削除できません。また、C:をページファイルドライブとして使用しないように構成しても、Windows自体は削除しません。代わりに、孤立したc:\ pagefile.sysファイルが残ります(これは非常に大きいです)。

一度に動作するために必ずしもこれが必要なわけではありません。再起動後に実行する最後の2つのコマンドを登録することも素晴らしいでしょう:)

編集2:一度に行うことはできないようであるため、基本的に上記のページファイル構成を最初に実行し、孤立したものを削除する別のバッチファイルを「%userprofile%\ Start Menu \ Programs \ Startup」にドロップしましたCからのファイル:最初のログオン時。それはきれいな解決策ではありませんが、動作します:)


1
確実に再起動する必要があります。見にRunOnceレジストリキー-ローカルマシン1(現在のユーザーではなく)を使用します。
ボブ

@ボブありがとうございます!それに基づいて私のインストールに関係する何かを解読できるかもしれないと思います。報告します:)
DanielSmedegaardBuus

回答:


0

私の問題は、これらが正常なコマンドであるにもかかわらず、C:のページファイルを削除するには、それらのコマンドが成功する前に再起動する必要があることです。

もちろん。Windowsの実行中にページファイルを拡張(サイズを増やすか、新しいボリュームに追加)することはできますが、縮小(サイズを縮小または削除)することはできません。

または、言い換えれば、最初にD:ページファイルを作成し、次に再起動してc:\ pagefile.sysファイルを削除する必要があります

一度に再起動するだけで済むように、それらを同時に実行できます。

私はac:\ pagefile.sysファイルで立ち往生しています。これはWindows自体によってさえ認識されません(D:にページファイルがあり、C:にはページファイルがまったくないというだけです)。明らかに、すでにいくつかのページがC:\ pagefile.sysファイルに書き込まれているためです。

上記のコマンドの実行はすべて有効ですが、次回の起動時に「attrib」および「del」コマンドを再実行した場合にのみ完全に成功します。C:ページファイルはその時点で使用中であるため、使用しているファイルを削除できません。また、C:をページファイルドライブとして使用しないように構成しても、Windows自体は削除しません。代わりに、孤立したc:\ pagefile.sysファイルが残ります(これは非常に大きいです)。

正しい。Windowsは変更を認識しましたが、再起動するまでページファイルはまだ使用されており、それに対してできることは何もありません。

一度に実行することは不可能と思われるため、基本的に上記のページファイル構成を最初に実行し、その後、別のバッチファイルを「%userprofile%\ Start Menu \ Programs \ Startup」にドロップして、孤立したファイルをCから削除します:最初のログオン時。それはきれいな解決策ではありませんが、動作します:)

または、バッチファイルでMoveLaterなどのプログラムを使用して、再起動時にシステムによって自動的に実行されるようにすることができます。

これは、スタートアップフォルダーやRunレジストリキーから何かを実行することとは異なります。これらのプログラムPendingFileRenameOperationsは、ブートプロセスの非常に早い段階(技術的にはWindowsが実行される前)に処理/移動/名前変更/削除されるファイル/フォルダーを書き込むので、Windowsの後に削除できないシステムファイルでも削除できます。稼働しています。

これは、Windowsが特定のファイルとフォルダーを「特別」であると検出し、それらを使用しないように構成されている場合でも、それらをロックし、起動中に削除できないために便利です。Windowsが実行される前に削除されるようにスケジュールすることにより、ファイル/フォルダーを削除して、Windowsがそれらを表示しないようにすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.