askando
Goto Top

Verknüpfung in den Autostart für user xy hinzufügen

Hallo,


also ich habe folgendes Problem.

Im will für einige Nutzer der Domäne ein batch anfertigen, das erstens eine If Abfrage (exists) macht und wenn die datei nicht vorliegt dann die verknüpfung des programms in den autostart ordner des jeweiligen users kopiert.

Beispiel

H:\progs\abc.exe <---- gemappedtes netzlaufwerk des users XY (aktueller Speicherort der Verknüpfung)

C:\Dokumente und Einstellungen\%username%\Startmenu\Programme\Autostart <--------- Zukünftiger Speicherort der Verknüpfung

da die user auf Allusers keinen Zugriff haben bzw. keine Schreibberechtigung muss in den Pfad eine Variable rein wie z.B. %username%

Privat wäre dies kein Problem (dank vbs) aber leider muss die Einheitlichkeit im Netzwerk bestehen bleiben und so sollte es ein bat script sein.

Für Antworten links und Hilfe eurerseits wäre ich sehr erfreut^^

Content-Key: 75493

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

Printed on: April 19, 2024 at 14:04 o'clock

Member: schregi82
schregi82 Dec 07, 2007 at 15:01:32 (UTC)
Goto Top
Link zu abc.exe erstellen = zb. abc.lnk in Ordner H:\progs\

if %username% = "xy" goto abc  
goto noabc

:abc
if exist C:\Dokumente und Einstellungen\%username%\Startmenu\Programme\Autostart\abc.ink goto noabc
if not exist C:\Dokumente und Einstellungen\%username%\Startmenu\Programme\Autostart\abc.ink goto abccopy
 
:abccopy
copy H:\progs\abc.lnk C:\Dokumente und Einstellungen\%username%\Startmenu\Programme\Autostart\
 
:noabc
 

H:\ muss natürlich zuerst gemapped werden.
Einer der Batch Spezialisten kann dir sicher ein kürzeres Skript liefern, funkt. tut aber auch dieses.

lg,
Mitglied: 58502
58502 Dec 07, 2007 at 15:54:14 (UTC)
Goto Top
@schregi82

Dein Beispiel enthält mehrere Fehler, deshalb funktioniert dein Script garantiert nicht.

Vergleichsoperator ist nicht "=" sondern "==" (ohne die ""), und ein Pfad mit darin enthaltenem Leerzeichen muss in Anführungszeichen gesetzt werden.
Startmenü hört mit u-Umlaut auf.

So berichtigt, würde für die Überprüfungs- und Kopieraktion auch die "if not exist"- Zeile allein reichen. face-wink
if not exist "%userprofile%\Startmenü\Programme\Autostart\abc.ink copy H:\progs\abc.lnk "%userprofile%\Startmenü\Programme\Autostart"  
Member: askando
askando Dec 10, 2007 at 08:08:56 (UTC)
Goto Top
ich habe jetzt eine einfache Variante gewählt:

if not exist "%userprofile%\Startmenu\Programme\Autostart\PRINTKEY2000.EXE.lnk" goto copy

:copy
copy \\serverxy\User\post\ALL\PRINTKEY2000.EXE.lnk "%userprofile%\Startmenu\Programme\Autostart"

pause

jedoch bekomme ich noch folgenden Fehler angezeigt! Vielleicht kann mir ja jemand dabei helfen`?

C:\Dokumente und Einstellungen\userXY\Desktop>if not exist "C:\Dokumente und Einst
ellungen\userXY\Startmenu\Programme\Autostart\PRINTKEY2000.EXE.lnk" goto copy

C:\Dokumente und Einstellungen\userXY\Desktop>copy \\SERVERXY\User\post\ALL\PRINTKEY2
000.EXE.lnk "C:\Dokumente und Einstellungen\userxy\Startmenu\Programme\Autostart"

Das System kann den angegebenen Pfad nicht finden.
0 Datei(en) kopiert.

C:\Dokumente und Einstellungen\userxy\Desktop>pause
Drücken Sie eine beliebige Taste . . .
Member: Biber
Biber Dec 10, 2007 at 08:38:26 (UTC)
Goto Top
Moin askando,

bist Du Dir sicher, dass sich "Dein" Startmenü-Ordner "Startmenu" schreibt?

Viele haben ein ü wie in Üsmirschlecht drin...

Grüße
Biber
Member: askando
askando Dec 10, 2007 at 08:42:01 (UTC)
Goto Top
also der Startmenü Ordner wird auch unter cmd als "Startmenü" angezeigt.

ich habe das Script jetzt einfach aufs wesentliche reduziert und siehe es funktioniert...

das Pfad Problem habe ich per 8.3 Regel lösen können

if NOT exist "%userprofile%\Startm~1\Programme\Autostart\PRINTKEY2000.EXE.lnk"

xcopy \\ServerXy\User\post\ALL\PRINTKEY2000.EXE.lnk "%userprofile%\Startm~1\Programme\Autostart\"