2011-06-28 13 views
3

リモートWindowsマシン上の一時フォルダの場所を特定する方法を教えてください。リモートウィンドウ上の一時フォルダの場所

私は事前に

objSWbemLocator.ConnectServer(strComputer, _ 
           "root\cimv2", _ 
           strUser, _ 
           strPass) 

感謝を使用して接続することができています!心の中で

答えて

2

ベアリングすべてのローカルまたはドメインユーザーが自分のパスを持つことができ、あなたがWin32_Environmentクラス照会できます

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
Set objSWbemLocator = objSWbemLocator.ConnectServer(strComputer, _ 
    "root\CIMV2", _ 
    strUser, _ 
    strPass) 

Set colItems =objSWbemLocator.ExecQuery("SELECT * FROM Win32_Environment WHERE Name='TEMP' AND SystemVariable=FALSE AND username='machine_or_domain_name\\user_whos_temp_path_you_require'", "WQL", 48) 

For Each objItem In colItems 
    msgbox objItem.VariableValue 
Next 
+0

アレックス、同じ方法で私の%USERPROFILE%変数が得られない理由は何ですか?私は 'Name = 'TEMP'を' Name = 'USERPROFILE'に変更しました。 あなたのコードを使って、 "%USERPROFILE%\ Local Settings \ Temp"を取得できました。 – kishkin

+0

はい、展開されておらず、Win32_Environment経由で利用できるようにも見えません。どうしますか? "%USERPROFILE%"はターゲットマシンで有効です –

+0

絶対パスが必要かもしれません。まだ分​​からない。ただ興味があるだけ。 – kishkin

0

を、私は非常によく分からないが、あなたは「%TEMP%」変数を使用して試してみましたリモートフォルダの文字列として?私は、Windowsが自動的にマシン上の設定された一時フォルダにそれを展開すると思う。

+0

私はそれがローカルで解釈されると思います。私は絶対的な道が必要です。とにかくありがとう。 – kishkin

+0

いいえ。これはサーバー接続なので、フォルダ文字列はリモートでも解釈される可能性があります。また、フォルダに接続すると、現在の作業ディレクトリを正しく取得できますか? – Sterex

+0

「あなたはフォルダに接続しています」という意味はどうですか? – kishkin

関連する問題