net useで接続したファイルをrunasでxcopyできない

このQ&Aのポイント
  • VBScriptでnet useで接続した先のファイルを管理者権限でxcopyでコピーする方法について質問します。
  • net useでネットワークに接続はできるが、runasを使用してxcopyでコピーすることができない現象に遭遇しています。
  • 環境はWindows XPとWindows 2000で、DOSコマンドでは成功していますが、VBScript内での実行ができません。お力添えをいただけると助かります。
回答を見る
  • ベストアンサー

net useで接続したファイルをrunasでxcopyできない

こんにちは。VBScriptに関する質問です。 net useで接続した先のファイルをローカルの同名ファイルに 管理者権限で(runasを使用)xcopyを利用してコピーしたいのですが ネットワークに接続はされるのですが、コピーができません。 ちなみに、ローカルからローカルでは成功しています。 ※下記のバッチを流した場合にエラーはでません。 ※ローカルからの変更点は、Call文を利用してる2行を追加したのと  xcopyの送り先をnet useで接続した先に変えただけです。 ※DOSコマンドで行った場合は成功しています。 環境:Windows XP and Windows 2000 Set WshShell = Wscript.CreateObject("WScript.Shell") Call WshShell.Run("net use l: \\DDD\** /user:DDD\[ログオンID] [ログオンPW]") Set WshEnv = WshShell.Environment("user") WshEnv("C:\TEST\b.txt") = "USER01" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:USER01 " + chr(34) + "xcopy l:\TEST\b.txt C:\TEST\b.txt /Y" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXXX") WshShell.SendKeys("{Enter}") Call WshShell.Run("net use l: /delete /Y") WshShell.SendKeys("exit") WshShell.SendKeys("{Enter}")  手詰まりになってしまい、困っています。 どなたか、お力添えをいただけると助かります。 よろしく、お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

ネットワークドライブの接続はアカウント毎個別に管理されています なのでrunas前に接続したドライブレターはrunas後には見えません 手っ取り早く解決するならネットワークドライブを利用せずUNCのままXCOPYに渡すことです

shimegi
質問者

お礼

お早い回答ありがとうございます。 返答が遅れてしまい、申し訳ありません。 プログラミング初心者なもので、よく分からないのですが・・・ UNCのままXCOPYを利用しても、接続先が見えないので成功しないのですが、 どのように利用したらよいのでしょうか?。。。 どうしても、ネットワーク上のパソコンに接続しないといけない 状況なのです。 お答えをいただければ、助かります。

