Unc verknüpfung unter "Mein PC" erstellen.

Zero_Official

Lieutenant
Registriert
Sep. 2012
Beiträge
700
Hallo Jungs und Mädels,

wer kennt sich damit aus?

Ich möchte Freigaben von meiner NAS über unc verküpfung im Explorer anlegen, bitte versteht mich richtig.....
keinen Laufwerk mit net use x: \\server\freigabe ! oder Ähnliches.

Wenn man auf "mein pc" mit Recter maustaste klickt erscheint menü: "Netzwerkadresse hinzufügen" und der Assistent fragt den pfad da kann ich unc pfad zu freigabe eingeben und die Verknüpfung benennen.
Beispiel: \\Server\allg als Allgemein.
Danach erscheint eine Shellverknüpfung unter Explorer Mein PC wie: Allgemein(Server) ohne Laufwerksbuchstaben und unter Netzwerk
dasselbe mit freigabe Ikon.

Nun die Frage wire kriege ich es mit einem Skript oder Ähnlichem?
Google sagt dazu nix... alles nur mit Laufwerkbuchstaben, per GPO kann ich keine Shellobjekte/Verknüpfungen unter mein PC oä anlegen,
Sondern nur "Normale" Verknüpfungen die nur unter Netzwerk erscheinen.

Sinn und Zweck: ich möchte im linken teil vom Explorer meine freigaben anzeigen ohne Laufwerke zu verbinden.

Powershell? VBS? Autoit? wer kennt sich aus?
 
Was willst du in dem Script machen? Powershell unterstützt UNC-Pfade, mit Batch siehts schlecht aus. Du könntest dir mit pushd und popd temporär abhelfen, nur ist das nicht wirklich sauber, da er dir nur temporär nen Laufwerksbuchstaben zuweist.

Code:
pushd \\dein\super\toller\unc\pfad
dir
...
popd
 
Verstehe das Problem nicht so wirklich. Windows zeigt einem wirklich sehr deutlich, dass Netzwerkadresse einbinden und Netzlaufwerk einbinden, unterschiedlich sind. Einfach den linken, statt den rechten Button klicken und den UNC / FTP / SFTP Pfad angeben?

Nur wenn Du es als Laufwerk einbindest, kannst Du auch die zugehörigen NTFS Funktionen dazu nutzen.
Darf ich fragen, wieso Du es nicht als Laufwerk sondern unbedingt als Ordner haben musst?

Ichtiander schrieb:
Sinn und Zweck: ich möchte im linken teil vom Explorer meine freigaben anzeigen ohne Laufwerke zu verbinden.
Das wäre der Zweck. Der Sinn kommt da nicht ganz rüber ;) Vereinfacht gesagt willst Du den NAS mit Laufwerksfunktionen nutzen aber jedoch kein Laufwerk in Windows haben.

Ich will dich nicht kritisieren, sondern versuche nur zu verstehen, was deine Intention dahinter ist.

BTW:
Natürlich kannst Du Netzlaufwerke in der GPO user / gruppen bezogen einbinden - oder eben nicht.
Gleiches für Favoriten unterhalb von "Mein PC". Siehe unten.

Aber auch hier wieder - es macht meistens mehr Sinn, einen Server und seine Unterordner seperat als jeweiliges Laufwerk einzubinden, anstatt die nachher als Links unter Favoriten anzuzeigen. Das wirst Du aber vermutlich erst dann merken, wenn Du mit der Einrichtung weit fortgeschritten bist. Und dann merkst, dass Du wieder von vorne anfangen kannst - da Du die Dinger für deine Funktionen doch als Laufwerk brauchst.

Ergänzung ()

Hier ist übrigens dein Problem einmal per GPO und einmal per PS gelöst. Insofern ich dich richtig verstanden habe.

https://administrator.de/forum/gpo-windows-explorer-favoriten-382516.html
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Nemo_G
nun man kann darüber streiten was besser ist, ich habe Freigaben über Laufwerk längst abgeschworen,
aus diversen auch sicherheitstechnischen Gründen.
Per Gpo kann ich vieles machen allerdings nichts was vergleichbar mit "Netzwerkadresse hinzufügen" wäre.
Es wird per Assistent eine Shell Verknüpfung sowohl unter Netzwerk als auch unter Mein PC angelegt,
das ist per GPO so nicht möglich (ausgegraut) also müsste ich auf jedem PC das ganze manuell machen daher die Frage ob Einer die möglichket kennt den Assistenten per skript oder befehl zu steuern.

Zu Guter Letzt könnte ich auch versuchen eine MSI Datei zu erstellen, die die Veränderungen aufzeichnet..... dies habe ich schon länger nicht mehr gemacht.
Ergänzung ()

