|
分類:[VB.NET/VB2005 以降]
こんにちは 開発環境は、Visual Studio2010です。 言語は、visual basicです。
Windowsサービスにてプログラムを作っています。 単純なプログラムで、サービス開始時に、ログインユーザー名と時刻をSQLに書き込んでいます。 シャットダウン時にも、同じようにSQLに書き込みます。
プログラム自体は完成したのですが、サービスの実行は、ネットワークにアクセスする必要があるため、AD上に専用に作成したアカウントとしています。 本来であれば、Windowsにログインしているユーザーで良いのですが、半年に一度、パスワードを変更しているため、パスワードが変更されてサービスが起動しないのは困るので、パスワードの変更をしない専用アカウントを作成し、そのユーザーでサービスを起動しています。
ここで問題なのですが、ユーザー名を My.User.Name System.Environment.UserName などで取得すると、Windowsにログインしているユーザー名ではなく、サービスを起動しているユーザー名を取得してしまいます。 SystemInformation.UserName で取得すればいいかなと思ったのですが、Windowsサービスの開発では使えないようです・・・
いろいろ検索しましたが、良い方法が見つかりませんでした。 何か良い方法をご存じの方はいらっしゃらないでしょうか・・・
|