プロが教えるわが家の防犯対策術!

お世話になります。
 
DOSコマンドの"QUERY SESSION"で得たセッション情報を元に、
処理を行いたいと考えております。
 
そこでVB2010にて下記のプログラムを試したのですが、肝心の"QUERY SESSION"が
 
『操作可能なプログラム(中略)として認識されていません。』として実行されません。
 
---------------------------------------------------------
        '--Processオブジェクトを作成
        Dim pr As New System.Diagnostics.Process
        pr.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
        p.StartInfo.UseShellExecute = False
        p.StartInfo.RedirectStandardOutput = True
        p.StartInfo.RedirectStandardInput = False
 
        'コマンドラインを指定
        pr.StartInfo.Arguments = "/c QUERY SESSION"  '<--------問題個所?
 
        pr.Start()
 
        '出力を読み取る
        Dim results As String = pr.StandardOutput.ReadToEnd()
 
        pr.WaitForExit()
        pr.Close()
 
---------------------------------------------------------
上記のコマンドラインの部分を、
        pr.StartInfo.Arguments = "/c ipconfig"
など他のDOSコマンドに変えると正常に動作するのですが、
 
例えば下記の様に別表現でQuery sessionを指定しても同様のエラーが返されるばかりです。
        pr.StartInfo.Arguments = "C:\windows\System32\qwinsta.exe"
 
何が原因となっているのかも分からず困っております。
 
どうか、お知恵をお貸しください。宜しくお願い致します。

A 回答 (2件)

よく考えてみると、コマンドプロンプトを介さずに直接qwinsta.exeを叩けばいいような……



'---------------------------------------------------------
'--Processオブジェクトを作成
Dim pr As New System.Diagnostics.Process
pr.StartInfo.FileName = "C:\windows\system32\qwinsta.exe"
pr.StartInfo.UseShellExecute = False
pr.StartInfo.RedirectStandardOutput = True
pr.StartInfo.RedirectStandardInput = False

pr.Start()

'出力を読み取る
Dim results As String = pr.StandardOutput.ReadToEnd()

Console.WriteLine(results)
pr.WaitForExit()
pr.Close()
'---------------------------------------------------------

この回答への補足

ありがとうございます。

ただこちらのWin7PCではqwinsta.exeの直接起動ができません。上記のソースを実行しても『指定されたファイルが見つかりません。』とエラーになります。

今のところ私のPCにてqwinsta.exeを実行するには
コマンドプロンプトにて手動でコマンド入力する以外ないようです・・・。

補足日時:2013/09/15 23:15
    • good
    • 0

VB2008×Win7で試したところ正常に動作しました。


(XPだとqwinstaでないとダメですが)

コマンドプロンプト上ではQUERY SESSIONは動作しますか?

この回答への補足

御回答ありがとうございます。
 
 
コマンドプロンプト上でのQUERY SESSIONコマンドは正常に動作しております。
 
開発に用いているPCはWin7なのですが、他のPCで実行させたところ、問題なく
動作いたしました。(ちなみにWindows serverです)

OSの影響かと考えたのですが、そうではないようですね。

補足日時:2013/09/04 15:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!