--BEGIN RANT--
「ドキュメントと設定」フォルダをコピーしてWindowsServer2003にバックアップするだけで、サーバーをワイプしてOSをWindows Server 2008にアップグレードした後、必要に応じて古いファイルを簡単に取得できます。 。しかし、コピーしようとすると、NTUSERが使用されているなどのエラーが発生します。管理者がWindowsエクスプローラーを使用してフォルダーをコピーするだけでなく、何でもコピーできることは非常に苛立たしいことです。
セキュリティフープを飛び越えて、権限を一掃する時間がありません。巨大なフォルダのコピーを開始する時間がありません。開いているファイルハンドルに遭遇したときに、操作によってランダムに失敗するだけです。このプロセスを何度も繰り返す時間がなく、開いているファイルハンドルを探し出し、毎回Process Explorerで閉じて、副作用としてシステムを不安定にします。
--END RANT--
ユーザーモードプロセスには、NTFSセキュリティをバイパスできるようなフラグが設定されている可能性があることを理解しています。
SE_BACKUP_NAME
この「バックアップ」の役割( /SE_RESTORE_NAME
)をC#プログラムなどのプロセスに与えるにはどうすればよいですか?マネージコードで実行できますか(または、Win32 APIドキュメントを掘り下げたり、マニフェストを手書きして、どこにいるのかを知っている人を埋め込んだり、あいまいなバックアッププログラム登録コマンドラインユーティリティを追跡したりする必要があります) ?
バックアップセマンティクスを使用してC#でファイルを開き、ファイルをコピーするにはどうすればよいですか?
ファイルハンドルを開くと(排他的な読み取りロックを使用)、バックアップ目的でファイルを読み取ることができなくなりますか、それともバックアップセマンティクスでファイルを開くとそれが処理され、バックアップ用に開いている間、ファイルへの書き込みが一時的に停止されますか?
私はここで質問しています。stackoverflowで記録を残すことは有用な情報であり、誰かが頭のてっぺんから吐き出す可能性があり、自分自身を調べる時間がないということです。ありがとうございました。
すぐに、いくつかのサーバーをWindows Server 2008という悪夢にアップグレードし、icaclsコマンドユーティリティを学習します。これは、Microsoftが複数のフォルダー/ファイルのセキュリティを編集するためのGUIサポートを削除したおかげです(スマートムーブではありません)。