UNCパスはサポートされませんの回避方法

このQ&Aのポイント
  • UNCパスはサポートされませんというエラーメッセージが表示される問題についての質問です。
  • VBSファイルをネットワークファイルサーバー上で実行する際にUNCパスエラーが発生しています。
  • UNCパスエラーの原因と解決策について教えてください。
回答を見る
  • ベストアンサー

「UNCパスはサポートされません」の回避方法

VBSを作成していますが、下記のようにエラーとなります。 このVBSファイルは、ネットワークファイルサーバー上に置き、実行しています。 自分のパソコンのディスク内にVBSファイルを置き、実行すると、エラーにはなりません。 サーバー上にファイルを置く理由は、社内のどのパソコンからでも実行出来るようにしたいからです。 ネットワークのフォルダを「P」ドライブへ割り当てています。 しかし、\\Comdoc\work\My Documents\SETUP\win2000とサーバー名称を指定しても同じエラーが返されます。 「UNCパスはサポートされません」とありますが、どのように書き直したら良いのかその方法がありましたら教えてください。 Windows2000です。 --エラー内容-- 現在のディレクトリのパスとして '\\Comdoc\work\My Documents\SETUP\win2000' で CMD.EXE を開始しました。UNC パスはサポートされません。Windows ディレクトリを使用します。 --プログラム内容-- Dim WSH Set WSH = WScript.CreateObject("WScript.Shell") prnad prnabat Sub prnad() exeStr = "regsvr32 /s C:\setup\netmgmt\prnadmin.dll" set oExec = WSH.exec(exeStr) Do While oExec.Status = 0 WScript.Sleep 100 Loop End Sub Sub prnabat() spath = """P:\My Documents\SETUP\win2000""" WSH.Run "cmd /k spath & addprn.bat" End Sub

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

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

「UNCパスはサポートされません」というのは、スクリプトのあるUNCパスがカレントディレクトリになってしまっているからだと思います。 ですので、スクリプトのショートカットを作って作業フォルダを例えば%windir%などと指定して、ショートカットを実行するようにすれば回避できると思います。 話は変わりますが、ここ変じゃないですか? WSH.Run "cmd /k spath & addprn.bat"

332dokin
質問者

お礼

早速、ショートカットを作って実行してみました。 一応、やりたいことは出来ました。 但し、プロンプトを見てみると、「UNCパスはサポートされません」て途中でやっぱり出ていました。 以前は、「UNCパスはサポートされません」で、止まってしまっていたので、最後まで動いたのでいいのかなぁと思っていますが・・・^^; ダメですかねぇ^^;; WSH.Run "cmd /k spath & addprn.bat" ↑ これ、変ですか?(笑) ショートカットを作成したことにより、次のように変えたのですが、やっぱり変なのでしょうか? WSH.Run "cmd /k C:\setup\addprn.lnk" 実はVBSを始めたばかりで、はっきり言ってよくわかってないのです(汗) 間違った使い方してますか? ・・・こっそり、どこが誤っているのか、教えてください。 本当は、バッチファイルではなく、VBSで全部記述したかったのですが、 どうしてもわからなくて、それでやむなく、バッチファイルにしてしまいました~。 そもそも、そこがいけないのかも・・・(苦)

その他の回答 (2)

回答No.3

ANo.#1の補足です。 ショートカットを作るのは、スクリプト、そちらで言うところのVBSファイルの方です。バッチファイルではありません。 WSH.Run "cmd /k spath & addprn.bat" この行が変だといったのは、本当はこうしたかったのではないかとと思ったからです。 WSH.Run "cmd /k " & spath & "\addprn.bat"

332dokin
質問者

お礼

