worker26
Goto Top

Verknüpfung am öffentlichen Desktop anlegen ohne die Batch Datei als Admin auszuführen

Guten Tag,

ich möchte eine Verknüpfung auf den Desktop von allen Benutzern anlegen und nicht nur auf dem der angemeldeten Person.

Mein Code:
:: Speicherort der Verknüpfung
set "C:\Users\%USERNAME%\Desktop\FLS_VISITOUR"  

:: Name der Verknüpfung
set "progtitel=FLS_VISITOUR"  

:: Speicherort der Programmdatei
set "progdir=C:\FLS"  

:: Auslesen der exe Datei (ändert sich wegen Version-Updates)
for %%a in ("C:\FLS\FLS VISITOUR Client*.exe") do set "exepfad=%%a"  

:: temporäres VBScript erzeugen
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs  
echo Set objShortcut=objShell.CreateShortcut("C:\Users\%USERNAME%\Desktop\FLS_VISITOUR.lnk")>>%temp%\MakeShortCut.vbs  
echo objShortcut.TargetPath="%exepfad%">>%temp%\MakeShortCut.vbs  
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs  
echo objShortcut.WorkingDirectory="C:\FLS">>%temp%\MakeShortCut.vbs  
echo objShortcut.Save>>%temp%\MakeShortCut.vbs


:: VBScript ausführen
cscript //nologo %temp%\MakeShortCut.vbs


:: VBScript wieder löschen
del %temp%\MakeShortCut.vbs
Eigentlich müsste ich nur den Speicherort der Verknüpfung folgend umbenennen: set "C:\Users\Public\Desktop"
Und weiter unten die Zeile so anpassen: echo Set objShortcut=objShell.CreateShortcut("C:\Users\Public\Desktop\FLS_VISITOUR.lnk")>>%temp%\MakeShortCut.vbs

Jedoch bekomme ich dann keine Verknüpfung. Der Desktop Ordner für alle Benutzer ist versteckt. Wenn ich die Batch Datei als Administrator ausführe bekomme ich das gewünschte Ergebnis. Kann ich es irgendwie ändern, dass ich es normal durch Doppelklick ausführen kann und nicht als Admin ausführen muss?

Content-Key: 664909

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

Printed on: May 5, 2024 at 02:05 o'clock

Member: emeriks
Solution emeriks Mar 19, 2021 updated at 13:51:55 (UTC)
Goto Top
Hi,
ein Möglichkeit wäre, die ACL des Ordners C:\Users\Public\Desktop so zu ändern, dass der betreffende ausführende Benutzer dort schreiben und ändern darf.

Darf man fragen, wann und wie diese Batch ausgeführt werden soll?
Und warum eine Batch, wo Du doch eh zwischendurch den Umweg über VBscript nimmst? Warum nicht gleich komplett in VBscript?

E.

Edit:
Eine andere Möglichkeit wäre, als Admin einen Scheduled Task zu erstellen, welcher vom Benutzer "bei Bedarf" ausgeführt werden kann und z.B. unter LocalSystem läuft. Dieser Task kopiert z.B. von einem definierten Quellverzeichnis alles nach C:\Users\Public\Desktop. Die Batch (der Benutzer) müsste dann nur in diesem definierten Quellverzeichnis schreiben dürfen und den Task starten.
Member: wiesi200
wiesi200 Mar 19, 2021 at 13:52:29 (UTC)
Goto Top
Zitat von @emeriks:

Und warum eine Batch, wo Du doch eh zwischendurch den Umweg über VBscript nimmst? Warum nicht gleich komplett in VBscript?

Hallo,
oder per GPO's
Member: emeriks
emeriks Mar 19, 2021 at 13:57:56 (UTC)
Goto Top
Zitat von @wiesi200:
oder per GPO's
Sofern AD vorhanden.
Member: Worker26
Worker26 Mar 19, 2021 at 14:04:33 (UTC)
Goto Top
Hi,

weil mir aufgetragen wurde ein Batch zu schreiben, dies ist mein erstes und ich hab das kombiniert was ich im Internet gefunden habe :D
Das Batch soll von Leuten im Außendienst ausgeführt werden.
Member: Worker26
Worker26 Mar 19, 2021 at 14:23:31 (UTC)
Goto Top
Danke für die Hilfe, es sollte jetzt funktionieren. face-smile