C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: ユーザー権限のログファイル作成について


(過去ログ 10 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■1755 / inTopicNo.1)  ユーザー権限のログファイル作成について
  
□投稿者/ セイン (5回)-(2007/03/05(Mon) 17:38:54)

分類:[.NET 全般] 

以前はお世話になりました。

今回お伺いしたいのは、C:\Program Filesの下に、
ユーザー権限でプログラムを使用したときにLOGファイルを作成できるかどうかです。
C++ .NET 2003で開発しております。


作成したソフトを、C:\Program Files\フォルダ名 の下に入れ、
ユーザー権限で使用することになりました。

このソフトは、下記ディレクトリにログを蓄積するように作っているのですが、
C:\Program Files\フォルダ名\LOG\ログファイル名.log

管理者権限では問題なくはいてくれるLOGがユーザー権限でははいてくれません。
(権限がないのであたりまえかもしれませんが・・・)

この問題を解消する方法がございましたら教えてください。よろしくお願いいたします。



引用返信 編集キー/
■1756 / inTopicNo.2)  Re[1]: ユーザー権限のログファイル作成について
□投稿者/ HiJun (12回)-(2007/03/05(Mon) 17:48:21)
No1755 (セイン さん) に返信
> 管理者権限では問題なくはいてくれるLOGがユーザー権限でははいてくれません。
> (権限がないのであたりまえかもしれませんが・・・)
C:\Program Files\フォルダ名\LOGフォルダの権限にUSERも追加してみたら
どうですか?
(でもこわいな...)
引用返信 編集キー/
■1757 / inTopicNo.3)  Re[1]: ユーザー権限のログファイル作成について
□投稿者/ シャノン (99回)-(2007/03/05(Mon) 17:58:26)
No1755 (セイン さん) に返信
> このソフトは、下記ディレクトリにログを蓄積するように作っているのですが、
> C:\Program Files\フォルダ名\LOG\ログファイル名.log

その仕様を変える。
My Documents とか、Application.UserAppDataPath とかに出力するが吉。
引用返信 編集キー/
■1758 / inTopicNo.4)  Re[1]: ユーザー権限のログファイル作成について
□投稿者/ Hirotow (54回)-(2007/03/05(Mon) 18:01:31)
No1755 (セイン さん) に返信
> 以前はお世話になりました。
>
> 今回お伺いしたいのは、C:\Program Filesの下に、
> ユーザー権限でプログラムを使用したときにLOGファイルを作成できるかどうかです。
> C++ .NET 2003で開発しております。
>
>
> 作成したソフトを、C:\Program Files\フォルダ名 の下に入れ、
> ユーザー権限で使用することになりました。
>
> このソフトは、下記ディレクトリにログを蓄積するように作っているのですが、
> C:\Program Files\フォルダ名\LOG\ログファイル名.log
>
> 管理者権限では問題なくはいてくれるLOGがユーザー権限でははいてくれません。
> (権限がないのであたりまえかもしれませんが・・・)
>
> この問題を解消する方法がございましたら教えてください。よろしくお願いいたします。

基本的に制限つきユーザーではユーザーフォルダ以下にしか書き込み権限がありませんが、
あらかじめ(セットアップ時推奨)管理者権限でログフォルダの作成とUsersグループへの書き込み権限の付加を行っておけば制限つきユーザーでも書き込みできるはずです。

細かい方法はよくわからないのでほかの人にお任せします。
引用返信 編集キー/
■1759 / inTopicNo.5)  Re[2]: ユーザー権限のログファイル作成について
□投稿者/ セイン (6回)-(2007/03/05(Mon) 18:02:59)
>HiJun さん
>C:\Program Files\フォルダ名\LOGフォルダの権限にUSERも追加してみたら
>どうですか?

ぜひやってみたいです!
初歩的ですいません。どうやってやるんですか?


>シャノンさん
>その仕様を変える。
>My Documents とか、Application.UserAppDataPath とかに出力するが吉。

ごもっとも。しかし上司からできるか調べてといわれているので、
こんな方法がありますけど、危険なので仕様変えませんか?
などといいたいんです。
すいません。


よろしくお願いいたします。
引用返信 編集キー/
■1761 / inTopicNo.6)  Re[3]: ユーザー権限のログファイル作成について
□投稿者/ Hirotow (55回)-(2007/03/05(Mon) 18:11:38)
Hirotow さんの Web サイト
> ぜひやってみたいです!
> 初歩的ですいません。どうやってやるんですか?

VS2005だったら簡単なのですが、VS2003だとWinAPIを叩く必要がありそうですね。
もしくはWindows Installerのほうで設定する方法もありそうな気がします。

適当ですみません。
引用返信 編集キー/
■1762 / inTopicNo.7)  Re[4]: ユーザー権限のログファイル作成について
□投稿者/ セイン (8回)-(2007/03/05(Mon) 18:30:06)
No1761 (Hirotow さん) に返信
>>ぜひやってみたいです!
>>初歩的ですいません。どうやってやるんですか?
>
> VS2005だったら簡単なのですが、VS2003だとWinAPIを叩く必要がありそうですね。
> もしくはWindows Installerのほうで設定する方法もありそうな気がします。
>
> 適当ですみません。

