it-swarm.com.de

Wie kann ich die Batch-Datei über die Netzwerkfreigabe ohne die Meldung "UNC-Pfad wird nicht unterstützt" ausführen?

Ich versuche, eine Batchdatei von einer Netzwerkfreigabe aus auszuführen, erhalte jedoch die folgende Meldung: "UNC-Pfad wird nicht unterstützt. Standardmäßig Windows-Verzeichnis." Die Batchdatei befindet sich in \\Server\Soft\WPX5\install.bat. Wenn ich als Administrator angemeldet bin, navigiere ich von meinem Windows 7-Desktop zu \\Server\Soft\WP15\ und doppelklicke auf install.bat. Dann bekomme ich den "UNC-Pfad werden nicht unterstützt". Botschaft. Ich habe im Internet einige Vorschläge gefunden, die besagen, dass das Mapping-Laufwerk nicht funktioniert, aber die Verwendung eines symbolischen Links löst dieses Problem, aber der symbolische Link hat für mich nicht funktioniert. Im Folgenden finden Sie den Inhalt meiner Batch-Datei. Ich würde mich über jede Unterstützung freuen, die mir dabei helfen kann, das zu erreichen, was ich versuche. Grundsätzlich möchte ich die Batchdatei von \\Server\Soft\WP15\install.bat ausführen können.

Batchdatei Inhalt

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

Wie entferne ich außerdem den symbolischen Link, nachdem die Installation abgeschlossen ist?

68
Stew

PUSHD und POPD sollten in Ihrem Fall helfen.

@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

Geben Sie PUSHD /? in der Befehlszeile ein, um weitere Informationen zu erhalten.

121
dbenham

Es gibt eine Registrierungseinstellung , um diese Sicherheitsüberprüfung zu vermeiden (verwenden Sie sie jedoch auf eigene Gefahr):

Unter dem Registrierungspfad

HKEY_CURRENT_USER 
\Software 
\Microsoft 
\Befehlsprozessor 

fügen Sie den Wert DisableUNCCheck REG_DWORD hinzu und setzen Sie den Wert auf 0 x 1 (Verhexen).

Hinweis: Unter Windows 10 Version 1803 scheint die Einstellung unter HKLM zu liegen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

22
Vinzz

Ich glaube, cls ist die beste Antwort. Sie verbirgt die UNC-Nachricht, bevor sie jemand sehen kann. Ich kombinierte es mit einem @pushd %~dp0 direkt danach, so dass es so aussieht, als würde man das Skript öffnen und die Position in einem Schritt abbilden, wodurch weitere UNC-Probleme vermieden werden.

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

Anmerkungen:

pushd ändert Ihr Arbeitsverzeichnis in den Speicherort der Skripts auf dem neuen zugeordneten Laufwerk.

popd am Ende, um das zugeordnete Laufwerk aufzuräumen.

16
Grallen

Grundsätzlich können Sie es nicht von einem UNC-Pfad aus ausführen, ohne diese Nachricht zu sehen.

Normalerweise füge ich einfach eine CLS oben im Skript ein, damit ich diese Nachricht nicht sehen muss. Geben Sie anschließend den vollständigen Pfad zu den Dateien in der Netzwerkfreigabe an, die Sie verwenden müssen.

9
aphoria

Ich musste in der Lage sein, nur Windows Explorer durch die Serverfreigabe zu durchsuchen und dann die Batchdatei doppelt zu starten. @dbenham führte mich zu einer einfacheren Lösung für mein Szenario (ohne die popd-Sorgen):

:: 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
7
JayRO-GreyBeard

Anstatt den Stapel direkt vom Explorer aus zu starten, erstellen Sie eine Verknüpfung zum Stapel und legen Sie das Startverzeichnis in den Eigenschaften der Verknüpfung auf einen lokalen Pfad wie% TEMP% oder etwas anderes fest.

Um den symbolischen Link zu löschen, verwenden Sie den Befehl rmdir.

3
jameslr

Ich bin vor kurzem mit dem gleichen Problem konfrontiert, als ich mit einer Batchdatei auf einem Netzwerkfreigabe-Laufwerk in Windows 7 arbeitete.

Ein anderer Weg, der für mich funktionierte, bestand darin, den Server über Windows Explorer einem Laufwerk zuzuordnen: Extras -> Netzlaufwerk zuordnen. Vergeben Sie einen Laufwerkbuchstaben und einen Ordnerpfad zu\IhremServer. Da ich häufig mit der Netzwerkfreigabe arbeite, ist die Zuordnung durch die Netzwerkfreigabe komfortabler und es wurde der Fehler "UNC-Pfad werden nicht unterstützt" behoben. 

1
Kai

Meine Situation ist nur etwas anders. Ich führe beim Starten eine Batchdatei aus, um die neueste Version interner Geschäftsanwendungen zu verteilen. 

In dieser Situation verwende ich den Windows-Registrierungslaufschlüssel mit der folgenden Zeichenfolge 

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

Beim Start werden zwei Befehle in der richtigen Reihenfolge ausgeführt. Zuerst wird die Batchdatei lokal in ein Verzeichnis kopiert, für das der Benutzer die Berechtigung hat. Führen Sie dann dieselbe Batchdatei aus. Ich kann ein lokales Verzeichnis c:\InternalApps erstellen und alle Dateien aus dem Netzwerk kopieren. 

Dies ist wahrscheinlich zu spät, um die Frage des ursprünglichen Posters zu lösen, aber es kann jemand anderem helfen. 

1
James

Dies ist der RegKey, den ich verwendet habe:

Windows Registry Editor Version 5.00

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

Meine env windows10 2019 lts Version und ich füge diese beiden Binärdaten hinzu, um diesen Fehler zu beheben

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor DisableUNCCheck value 1 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor DisableUNCCheck value 1

0
Zhui Wang