0


Windows 7のsystem32 フォルダーにある dll ファイルを削除または置換する必要がある場合がありますPermission Denied Error

            if (File.Exists(@"C:\Windows\system32\mydll.dll"))
            {
                fileInfo.IsReadOnly = false;
                File.Delete(@"C:\Windows\system32\mydll.dll");
            }

このエラーを回避して、system32 フォルダー内のファイルを置き換えるにはどうすればよいですか?

4

2 に答える 2

2
if (File.Exists(@"C:\Windows\System32\mydll.dll"))
{
    new Process() { StartInfo = new ProcessStartInfo("cmd.exe", @"/k takeown /f C:\Windows\System32\mydll.dll && icacls C:\Windows\System32\mydll.dll /grant %username%:F") }.Start();
    File.Delete(@"C:\Windows\System32\mydll.dll");
}

所有権を取得した後でもシステム DLL を削除することはできませんshell32.dllが、名前を変更したり移動したりすることはできます。

于 2012-09-08T20:58:32.543 に答える
2

ユーザーには、Windows Vista 以降の c:\windows\system32 からファイルを削除するための十分な権限がありません。管理者アカウントを使用してログオンした場合でも。UACはそれを止めます。プライベートな部分をいじろうとしていることをユーザーに知らせるために、昇格を要求する必要があります。UAC プロンプトをトリガーするには、プログラムにマニフェストを埋め込む必要があります。 この回答はその方法を示しています。

于 2012-09-09T10:09:00.943 に答える