「UNCパスはサポートされていません」というメッセージなしでネットワーク共有からバッチファイルを実行するにはどうすればよいですか?


87

ネットワーク共有からバッチファイルを実行しようとしていますが、「UNCパスはサポートされていません。デフォルトでWindowsディレクトリになります。」というメッセージが表示され続けます。バッチファイルはにあります\\Server\Soft\WPX5\install.bat。管理者としてログインしているときに、Windows 7デスクトップから、\\Server\Soft\WP15\install.batに移動してダブルクリックすると、「UNCパスはサポートされていません」というメッセージが表示されます。メッセージ。マッピングドライブが機能しないという提案をオンラインで見つけましたが、シンボリックリンクを使用するとこの問題は解決しますが、シンボリックリンクは機能しませんでした。以下は私のバッチファイルの内容です。私がやろうとしていることを達成するのに役立つ助けをいただければ幸いです。基本的に、からバッチファイルを実行できるようにしたいです\\Server\Soft\WP15\install.bat

バッチファイルの内容

mklink /d %userprofile%\Desktop\WP15 \\server\soft\WP15
\\server\soft\WP15\setup.exe
robocopy.exe "\\server\soft\WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s \\server\soft\WPX5\Custom\Migrate.reg

また、インストールの完了後にシンボリックリンクを削除するにはどうすればよいですか?


2
数年後、しかし他の誰かに役立つかもしれません:シンボリックリンクを作成した後、なぜ元のパスを参照し続けるのですか?シンボリックリンクのポイントは、代わりに使用できるローカルパスを提供することです。例えば、「%USERPROFILE%\デスクトップ\ WP15 \ setup.exeを言う、 "サーバー\ソフト\ WP15 \ setup.exeを\\"言わない
ToolmakerSteve

真剣にこれはServerFault.comの質問です
Junchen Liu 2015

回答:


137

PUSHDとPOPDがあなたのケースに役立つはずです。

@echo off
:: Create a temporary drive letter mapped to your UNC root location
:: and effectively CD to that location
pushd \\server\soft

:: Do your work
WP15\setup.exe
robocopy.exe "WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s WPX5\Custom\Migrate.reg

:: Remove the temporary drive letter and return to your original location
popd

PUSHD /?詳細については、コマンドラインから入力してください。


2
迅速な対応と提案をありがとうございます。私はあなたの提案がうまくいくことを望んでいましたが、残念ながらそれは私にとってはうまくいきませんでした。同じメッセージが表示されました:「... UNCパスはサポートされていません。デフォルトではWindowsディレクトリになっています。」また、管理者グループのメンバーとしてログインしているときにファイルを実行したにもかかわらず、[ユーザーアカウント制御]ダイアログボックスで[はい]または[いいえ]をクリックするようになりました。
シチュー2012年

26
@Stew .batファイルの先頭に次のように入力します。pushd %~dp0これにより、ディレクトリがbatファイルを含むディレクトリに変更されます。警告は引き続き出力されますが、通常どおりに機能するはずです。batファイルが他の場所で '%〜dp0'を使用している場合は、問題がある可能性があります。その場合、%~dp0batファイルの先頭で '//'で始まるかどうかを検出でき、そうである場合は、をpushd実行してから、もう一度batファイル、次にgoto :EOF。これにより、新しくマップされたディレクトリで実行されます。
Grant Peters

cmdはリモートコンピューターまたはローカルで実行されますか?
Dingxin Xu

@ DingxinXu-リモートコードはローカルで実行されます。リモートコンピューターでコードを実行する場合は、PsExecのようなものが必要です。
dbenham 2013年

3
@ balki-はい、リモートコマンドを別のスクリプトに入れます。の後にPUSHD、を介して2番目のスクリプトを実行し、その後に。CMD /Cを続けますPOPDCMD /CスクリプトがCTRL-Cで終了した場合でも、スクリプトが終了すると、制御は親スクリプトに戻ります。
dbenham 2014

29

このセキュリティチェックを回避するためのレジストリ設定があります(ただし、自己責任で使用してください)。

レジストリパスの下

   HKEY_CURRENT_USER
     \ Software
       \ Microsoft
         \ Command Processor

値DisableUNCCheckREG_DWORDを追加し、値を0 x 1(16進数)に設定します。

注: Windows 10バージョン1803では、設定はHKLMの下にあるようです:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor


1
理由はわかりませんが、次のパスの下に「コマンドプロセッサ」フォルダが見つかりました:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor
aoh

おかげで、それは役に立ちます。しかし、Windows 10 1803では、@ aohが指摘したように、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ CommandProcessorです。
エドウィンイップ2018

その後、回答を更新します。精密に感謝
Vinzz

26

cls最良の答えだと思います。誰もが見ることができる前に、UNCメッセージを非表示にします。@pushd %~dp0スクリプトを開いて場所を1つのステップでマップするように見えるように、直後と組み合わせて、それ以上のUNCの問題を防ぎました。

cls
@pushd %~dp0
:::::::::::::::::::
:: your script code here
:::::::::::::::::::
@popd

ノート:

pushd 作業ディレクトリを、新しくマップされたドライブのスクリプトの場所に変更します。

