2

特定のファイルに書き込もうとして失敗するプログラムがあるとします。

Windows プラットフォームで、ファイルが書き込み不能になる可能性のある原因と、それを修正するためにエンド ユーザー/管理者に提案できる手順を教えてください。


管理者権限を必要とする可能性のある手順を含めてください (明らかに、ユーザーは管理者ではない可能性がありますが、この質問では、管理者である (または管理者になる可能性がある) と仮定します。

また、ウィンドウで権限がどのように計算されるかについてもよくわかりません。- ユーザーは、ツリーの上位にある各ディレクトリへの書き込みアクセスを必要としていますか、またはそれに類似したものですか?

4

4 に答える 4

3

いくつかの提案:

  • 書き込み権限なし (ファイルの [プロパティ] ウィンドウの [セキュリティ] タブで権限を取得します。ファイルの所有者または管理者である必要があります)
  • ファイルがロックされています (ファイルが開いている可能性のあるプログラムをすべて閉じてから、問題が解決しない場合は再起動してください)
  • ファイルには読み取り専用の DOS 属性が設定されています (ファイルの [プロパティ] ウィンドウから設定を解除するattrib -rか、ファイルの所有者または管理者である必要があります)。

編集 1: 2 番目の項目 (ファイルがロックされている) だけが、すべてのユーザーが助けなしで実行できる可能性のある解決策を持っています。1 番目と 3 番目については、おそらくガイダンスを提供したいと思うでしょう (そして、ファイルが意図的に読み取り専用にされていないことを願っています!)。

編集 2: 技術的には、ユーザーにはルートまでのすべてのディレクトリに対する書き込みおよび実行 (chdir) 権限が必要です。Windows は、パフォーマンスの最適化としてツリーの再帰チェックの一部をスキップする場合がありますが、管理者が特定のユーザーに対してこれらのいわゆる「トラバース チェック」を強制できるため、これに依存しないでください。

編集 3: @RobM: はい、ユーザーが必要なアクセス許可を持っていてはならないという明確な理由がないことを確認する必要があります。私は最初の編集で、あまり直接的ではない方法でこれをほのめかしました。ただし、場合によっては、ユーザーがファイルへの書き込み権限を持っている必要がありますが、ファイル システムの破損、不正な動作をしているプログラム、またはユーザー自身のミスが原因で、そうでない場合があります。

于 2008-09-01T06:28:56.453 に答える
1

ファイルがロックされている場合に問題が解決しない場合は、Unlockerを使用してみてください。これは、ファイルをロックしたプロセスを表示し、必要に応じて強制的にロックを解除できる非常に便利な無料のユーティリティです。

于 2008-09-01T06:55:48.683 に答える
0

Vista では、インターネットからダウンロードされ、エクスプローラーのプロパティ ダイアログでブロック解除ボタンをクリックする必要があるため、安全でないと「マーク」されている可能性もありますか?

于 2008-09-01T09:34:16.027 に答える
0

これを少し変えてみましょう。プログラムがファイルに書き込もうとして失敗した場合は、ファイルの場所をユーザーが書き込める場所に変更するか、プログラムの起動時に正しい権限を確認し、ユーザーがそうでない場合は実行を拒否する必要があります。それらを持っています。システム権限を踏みにじることは答えではありません。

于 2008-09-01T10:33:16.820 に答える