関連するQ&A

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • Runasの指定について

    お世話になります、runasの使用時にパスの指定の仕方について教えてください。 以下のようにパスを指定し、Runas後にスクリプトを実行しようとしていますが、objexeccmdの部分で引っかかってしまい、先に進むことが出来ません。 お手数ですが、よろしくお願いいたします。 objExecCmd = \"runas /user:Bunseki \\\"cscript.exe \\\\server\\\\log.wsf\" \'実行パスを記入 Set WshShell = WScript.CreateObject(\"WScript.Shell\") WshShell.run objExecCmd, 1, true

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • jscriptの質問

    拡張子が「js」のファイルでWshShell.Runでサーバにアクセスできません。 var WshShell= new ActiveXObject("WScript.Shell"); WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat"); while(!WshShell.AppActivate("runas.exe")){ WScript.Sleep(100); } ・ ・ ・ WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名… を WshShell.Run("runas /user:ドメイン名\\administrator cmd にすると上手くいきました。 たぶん、「\\サーバ名」の「\」の部分がうまくいってないような気がします どなたかご教授お願いします。

  • WshShell.Runでサーバにアクセスできません。

    拡張子が「js」のファイルでWshShell.Runでサーバにアクセスできません。 var WshShell= new ActiveXObject("WScript.Shell"); WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat"); while(!WshShell.AppActivate("runas.exe")){ WScript.Sleep(100); } ・ ・ ・ どなたかご教授お願いします。

  • runasを利用してネットワーク上のデータをコピー

    プログラミング初心者で、何度実行してもエラーになってしまう ので、お力添えをお願いいたします。 ネットワーク上にあるコンピュータからデータを 持ってきて、ローカルにあるファイルを更新したいのです。 ネットワークから取ってくる方法は、net useでも、UNCでも 構いませんが、ネットワーク上のパソコンに入る際にログオン する必要があります。 データの更新方法は、xcopyを利用して、ネットワーク上のPCが 送り手で、ローカルが受け手になります。 (※送り手をローカルにセットして、実行した場合は成功しております。) runasの仕様がよく分かっておらず、runas以前に実行した net useが無効になるということなので、runas実行前に net useで接続を1回行い、runas実行時にはUNCを利用し、 実行するというものにしたのですが、うまくいきませんでした。 環境:WindowsXP,Windows2000 お力添えをお願いいたします。

  • VBScriptでXcopyしたいのですが

    こんにちは。 OSはWIN2K Proを使用しています。 WSHからXcopyを実行しようと思い 以下のように記述しました。 ********************************************** Option Explicit Dim WshShell Const Moto = "C:\Documents and Settings\user\デスクトップ\元" Const Saki = "C:\Documents and Settings\user\デスクトップ\先" Set WshShell = CreateObject("WScript.Shell") WshShell.Run "xcopy Moto Saki /e /c /i /q /h /k /y",0,true ********************************************** ですが、うまく動作しません(エラーはでませんがコピ ーされません)。 ダブルクォーテーションマークをいろいろ追加したり したのですがうまくいきません。 正しいスクリプトの記述とダブルクォーテーションの つけ方の規則など、どなたかご教授願います。

  • VBS runas実行時のパスワードを隠す方法について

    VBS runas実行時のパスワードを隠す方法について こんにちわ! いつもお世話になっております。 VBSでIPアドレスを変更するスクリプト(netshコマンドを実行する)を作成しました。 このコマンドを実行するためには管理者権限が必要なため、runasコマンド+SendKeys にて、自動的にパスワードを入力して実行するような形になっております。(下記) -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- shshell.Run "cmd.exe", 0 WshShell.Run "runas /user:%computername%\administrator ""コマンド""" WshShell.SendKeys("{Enter}") WScript.Sleep(1500) WshShell.AppActivate "C:\Windows\System32\runas.exe" WshShell.SendKeys("パスワード") WshShell.SendKeys("{Enter}") -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- [質問] このスクリプトのパスワードの部分を隠すまたは暗号化する方法を教えてください。 [背景] このスクリプトを作成者と使用者が違います。作成者は、管理者のパスワードを 把握していますが、使用者には管理者権限のパスワードを知られたくありません。 つまり、スクリプトを見れば分かってしまうという状況は避けたいのです。 [調査状況] ・ネットワーク上にパスワードを格納したテキスト等を置いておき、それを  読み取る。⇒これは、今回実行するスクリプトがIPアドレスを変更するもの  であるため、ネットワーク上の端末から情報を得ることができません。 ・タスクに登録する。⇒タスクに登録するために使用者のコンピュータ上に  スクリプトをおく必要があるため、これも不可です。 ・スクリプト自体を暗号化する。⇒最終手段として考えてはいますが、できれば  スクリプト内で処理を行いたいというのが現状です。(監督者の要望のため) [実行環境] ・Windows7 皆様、お忙しいとは思いますが、ご教授いただけると助かります。 以上 よろしくお願い致します。

  • WSH 日本語ファイル名の認識

    こんにちは、WSHを業務使おうと考えております。 まだ始めたばかりで、いろいろ調べてはみたのですが、検索方法が悪いのか解消方法が見つかりません。 以下のスクリプトにてメール作成を自動化しようとしておりますが、日本語のファイル名、件名に日本語を使うと文字化け?してしまい、思ったようにうまくいきません。 そもそもSendKeysを使っているのが悪いのでしょうか ご教授いただけないでしょうか?よろしくお願いいたします。 set WshShell = WScript.CreateObject("WScript.Shell") 'メーラー立ち上げ' WshShell.Run "MSIMN.EXE" WScript.Sleep 5000 '新規メール作成' WshShell.SendKeys "%{F}" WshShell.SendKeys "N" WshShell.SendKeys "M" 'ファイル添付' WshShell.SendKeys "%{I}" WshShell.SendKeys "A" WshShell.SendKeys "C:\業務週報.xls" WshShell.SendKeys "%{A}" WshShell.SendKeys "ITODPC02@gmail.com" WshShell.SendKeys "{TAB 2}" WshShell.SendKeys "業務週報送信" WshShell.SendKeys "{TAB 2}" WshShell.SendKeys "今週の業務週報を送信します。" WshShell.SendKeys "%{F}" WshShell.SendKeys "{E}" 'メーラー終了' WshShell.SendKeys "%{F4}"

専門家に質問してみよう