supertux
Goto Top

Windows 10: CMD-Script Schleife mit Laufwerksbuchstaben

Hallo,

ich möchte mit folgender Schleife die Netzwerklaufwerke ermitteln und den Eintrag ProviderFlags hinzufügen.

for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i: REG ADD "HKCU\Network\%%i" /v "ProviderFlags" /t REG_DWORD /d "1" /f

Nur die Frage, wie kann ich die lokalen Laufwerksbuchstaben vom System abfragen und bekomme diese auch in der Schleife untern.
Die lokalen Laufwerksbuchstaben sollen wenn Sie bereits existieren in der HKCU\Network-Schleife ausgeschlossen werden., da hier
sonst ein Eintrag in HKCU\Network\Laufwerksbuchstaben gesetzt wird.

Klar, ich könnte die Schleife erst ab D oder E beginnen, aber das möchte ich nicht.

---
supertux

Content-Key: 608457

Url: https://administrator.de/contentid/608457

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: emeriks
emeriks 30.09.2020 aktualisiert um 08:44:32 Uhr
Goto Top
Hi,
wenn es denn Batch sein muss:
Mit
net use
bekommst Du alle verbundenen Laufwerke angezeigt. Das kann man dann sicher auch mit Batch auswerten.

E.

Edit:
Und mit meinen Mega-Batch-Kenntnissen verfeinert:
net use | find ":"  
Mitglied: 145916
145916 30.09.2020 aktualisiert um 09:55:07 Uhr
Goto Top
Dafür hat Windows eine WMI Klasse Namens Win32_MappedLogicalDisk und die lassen sich hervorragend per FOR-Loop durchlaufen, wenn man denn unbedingt noch auf 80er Jahre Batch setzen will
for /f "tokens=2 delims==" %%a in ('wmic path win32_MappedLogicalDisk get Name /value') do @echo %%a  
Mitglied: supertux
supertux 30.09.2020 aktualisiert um 11:19:45 Uhr
Goto Top
Beim testen ist mir aufgefallen, die Lösung mit wmic path win32_MappedLogicalDisk get Name /value
funktioniert nur, wenn die Laufwerke gemappt sind.

Die Lösung von emeriks zeigt auch nicht gemappt Laufwerke an, nur weis ich nicht wie man so eine Schleife für
net use | find "." in Verbindung mit REG ADD "HKCU\Network\%%i" /v "ProviderFlags" /t REG_DWORD /d "1" /f programmiert.
Mitglied: 145916
145916 30.09.2020 aktualisiert um 11:32:28 Uhr
Goto Top
Zitat von @supertux:

Beim testen ist mir aufgefallen, die Lösung mit wmic path win32_MappedLogicalDisk get Name /value
funktioniert nur, wenn die Laufwerke gemappt sind.
So soll's ja auch sein. Wieso sollte ich gar nicht vorhandene Laufwerke bearbeiten??

Die Lösung von emeriks zeigt auch nicht gemappt Laufwerke an
??
nur weis ich nicht wie man so eine Schleife für
net use | find "." in Verbindung mit REG ADD "HKCU\Network\%%i" /v "ProviderFlags" /t REG_DWORD /d "1" /f programmiert.
Wenn man unbedingt will geht auch das
for /f "tokens=2" %%a in ('net use ^| findstr ":"') do @echo %%a
Mitglied: emeriks
emeriks 30.09.2020 um 11:42:02 Uhr
Goto Top
Zitat von @145916:
funktioniert nur, wenn die Laufwerke gemappt sind.
So soll's ja auch sein. Wieso sollte ich gar nicht vorhandene Laufwerke bearbeiten??
Dito.
Die Lösung von emeriks zeigt auch nicht gemappt Laufwerke an
??
Dito.
Wenn man unbedingt will geht auch das
for /f "tokens=2" %%a in ('net use ^| findstr ":"') do @echo %%a
Jain.
Verbundene Webdav-Pfade haben (zumindest bei mir) kein "OK" unter "Status". Von daher greift hier nicht die einfache Suche nach der "2. Spalte".
Status       Lokal     Remote                    Netzwerk

-------------------------------------------------------------------------------
OK           G:        \\xxxx\yyyyy
                                                Microsoft Windows Network
OK           H:        \\xxxx\zzzz
                                                Microsoft Windows Network
             J:        \\wwww\webdav
                                                Web Client Network
Mitglied: 145916
145916 30.09.2020 aktualisiert um 11:58:30 Uhr
Goto Top
Zitat von @emeriks:
Jain.
Verbundene Webdav-Pfade haben (zumindest bei mir) kein "OK" unter "Status". Von daher greift hier nicht die einfache Suche nach der "2. Spalte".
> Status       Lokal     Remote                    Netzwerk
> 
> -------------------------------------------------------------------------------
> OK           G:        \\xxxx\yyyyy
>                                                 Microsoft Windows Network
> OK           H:        \\xxxx\zzzz
>                                                 Microsoft Windows Network
>              J:        \\wwww\webdav
>                                                 Web Client Network
> 
> 
Na dann
@echo off & setlocal
for /f "tokens=1,2" %%a in ('net use ^| findstr ":"') do (echo %%a|findstr /i "[a-z]:" && (echo %%a) || (echo %%b))  

Ach ich seh was der TO machen will
https://www.winhelponline.com/blog/mapped-network-drives-fix-windows-10- ...
Aber dann würde ich das persistente Mappen einfach lassen, statt hier so einen Würgaround zu fabrizieren.