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-ID: 664909

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

Ausgedruckt am: 19.11.2024 um 11:11 Uhr

emeriks
Lösung emeriks 19.03.2021 aktualisiert um 14:51:55 Uhr
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.
wiesi200
wiesi200 19.03.2021 um 14:52:29 Uhr
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
emeriks
emeriks 19.03.2021 um 14:57:56 Uhr
Goto Top
Zitat von @wiesi200:
oder per GPO's
Sofern AD vorhanden.
Worker26
Worker26 19.03.2021 um 15:04:33 Uhr
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.
Worker26
Worker26 19.03.2021 um 15:23:31 Uhr
Goto Top
Danke für die Hilfe, es sollte jetzt funktionieren. face-smile