Sun_set_1 schrieb:
Ergänzung ()

Hier ist übrigens dein Problem einmal per GPO und einmal per PS gelöst. Insofern ich dich richtig verstanden habe.

https://administrator.de/forum/gpo-windows-explorer-favoriten-382516.html
dies funktioniert nicht.
 
Ah, ich glaub ich hab das Problem oben falsch verstanden... ;>

Geh mal unter %appdata%\Microsoft\Windows\Network Shortcuts, dort werden deine Netzwerkadressen aufbewahrt. Im Prinzip ist diese "Verknüpfung" nur ein Ordner (mit einer Verknüpfung).

In dem Ordner befinden sich eine desktop.ini und eine target.lnk. Prinzipiell kannst du dir so eine Verknüpfung auch selbst basteln.

  • Ordner erstellen
  • Verknüpfung zum entsprechenden Ziel erstellen und target.lnk nennen
  • desktop.ini mit folgendem Inhalt anlegen:
Code:
[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2
  • der desktop.ini die Attribute System und Hidden verpassen (attrib +s +h desktop.ini)
  • dem Ordner das Attribut Read-Only verpassen (attrib +r $verzeichnis)

Wenn du selbst nachsehen willst, kannst du einfach mit der Konsole in den Pfad navigieren. Wenn du Verknüpfungen auch mit der Konsole erstellen willst, kann ich nur Shortcut empfehlen. Geht zwar auch direkt mit der Shell, der Prozess dauert aber länger.
 
Aber auch hier wieder - es macht meistens mehr Sinn, einen Server und seine Unterordner seperat als jeweiliges Laufwerk einzubinden, anstatt die nachher als Links unter Favoriten anzuzeigen. Das wirst Du aber vermutlich erst dann merken, wenn Du mit der Einrichtung weit fortgeschritten bist. Und dann merkst, dass Du wieder von vorne anfangen kannst - da Du die Dinger für deine Funktionen doch als Laufwerk brauchst.
Von einer technischen Notwendigkeit mal ausgenommen (bestimmtes Programm kann nicht mit UNC-Pfaden umgehen, wobei solche Programme hochkantig rausfliegen), gibt es zwei Gründe warum UNC-Pfade ("Netzwerkadresse hinzufügen" statt Netzlaufwerke besser sind:
-die Pfade sind immer absolut
-kein dummes Rumgeficke* mit nicht-verbundenen Netzlaufwerken und ähnlichem Gebräse mehr

Wenn man ein mal das Pflaster "Netzlaufwerke" abgerissen hat, merkt man - je größer die Umgebung ist - ganz schnell was da alles an Aufwand und Pflege plötzlich einfach wegfällt.
Dass es [noch] keine gescheite GPP für das Einbinden über "Netzwerkadresse hinzufügen" gibt, ist ein anderes Thema. Aber dafür gibts im Zweifel eine Verknüpfung zum ABE-kontrollierten DFS-N Namespace, die den Leuten auf den Desktop geworfen wird.




*jap; der passendste Begriff
 
Ich bi auf dem halben weg.....
wenn ich assistent benutze kriege ich wie @Yuuri beschrieben hat die Datei.... ich kann die mit zb. Q-dir umkopieren per hand aber es klappt aber weder mit Xcopy noch mit GPO.. ums verecken nicht...
da wird ordner mit inhalt target erstellt wie man es sieht:

809998

wenn ich target anklicke komme ich ans ziel, aber wenn ich per hand kopiere läuft es wie es sein soll, ich klicke nur Allgemein und komme in die Freigabe.

gibt es was womit ich tatsächlich unverändert kopieren kann?
 
Hast du die Attribute auch korrekt gesetzt?
Code:
$ attrib . && attrib desktop.ini && attrib target.lnk
     R               %appdata%\Microsoft\Windows\Network Shortcuts\Docker
   SH                %appdata%\Microsoft\Windows\Network Shortcuts\Docker\desktop.ini
A                    %appdata%\Microsoft\Windows\Network Shortcuts\Docker\target.lnk
Du kannst das so auch in ein Script packen.
Code:
@echo off

set name=%~1
set target=%~2

if "%name%" == "" (
  echo Name missing
  goto :help
)

if "%target%" == "" (
  echo Target missing
  goto :help
)

set target_path=%appdata%\Microsoft\Windows\Network Shortcuts\%name%

mkdir "%target_path%"
cd /d "%target_path%"

echo [.ShellClassInfo] > desktop.ini
echo CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D} >> desktop.ini
echo Flags=2 >> desktop.ini
shortcut /F:target.lnk /A:C "/T:%target%"
attrib +s +h desktop.ini
attrib +r .

cd ..

goto :exit

:help

echo.
echo Usage: create.cmd ^<Name^> ^<Target^>
echo.

:exit
 
@Yuuri

das setzt voraus das ich das programm shortcuts nutze....
und hat dies gebracht:
810021


Ordner network shotcuts ist jetzt verknüpfung shortcuts.

Ich schätze ich muss mich auf die Füsse stellen und jeden klient manuell einrichten....
 
Irgendwas ist dann bei dir beim Kopieren schief gelaufen. Zeile 6 - 14 hat nämlich eine Überprüfung ob Variablen gesetzt sind und wenn nicht sollte der Hilfetext erscheinen (siehe Sprungmarke :help). Aufruf im Schema
Code:
$ xy.cmd "Name der Verknüpfung" "\\ziel-host\pfad1\pfad2\pfad3"

Wenn du das Programm nicht mit ausliefern kannst/willst und du nur statische Ziele hast, kannst du die vorher erstellte Verknüpfung ja bereits mitliefern und statt shortcut ... in Zeile 24 einfach nur ein copy deiner Verknüpfung ausführen. Der andere Weg läuft nur über eine extra Datei mit nem VBS-Script (siehe Verlinkung weiter oben). Der Vorgang darüber ist allerdings extrem langsam, weshalb ich den jetzt nicht rein genommen habe. Sonst musst du das natürlich über den Weg mit der VBS machen. Der Code dafür ist ja in StackOverflow bereits komplett.
 
@t-6

1. Naja aber manche Programme will oder kann man schlicht nicht rauswerfen.
2. So allgemein sehe ich das nicht. Ich persönlich find die Einbindung als virtuelle Partition eigentlich immer als hilfreich. Und wenn die GPO vernünftig eingestellt ist und läuft, gibt’s auch kein rumgefricke durch vermischte Laufwerkszuweisungen.

@Yuuri @Ichtiander

Hab nicht komplett mitgelesen - aber habt ihr der Desktop.ini beim probieren nicht das Attrib System verpasst? Dann dürfte mMn die PS die Parentdatei auch nicht bearbeiten / neu erstellen können, wenn sie nicht als Admin gestartet wurde?
Da die Umgebung der Shell im Screenie nicht sys32 sondern sein User ist, würde ich mal von fehlender Berechtigung ausgehen.

Mal als Admin probieren..
 
Das problem ist weniger creieren als kopieren,
ich erstelle über den Explorer assistent 4 Dateien für 4 freigaben, ich kann die dateien aus dem Ordner "Network shortcuts" mit Explorer wegkopieren und wieder reinkopieren auf demselben Rechner.....
Dementsprechend werden unter Dieser PC und Netzwerk verknüpfungen angezeigt oder nicht, soweit so gut.
Aber wie kann ich die verteilen? jedes kopieren auch mit Xcopy oder Gpo scheitert, ich habe dann einen Ordner statt verknüpfung unter Dieser PC wie man auf dem Bild oben sieht.
 
Du hast das Skript schlicht per ´net.bat´ aufgerufen. @Yuuri schrieb doch


Yuuri schrieb:
Aufruf per
Code:
$ xy.cmd "Name der Verknüpfung" "\\ziel-host\pfad1\pfad2\pfad3"

Da fehlen die von Yuuri genannten Variablen, insofern Du sie nicht feste im Skript reingeschrieben hast?
Ergänzung ()

@Yuuri

Yuuri schrieb:
Code:
shortcut /F:target.lnk

Müsste das nicht

Code:
/F:%target%
sein?
Oder halt
Code:
/F:“target.lnk“
🤔
Bin mir aber auch nicht sicher, in den Fällen weicht VBA, dass ich kenne, häufig ab.
 
Zuletzt bearbeitet:
Sun_set_1 schrieb:
Müsste das nicht

Code:
/F:%target%
sein?
Oder halt
Code:
/F:“target.lnk“
🤔
Nein %target% gibt das Ziel an, welches in der Verknüpfung festgelegt wird.
Code:
$ shortcut /?
shortcut /F:filename /A:C|E|Q [/T:target] [/P:parameters] [/W:workingdir]
         [/R:runstyle] [/I:icon,index] [/H:hotkey] [/D:description]

 /F:filename    : Specifies the .LNK shortcut file.
 /A:action      : Defines the action to take (C=Create, E=Edit or Q=Query).
 /T:target      : Defines the target path and file name the shortcut points to.
Die Verknüpfung selbst liegt immer am Ort target.lnk in dem Ordner. Anführungszeichen brauchst du nicht, weil keine Leerzeichen oder andere Sonderzeichen drin stecken.
 
  • Gefällt mir
Reaktionen: Sun_set_1
Zurück
Oben