popd 最後に、マップされたドライブをクリーンアップします。


4
popd最後にが必要でした(Windows 7)。そうしないと、ウィンドウを閉じた後、マップされたドライブが動かなくなりました。
パトリック

1
正常に動作します。ありがとうございました。
jonas_Hess 2016

1
Windows10で動作するはずです。それでも「コマンドプロンプト」です。
グラレン

11

基本的に、そのメッセージを見ずにUNCパスから実行することはできません。

私が通常行うことはCLS、スクリプトの先頭にを置くだけなので、そのメッセージを見る必要はありません。次に、使用する必要のあるネットワーク共有内のファイルへのフルパスを指定します。


1
ありがとうございました。他に解決策がない場合は、これを最後のオプションとして試します。
シチュー2012年

@jameslrの回答は機能しますが、私が通常行うよりも多くの作業(入力)が必要です。したがって、エラーを取り除くために画面をクリアするだけで十分です。:)
アポリア2012年

8

Windowsエクスプローラーでサーバー共有を参照し、ダブルクリックしてバッチファイルを起動できるようにする必要がありました。@dbenhamは、私のシナリオのより簡単な解決策に私を導きました(popd心配することなく):

:: Capture UNC or mapped-drive path script was launched from
set NetPath=%~dp0

:: Assumes that setup.exe is in the same UNC path
%NetPath%setup.exe

:: Note that NetPath has a trailing backslash ("\")
robocopy.exe "%NetPath%Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s %NetPath%..\WPX5\Custom\Migrate.reg

:: I am not sure if WPX5 was typo, so use ".." for parent directory
set NetPath=
pause

@ peter-mortensen、最初の単語を大文字にするためにスクリプト4xのコメントを編集しましたか?編集する価値がありますか?最後にピリオドを入れて文にしてみませんか?どうですか:これは単なるコメントなので、理解を明確にするために、注釈と変数(または強調)を除いて、コメントの最初の単語で大文字を意図的に使用しません。
JayRO-GreyBeard 2016

4

エクスプローラーから直接バッチを起動する代わりに、バッチへのショートカットを作成し、ショートカットのプロパティで開始ディレクトリを%TEMP%などのローカルパスに設定します。

シンボリックリンクを削除するには、rmdirコマンドを使用します。


1
これは機能しますが、ショートカットから起動する場合に限ります。コマンドラインから実行する場合や、別のバッチファイルから呼び出す場合は役に立ちません。
アポリア2012年

2
別のバッチまたはコマンドラインから呼び出す場合は、次のように呼び出すことができます。start/ d%TEMP%\\ Server \ Soft \ WP15 \ install.bat
jameslr 2012年

2

最近、Windows7のネットワーク共有ドライブ上のバッチファイルで作業しているときに同じ問題が発生しました。

私のために働いた別の方法は、Windowsエクスプローラーを介してサーバーをドライブにマップすることでした:ツール->ネットワークドライブのマップ。\ yourserverへのドライブ文字とフォルダパスを指定します。私はネットワーク共有を使用しているので、ネットワーク共有にマッピングすると便利になり、「UNCパスはサポートされていません」というエラーが解決されました。


2

私の状況は少し違います。起動時にバッチファイルを実行して、最新バージョンの内部ビジネスアプリケーションを配布しています。

この状況では、次の文字列でWindowsレジストリ実行キーを使用しています

cmd /c copy \\serverName\SharedFolder\startup7.bat %USERPROFILE% & %USERPROFILE%\startup7.bat

これにより、起動時に2つのコマンドが正しい順序で実行されます。まず、バッチファイルをユーザーがアクセス許可のあるディレクトリにローカルにコピーします。次に、同じバッチファイルを実行します。ローカルディレクトリc:\ InternalAppsを作成し、ネットワークからすべてのファイルをコピーできます。

これはおそらく元の投稿者の質問を解決するには遅すぎますが、他の誰かを助けるかもしれません。


1

これは私が使用したRegKeyです:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

0

私のenvwindows102019 ltsバージョンと私はこの2つのbinrayデータを追加し、このエラーを修正します

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command ProcessorDisableUNCCheck値 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor 1DisableUNCCheck値1


0

これは非常に古いスレッドですが、私はまだWindows7を使用しています:-)

誰も考慮していないように思われる点が1つあります。これは、おそらくWindows10ユーザーにも役立つでしょう。

コマンド拡張機能が有効になっている場合、PUSHDコマンドは、通常のドライブ文字とパスに加えてネットワークパスを受け入れます。

したがって、PUSHDを使用する場合は、明白な(そして最も単純な)答えは、バッチスクリプトでコマンド拡張を有効にすることかもしれません。少なくとも、これにより、ネットワークパスを使用してPUSHDを使用する際に発生する可能性のある問題を減らすことができます。


-1

Windowsレジストリを編集することは価値がなく、安全でもありませんMap network drive。ローカルドライブの1つからロードされているかのように、ネットワーク共有を使用してロードします。

ここに画像の説明を入力してください


1
これはカイの答えとどう違うのですか?
SomethingDark

私はそれがtbhであることに気づいていませんでした、多分スクリーンショットは違いを生む千の言葉の価値がありますか?
AdhamSabry19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.