masahiro99さん、わざわざ投稿していただきありがとうございます。 すっごく、嬉しいです♪ さてさて、私の説明の仕方が悪く、誤解させてしまったのかもしれません。 ショートカットは、スクリプト(VBS)で作成しました。 これは、大丈夫です。 「addprn.bat」ファイルがあります。 このファイルの中身の記述をスクリプト(VBS)で書きたかったのですが、どーしても出来ず、わからず、やむなく、batファイルにして、スクリプト(VBS)から呼び出しているのです。 私の言っていること、通じていますか? 説明が下手ですいませんm(__)m WSH.Run "cmd /k " & spath & "\addprn.bat" そこを、正しくは上記のように書くのですね。 ありがとうございます! 他にも書き方を謝っているかもしれない。見直さなければ・・・^^; 貴重なお時間を割いていただき、本当にありがとうございました。感謝感謝でいっぱいで~す\(^o^)/

回答No.2

ホスト名の解決が出来ていないのでは? IP固定ならじか打ちとか(w

関連するQ&A

  • VBSCRIPTでcmd命令(dir)を実行させて

    パスはcsvファイルで読みこんで、vbs上で Set Shell = CreateObject("WScript.Shell") Shell.Run "cmd /C ""dir \¥xxx\xxxxx\xxxxx" を実行させてアクセスできなかったパスがぞんざいするならエラーで返して続いて実行してほしいです。 それで最後にログにエラー情報を書く処理をおこないたいです。問題はcmdだとecho %errorlevel%これを使えば すぐにこげたことを1か0で返してくれますが vbs上でも可能ですか?

  • cscriptで文字変数 に ” を入力するには

    お世話になります。 早速ですが、質問があります。 c:\test\test.exe -path "D:\data" -file "aaa.txt" -flag a というコマンドをcscript のプログラムから起動したいのですが、コマンド文字列を文字列変数に代入する方法 がありましたら、教えてください。 Cscript test.vbs %1 ======================================= Dim WshShell Dim oExec Dim Cmd Dim File File = WScript.Arguments(0) Cmd = "c:\test\test.exe -path "D:\data" -file "a.out" -flag " & File                     ↑↑↑↑                  これができません? Set WshShell = CreateObject("WScript.Shell") set oExec = WshShell.Exec(Cmd) Do While oExec.Status = 0 Wscript.Sleep 100 Loop "も文字列に入力するには、どのようにすればいいでしょうか? ご意見、アドバイスよろしくお願いいたします。

  • この方法で固まるのを回避できる?

    アクセスにコマンドボタンをつけて、ボタンを押すとFileSystemObjectでファイル操作をするのですが その間アクセスがフリーズというか、実行中のため動くことができません。 このような場合、 VBSで同じ操作を作り、アクセスのコマンドボタンを押下→ Shell "WScript.exe で、vbs実行 をした場合、 アクセスにコマンドボタンを押してもアクセスは固まらずに処理が実行できるのでしょうか?

  • WSH(Excel出力)の同時実行数の制限

    WSHでExcel出力処理を行っているのですが、 同時実行数が30を超えると、Excelが不安定になるようで、  Set objBook = objExcelApp.Workbooks.Open("C:\xxx\zzz.xls", 0, False) の行で、  エラー:WorkbooksクラスのOpenプロパティを取得できません。  コード:800A03EC  ソース: Microsost Office Excel というエラーが発生して異常終了してしまうのです。 同時実行数の上限など、また、それ以外の原因について、 ご存知の方がいらっしゃいましたら、コメント頂ければ幸いです。 ちなみに、同時実行数が30未満の場合は、正常終了するので、 コードの内容には、問題ないと思っております。 Excelのバージョンは、2003で、ファイルの構成は、 wsfファイル(yyy.wsf) vbsファイル(wsh_excel.vbs)の2ファイルを配置し、 以下のような形で、実行しています。 Set WshShell = Server.CreateObject("WScript.Shell") Set objBatch = WshShell.Exec(strCmd)  ※ strCmdには、以下のような値が設定されます。     cmd.exe wscript.exe "C:\xxx\yyy.wsf" ■ yyy.wsfの内容 <?xml version="1.0" encoding="shift_jis" ?> <job id="zzz"> <script language="VBScript" src="wsh_excel.vbs"/> <script language="VBScript">  Call Excel_Main() </script> </job> ■ wsh_excel.vbsの内容(抜粋) Sub Excel_Main()  Set objExcelApp = Wscript.CreateObject("Excel.Application")  Set objBook = objExcelApp.Workbooks.Open("C:\xxx\zzz.xls", 0, False)     :     : End Sub

  • VBSでエラーとなってしまいます

    VBS(WSH)超初心者です。どうぞよろしくご教授ください。 Pcomm(AS400クライアント接続ソフト)のサイレントインストールを、VBS(WSH)でやりたいと思っていますがスクリプトエラーとなってしまいます。 <質問内容> 下記スクリプトを実行すると、PcommPath=の行で「ステートメントの末尾が不正です」となってしまいます。 多分、ダブルクォーテーションの使い方が間違ってると思うのですが、色々調べてみましたがわかりません。 どなたかご教授くださいませ。 なお、(VBSではなく)「ファイル名を指定して実行」からなら問題なくサイレントインストールできます (コメントアウトしてる D:\install・・・/qb"部分を実行) どうぞよろしくお願いいたします。 [スクリプト] Option Explicit Dim objWshShell,objWshScriptExec,PcommPath 'D:\install\pcomm\setup.exe /s /v"USEINI=\"C:\Pcomm.ini\" /qb" '上記中のPcom.iniはカストマイズ用のファイル。 ’上記で、「ファイル名を指定して実行」からなら問題なくサイレントインストールされます PcommPath="D:\install\pcomm\setup.exe /s /v"USEINI=\"C:\Pcomm.ini\" /qb"" Set objWshShell=WScript.CreateObject("WScript.Shell") Set objWshScriptExec=objWshShell.Exec(PcommPath) (以下略)

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • ExcelVBA 他のアプリケーションを開く2

    こんにちは! これは、セルに書いてあるファイルの絶対パスを読み取り、そのファイルを開くというマクロです(前に質問した時の回答抜粋です) Set WSH = CreateObject("WScript.Shell") If TypeName(Target) = "Range" Then flName = Target.Value WSH.Run flName ・・・(1) End If (1)の部分で、ファイルの絶対パスに空白が含まれる場合、エラーになって開けません・・・(Documents and Settingsのように) 回避する方法はないでしょうか?

  • 【VBScript】ファイルのPathを表示させる

    初歩ですが、VBScriptの処理で質問させてください。 以下の処理を実現したいと思っています。 ・WScript.Arguments.vbsにファイルをドラッグした際に、 ファイルのPathを表示する ・2つ以上のファイルがドラックされた場合は、 アラームを上げて処理を中断する [WScript.Arguments.vbs] Dim Inti Dim oParam(1) for Inti=0 to 1 Set oParam(Inti) = WScript.Arguments MsgBox oParam(Inti) next このコードですが、他に何を追加すればよろしいでしょうか。 恐れ入りますが、回答いただければ幸いです。

  • VBSについて教えてください。

    VBSを勉強したくて http://www.whitire.com/vbs/tips0001.html のサンプルコードを見たのですが Option Explicit WScript.Echo "Hello VBScript World" はどこに張り付ければいいのでしょうか? エクセルVBAの標準モジュールに Sub test() WScript.Echo "Hello VBScript World" End Sub として実行してみましたが WScriptの部分がコンパイルエラーになってしまいました。

  • 緊急です。Wscriptで・・・

    IIS上にあるASPファイルからWscriptを呼び出して、VBで作成したEXEを実行させたいのですが、上手くいきません。コマンドプロンプトから実行させると上手くいくのですが、どうしてでしょうか?ASPはIIS上にあり、test.exeを実行すると別サーバにファイル(例 \\サーバ名\bbb\OK.txt)を作成するといったプログラムです。UNCパス指定だからでしょうか?よろしくお願いします。 ASPファイル内容--------- <%@ language="VBScript"%> <html> <body> テストASP <% Dim WshShell Set WshShell = Server.CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\aaa\test.exe" , 0 , false Set WshShell = Nothing %> </body> </html>

専門家に質問してみよう