![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
質問の仕方が良くなかったので、質問タイトル並びに質問内容を変更します(古い方の質問は24時間経過後に削除します)。
http://oshiete1.goo.ne.jp/qa4323599.html
VBSにて
Set WshShell = Wscript.CreateObject("WScript.Shell")
UserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
とする事でログイン名を取得出来る事は分かったのですが、プログラムの実行をATコマンドで行った場合、USERNAMEがSYSTEMに変更されてしまうようで困っています。
プログラムの実行をATコマンドで行った場合でも問題なくログイン名を取得出来る方法か、もしくは一日100回平日繰り返しのタスク実行をUSERNAMEを変更せずに実行出来る方法があれば教えて頂けませんでしょうか?
No.5ベストアンサー
- 回答日時:
どうもタスクから ログオンユーザー名を取得するのは難しそうです
WMIにしても『SYSTEM』または特定のユーザー名でしか取得できないようです
Windowsのコントロールパネル > タスクを開いて
詳細設定 > ATサービスを実行するアカウント
でタスクを実行するアカウントの設定は可能ですが
ログオンしているユーザーアカウントとは無関係になってしまいます
WMIのScriptコードは
dim locator, Service, CsSet, Cs
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
Set CsSet = Service.ExecQuery("Select * From Win32_ComputerSystem")
For Each Cs In CsSet
WScript.Echo Cs.UserName
Next
といった具合でよさそうです
ひとまず自宅のパソコンでは意図した通りの動作をしました!どうもありがとうございます。
ただ、多分大丈夫だと思いますが、実際にプログラムを実行するパソコンでも確認しておきたいので、ひとまず連休明けまで回答締め切りを保留させて下さい。
No.4
- 回答日時:
この回答への補足
すみません。WMIというもの自体がよく分かっていないのですが、これはVBのソースでは無いでしょうか?出来ればVBSのソースを教えて頂きたいのですが・・・。
補足日時:2008/09/14 06:19回答頂きありがとうございます。また分かりにくい質問の仕方をしてしまい申し訳ございませんでした。質問の経緯としては以下の流れです。
(1)当初、VBSにて10分置きに100回処理を行うプログラムを作成し、それをタスクで平日繰り返し実行させようと思っていた
(2)しかし、数十台あるPCにタスクの設定を行うのが面倒であり、かつタスクでVBSを実行した場合、1度誰かがログアウトするとその日の処理が終わってしまう事が判明
(3)そこで、(1)のプログラムを1回だけ処理を行うプログラムに修正し、そのプログラムをATコマンドにて繰り返し処理を行うようなBATファイルを作成
(4)しかしその場合、ATコマンドを実行する際は誰がログインしていようと環境変数USERNAMEがSYSTEMに切り替わる事が判明
連休明けに試してみます。
No.3
- 回答日時:
No2です。
古いほうの質問を後から見ました。
やりたいことは、ATコマンドで動いたプログラムで、
デスクトップでログオンしているユーザがいるかを判断し
いればそのユーザ名を知りたいのですね。
失礼しました。
No.2
- 回答日時:
ATコマンドで動いているプログラムはSYSTEMのアカウントで
動いているから、USERNAMEはSYSTEMになると思います。
ユーザ名を指定したかったら、ATコマンドではなくタスクで
アカウントを指定すればいいのではないでしょうか。
No.1
- 回答日時:
これって 環境変数のUSERNAMEが『System』に変更された って事でしょうか?
Set WshNetwork = WScrpt.CreateObject("WScript.Network")
UserName = WshNetwork.UserName
で取得してみてはいかがでしょう
ローカルでログオンしているユーザー名ですよね …
この回答への補足
ひとまず自宅のPCで試してみましたが、やはりこの場合もVBSを直接叩いた場合は正常に動作するものの、ATコマンドで実行すると『System』になってしまうようです。。
補足日時:2008/09/14 06:16お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- その他(コンピューター・テクノロジー) (コマンドプロンプト)コマンドプロンプトのactiveについて 2 2022/07/16 17:21
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- PHP php エラー 3 2022/11/18 23:32
- PHP php エラー 2 2022/10/23 16:43
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- その他(車) 車検証の住所変更遅延してしまった場合 3 2022/05/08 08:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タスク、プログラム実行後に自...
-
バッチファイルで、プログラム...
-
タスクスケジューラからショー...
-
XCOPYでネットワーク越しにコピ...
-
Androidアルバムの画像を消去で...
-
フォルダの並び替えの項目を固...
-
Windowsフォルダ内のファイルと...
-
キャラクターのマウスポインタ
-
ドナルドウズを消す。
-
拡張子はなぜ、大文字と小文字...
-
LAME.EXE をダウンロードしたい...
-
ユーザーファイルのAppDa...
-
foobar2000のcueファイルの使い...
-
SDカードをパソコンに落とす...
-
VBAでネットワークコンピュータ...
-
シンボリックリンクが作れませ...
-
Excelで時給計算、10:30時間を...
-
アメブロ 写真の削除
-
iPhoneのメモ帳が重いです。メ...
-
パソコンからICレコーダーにデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XCOPYでネットワーク越しにコピ...
-
タスクスケジューラからショー...
-
eclipse の TasksにTODO が出ない
-
batファイルをアンダグラウンド...
-
タスクの相関図のわかりやすい...
-
タスクマネージャーの状態の取...
-
一定間隔でメール送信
-
cgiを使ったページが表示さ...
-
バッチファイルで、プログラム...
-
リエントラント関数
-
ログイン前にタスクにて実行し...
-
username以外でログイン名を知...
-
タスクやプロセス管理について
-
UACの権限昇格の確認ダイアログ...
-
バッチファイルからメール作成...
-
常駐PGの作成方法って?
-
VisualStudioで静的コードチェ...
-
実行中のSendkeysのVBSを途中で...
-
Vbscriptでアプリ(ソフト)など,...
-
Apache2のインストールが正常に...
おすすめ情報