sandwurm1972
Goto Top

Verknüpfung an Userprofile verteilen - ohne Userlogin

Ich hasse Batchdateien... face-wink

Hallo allerseits,

ich möchte per Batchdatei eine Verknüpfung verteilen. Problem dabei ist, dass die Userprofile auf einem Fileserver
liegen und ich nicht den Platzhalter %USERPROFILE% verwenden kann bzw. nicht wüsste wie.

Mein Script sieht derzeit so aus:

copy "\\Servernname\Pfad\Verknüpfung.lnk" \\Servername\home$\%username%\Desktop


Das funktioniert soweit, sofern man als jeweiliger User angemeldet ist.

Ich möchte aber die Ausführung der Batchdatei durch die User vermeiden, sondern als Admin die Verteilung einmalig vornehmen.

Hat wer eine Idee dazu?

Danke!

Content-Key: 122402

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

Printed on: April 24, 2024 at 01:04 o'clock

Mitglied: 45877
45877 Aug 10, 2009 at 10:16:27 (UTC)
Goto Top
Hallo,

verteil den link doch per login script.
Member: Sandwurm1972
Sandwurm1972 Aug 10, 2009 at 10:22:13 (UTC)
Goto Top
Eben das wollte ich vermeiden, da wir bereits ein riesiges Login-Script verwenden und ich diese nicht unbedingt verändern möchte.
Mitglied: 45877
45877 Aug 10, 2009 at 10:27:02 (UTC)
Goto Top
Ansonsten halt ne batch schreiben, und drüber laufen lassen.
geht wohl am schnellsten mit excel, einfach ne liste aller benutzer in eine spalte, dann zu jeder spalte das kommando und pfad hinzufügen, als txt exportieren speichern, und als bat umbennen. laufen lassen fertig.
Member: affabanana
affabanana Aug 10, 2009 at 10:46:48 (UTC)
Goto Top
HAllo Sandwurm1972

ich machs so

set Quelle=\\server\freigabe
set Ziel1=\\pcname001\c$\programme\adobe
set Zielip1=pcname001

set mailsrv=(IP oder Name des Mail Servers)
set mailaddr=empfänger@contoso.ltd
set mailfrom=Sender@contoso.ltd
set file=(Datei z.B.: word.exe )
set wait1=ping 127.0.0.1 -n 1

set logbuch=\\server\freigabe\1.logbuch.log
set temptxt=\\server\freigabe\1.temp.txt
:: 		------------- eventuell alte vorhandeneDateien löschen --------------------
if exist %temptxt% del %temptxt%
if exist %logbuch% del %logbuch%
if exist \\print\c$\programme\bixi\galaxy\logbuch.log del \\print\c$\programme\bixi\galaxy\logbuch.log


::		--------------------Variablen setzen ----------------------
set befehl=Spiegelung erfolgreich %Zielip1%
set body=%temptxt%

::		--------------------- Starten der Robocopy ----------------------
robocopy.exe "%Quelle%" "%Ziel1%" "%file%"  /sec /ETA /R:0 /W:0 /LOG:%logbuch%  

::		------------------ Errorlevel von Robocopy überprüfen ------------------------
if %errorlevel%==16 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==15 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==14 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==13 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==12 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==11 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==10 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==9 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==8 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==7 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==6 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==5 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==4 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==3 set befehl=FEHLER & set body=%logbuch%
if %errorlevel%==2 set befehl=FEHLER & set body=%logbuch%


::		------------------------ Bestimmte Zeilen auslesen -------------------------------
%wait1%  
find /i "Started" %logbuch% >> %temptxt%  
find /i "Source" %logbuch% >> %temptxt%  
find /i "Dest" %logbuch% >> %temptxt%  
echo. >> %temptxt%
echo ----------------------------------------------------------------------------- >> %temptxt%
find /i "Skipped" %logbuch% >> %temptxt%  
find /i "Dirs" %logbuch% >> %temptxt%  
find /i "Files" %logbuch% >> %temptxt%  
find /i "Bytes" %logbuch% >> %temptxt%  
echo ----------------------------------------------------------------------------- >> %temptxt%
find /i "Times" %logbuch%  >> %temptxt%  
find /i "Ended" %logbuch% >> %temptxt%  
echo. >> %temptxt% 
echo. >> %temptxt% 
%wait1%  

:: 		--------------------------------- Anzeige Anzahl der Daten  auf jedem Medium ---------------------
type %temptxt% | find /i /v "---------- %logbuch%" > temp2.txt  
del %temptxt%
ren temp2.txt %temptxt%
echo Anzahl der Dateien auf dem NAS: >> %temptxt%
echo. >> %temptxt%
dir "%Quelle%" | find /i "Datei(en)" >> %temptxt%  
echo. >> %temptxt%
echo. >> %temptxt%
echo Anzahl der Dateien auf dem Server: >> %temptxt%
echo. >> %temptxt%
dir "%Ziel1%" | find /i "Datei(en)" >> %temptxt%  


::		------------------ Versende Email, das Logfile ist Inhalt des Bodys -------------------
bmail.exe -s %mailsrv% -t %mailaddr% -f %mailfrom% -a "%befehl%" -m %body% -d  

goto eof

Ist hier mal im Forum als Backup für NAS gepostet worden.

Gruss affabanana
Member: Sandwurm1972
Sandwurm1972 Aug 10, 2009 at 11:31:40 (UTC)
Goto Top
Danke, das scheint wohl die einfachste Lösung zu sein!

Thx

Gruß,
Sandwurm1972
Member: bastla
bastla Aug 10, 2009 at 13:08:16 (UTC)
Goto Top
@affabanana
Nur als kleine Anmerkung zu den Zeilen 27 bis 41: Diese sollten sich durch die eine Zeile
if errorlevel 2 set befehl=FEHLER & set body=%logbuch%
ersetzen lassen (und damit sogar noch Errorlevel > 16 abdecken face-wink) ...

Grüße
bastla