1

いくつかの dll ファイルを System32 フォルダーにコピーするバッチ ファイルを作成しました。C# コードで記述したプログラムからこのバッチを実行しました。

string path = @"ABC\install.bat";
ProcessStartInfo procStartInfo = new ProcessStartInfo()
{
    UseShellExecute = true,
    CreateNoWindow = false,
    FileName = "\"" + path + "\"",
    //Arguments = "\"" + path + "\""
    Verb = "runas"
};
 
using (Process proc = new Process())
{
    proc.StartInfo = procStartInfo;
    proc.Start();
}

すべてがうまくいきました。Windows 7 からの変更を確認するポップアップ メッセージが表示されました。コンソールは、ファイルがコピーされたことも証明しました。

C:\Program Files\XXX>copy commpro.dll C:\Windows\system32\
    1 file(s) copied.

しかし、System32 フォルダーを見ると、そこに dll が見つかりませんでした。それはとても奇妙です!

誰でもこの問題が発生しますか?

編集: 私の質問はこの質問とは異なります: How to write files in C:\Windows\System32 with full permissions

ここで、System32 フォルダーへの書き込み権限を付与できるポップアップが表示されます。そして、「コピー」コマンドの出力は、「アクセスが拒否されました」ではなく「コピーされました」と表示されました。問題は、「コピー済み」と表示されているのに dll が含まれていないことです。

4

1 に答える 1