システムの再起動時にどのファイルが削除または変更されるかを知る方法を知っている人はいますか? システムを更新するときと同様に、一部のファイルがシステムによってブロックされ、それらを置換または変更する必要があるため、システムは再起動を要求します。起動時に削除または変更されるファイルを通知するスクリプトを作成する必要があります。
質問する
1557 次
2 に答える
3
MoveFileExのドキュメントには次のように記載されています。
備考
dwFlags
パラメータに が指定されている場合、レジストリにアクセスできない場合MOVEFILE_DELAY_UNTIL_REBOOT
、MoveFileExは失敗します。この関数は、再起動時に名前を変更するファイルの場所を次のレジストリ値に格納します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
このレジストリ値のタイプは
REG_MULTI_SZ
です。各名前変更操作では、名前変更が削除であるかどうかに応じて、次の NULL で終わる文字列のいずれかが格納されます。
szDstFile\0\0
szSrcFile\0szDstFile\0
文字列は、再起動時に
szDstFile\0\0
ファイルszDstFile
が削除されることを示します。文字列は、再起動時に名前が変更されることszSrcFile\0szDstFile\0
を示します。szSrcFile
szDstFile
Win32::TieRegistryを使用して、Windows レジストリを照会できます。
#!/usr/bin/env perl
use strict; use warnings;
use Const::Fast;
use Win32::TieRegistry;
use YAML;
const my $REG_DELIMITER => '/';
$Registry->Delimiter($REG_DELIMITER);
my $key = join $REG_DELIMITER, qw(
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
Session Manager
PendingFileRenameOperations
);
print Dump $Registry->{$key}
于 2012-06-28T22:18:10.150 に答える