すいません 参考までに2005で設定する方法教えていただけるとうれしいです。
お願いします。
引用返信 編集キー/
■1763 / inTopicNo.8)  Re[5]: ユーザー権限のログファイル作成について
□投稿者/ HiJun (13回)-(2007/03/05(Mon) 18:54:03)
2007/03/05(Mon) 18:55:40 編集(投稿者)
2007/03/05(Mon) 18:54:51 編集(投稿者)

削除
引用返信 編集キー/
■1764 / inTopicNo.9)  Re[5]: ユーザー権限のログファイル作成について
□投稿者/ HiJun (14回)-(2007/03/05(Mon) 18:54:58)
No1762 (セイン さん) に返信
OSが何か書いていないので、OSがXPであることを
前提に記載します。
対象フォルダを右クリックにてプロパティを選択し、
セキュリティタブを選択してください。
その中で、Usersグループを選択して
下のグループのアクセス権限に読み込みや書込みにレ点をいれて
適用する。
といった感じですね。

ただ、私もシャノンさんと同じ考えで、MyDocumentの中に落とすような
仕組みのほうが安全だと思います。
引用返信 編集キー/
■1766 / inTopicNo.10)  Re[5]: ユーザー権限のログファイル作成について
□投稿者/ Hirotow (56回)-(2007/03/05(Mon) 19:05:33)
Hirotow さんの Web サイト
2007/03/05(Mon) 19:37:25 編集(投稿者)
> すいません 参考までに2005で設定する方法教えていただけるとうれしいです。
> お願いします。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.AccessControl;
using System.Windows.Forms;

namespace ACLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string logDirPath = Path.Combine(Application.StartupPath, "LOG");

            DirectoryInfo logDirInfo = new DirectoryInfo(logDirPath);

            if (!logDirInfo.Exists)
            {
                try
                {
                    logDirInfo.Create();
                }
                catch (Exception e)
                {
                    Console.WriteLine("ログディレクトリが作成できません。\n" + e.ToString());

                    goto END;
                }
            }

            try
            {
                DirectorySecurity logDirSec = logDirInfo.GetAccessControl();

                //このへんは必要に応じて変更してください。
                logDirSec.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.CreateFiles, AccessControlType.Allow));
                logDirSec.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.Write, AccessControlType.Allow));

                logDirInfo.SetAccessControl(logDirSec);
            }
            catch (Exception e)
            {
                Console.WriteLine("ログディレクトリのAClを変更できません。\n" + e.ToString());

                goto END;
            }

            Console.WriteLine("処理完了");

            END:

            Console.ReadLine();
        }
    }
}

みたいな感じです。
実行環境で.NET2.0が使えるのであれば、VS2005での開発をおすすめします。

引用返信 編集キー/
■1768 / inTopicNo.11)  Re[3]: ユーザー権限のログファイル作成について
□投稿者/ 渋木宏明(ひどり) (145回)-(2007/03/05(Mon) 20:18:11)
渋木宏明(ひどり) さんの Web サイト
> >その仕様を変える。
> >My Documents とか、Application.UserAppDataPath とかに出力するが吉。
>
> ごもっとも。しかし上司からできるか調べてといわれているので、
> こんな方法がありますけど、危険なので仕様変えませんか?
> などといいたいんです。

ならばこそ、「デフォルトで一般ユーザは ProgramFiles フォルダ配下への書き込み権が無いので出来ません」で十分説明できてると思いますけど?
引用返信 編集キー/
■1776 / inTopicNo.12)  Re[4]: ユーザー権限のログファイル作成について
□投稿者/ Jitta (282回)-(2007/03/06(Tue) 07:29:38)
No1768 (渋木宏明(ひどり) さん) に返信
>>>その仕様を変える。
>>>My Documents とか、Application.UserAppDataPath とかに出力するが吉。
>>
>>ごもっとも。しかし上司からできるか調べてといわれているので、
>>こんな方法がありますけど、危険なので仕様変えませんか?
>>などといいたいんです。
>
> ならばこそ、「デフォルトで一般ユーザは ProgramFiles フォルダ配下への書き込み権が無いので出来ません」で十分説明できてると思いますけど?

プラス、ロゴ要件の仕様書とか。
VISTAで動かすと、“アカウントごとの”ログになりますよ、と。
引用返信 編集キー/
■1777 / inTopicNo.13)  Re[5]: ユーザー権限のログファイル作成について
□投稿者/ セイン (9回)-(2007/03/06(Tue) 09:57:41)
>渋木宏明さん
>「デフォルトで一般ユーザは ProgramFiles フォルダ配下への書き込み権が無いので出来ません」
なんと簡潔でまとまった説明。ありがとうございます。

>Jittaさん
>プラス、ロゴ要件の仕様書とか。
>VISTAで動かすと、“アカウントごとの”ログになりますよ、と。
ロゴ要件?勉強不足です。すいません。


マイドキュメント内でログを作成するほうが
ユーザーごとのログが残るので、便利ではないかということもあり、
マイドキュメント内ログ作成で行きます。

貴重なご意見とお時間いただきありがとうございます。
(ロゴ要件勉強しておきます。)
解決済み
引用返信 編集キー/
■1790 / inTopicNo.14)  Re[6]: ユーザー権限のログファイル作成について
□投稿者/ Jitta (283回)-(2007/03/06(Tue) 12:12:46)
No1777 (セイン さん) に返信
ハードコーディングしちゃダメよ。XPとVISTAでパスが違うから
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -