0

Windows 7 に、すべてのユーザーがデータを書き込むためのフル コントロール アクセス権を持つ標準的な共通ディレクトリはありますか? デバッグ用のログファイルを書き込む必要がある特別なワークステーションで実行される Win 7 のアプリケーションがあります。このアプリは Java で記述されており、logback を使用してログに記録します。

これらのワークステーションで何も制御できないことに、私は髪を引き裂いています。ログファイルディレクトリのフルコントロールをすべてのユーザーに付与するように依頼します。許可する場合と許可しない場合がありますが、「ポリシー」が適用され、アプリケーションは必要に応じてログファイルの書き込み/削除/名前変更を行うことができません。私はこれについて何度もブロックを回ってきました。

悪意のある活動については心配していません。グループ ポリシーにより、ユーザーは Windows エクスプローラー、Office、コマンド ライン、IE、または当社のアプリケーション以外のものを使用できなくなります。彼らは私たちのプログラムの制御下にないことは何もできません。しかし、ロギングが常に希望どおりに動作することがわかっている状況に到達することはできません。ある人がマシンにログオンし、別の誰かがログオンした場合、ファイルの「所有権」の問題が、プログラムが必要な処理を実行する妨げになります。

だから私の質問は、デフォルトで、たまたまログインしているユーザーに常に開かれているディレクトリがあり、最初に作成したユーザーに関係なく、ファイルの書き込み、削除、名前変更を行うプログラムを実行することですか?

更新:(Remy Lebeauの回答に応じて)

レミーは、以下のコメントで、私が探していたものを教えてくれました。ただし、それには 2 つの問題があります。

  1. 私たちのアプリケーションは Java で書かれており、私の知る限り、彼のリンクに記載されている API にアクセスできないと言いました。 \Documents and Settings\All Users\Application Data. これはショーストッパーではありませんが、理想的とは言えません。
  2. さらに重要なことに、私はこれを試しましたが、私の場合はうまくいきません。cmdウィンドウで、このディレクトリにcdして、明らかにファイルをそこにコピーできます。(copy コマンドは成功したと表示しますが、dir コマンドはそれを表示しません)、管理者権限を持つ自分の PC のユーザーである私は、Windows エクスプローラーでディレクトリを表示できません。これについて、次の 2 つの疑問が生じます。

    を。ユーザーが明らかに実行する権限を持たないアクション (ファイルのコピーなど) が成功したように見えても (目に見えるエラーなしで続行される)、操作が実際には完了しないという、この奇妙な Windows の動作はどうなっていますか。

    b. これらの問題はすべて、Microsoft が文書化したディレクトリが文書化されたとおりに機能しないようにする「通常」よりも制限の厳しいグループ ポリシーを会社が持っている結果ですか? グループ ポリシーを表示して、これらのポリシーを管理している人々に何らかの救済をインテリジェントに要求するにはどうすればよいですか?

4

1 に答える 1

0

複数のユーザー アカウント間でファイルを共有する必要がある場合は、フォルダーの下にサブフォルダーを作成しCSIDL_COMMON_APPDATA( FOLDERID_ProgramDataVista 以降)、必要に応じてそのサブフォルダー内のファイルを操作します。

現在ログインしているユーザーのみがファイルを操作する必要がある場合は、CSIDL_APPDATA(Roaming) またはCSIDL_LOCAL_APPDATA(non-Roaming) フォルダー (またはVista 以降) の下FOLDERID_RoamingAppDataにサブフォルダーFOLDERID_LocalAppDataを作成し、必要に応じてそのサブフォルダー内のファイルを操作します。

SHGetFolderPath()または関連する機能 (またはVista+) を使用SHGetKnownFolderPath()して、そのような特別なフォルダーの実際のパスを取得できます。これらのフォルダーのデフォルトの場所は、OS のバージョンごとに異なり、ユーザーはレジストリ編集を介してさらにカスタマイズできます。

于 2013-10-23T22:15:47.367 に答える