Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Verknüpfung auf Programm im Homeverzeichnis per Skript bei Login

Frage Microsoft Windows Server

Mitglied: rowdy146

rowdy146 (Level 1) - Jetzt verbinden

18.03.2008, aktualisiert 18.10.2012, 3461 Aufrufe, 12 Kommentare

Hi Leute,

habe mal "das" (bekannte) Skript von bastla aufgegriffen

Const strProgramtitel = "Anwendung"
Const strProgram = "%USERPROFILE\anwendung\anwendung.exe"
Const strWPath = "%USERPROFILE%\anwendung" 'Arbeitsverzeichnis
Dim objShortcut
Dim objShell
Set objShell = WScript.CreateObject("Wscript.Shell")
strLPfad = objShell.SpecialFolders("Desktop")
Set objShortcut = objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath = strProgram
objShortcut.Description = strProgramtitel
objShortcut.Arguments = strArg
objShortcut.WorkingDirectory = strWPath
objShortcut.Save

...und soweit auch an meinen Bedarf angepasst.
Die Schwierigkeit besteht darin, dass ich mit dem Skript für jeden User eine Verknüpfung auf die Anwendung setzen muss, die jeweils im Profilverzeichnis liegt.
Fragt bitte nicht warum, ist ne alte 16 Bit Anwendung und ich bekomme die Temp Dateien nicht ausgelagert, also kopiere ich es in jedes Profilverzeichnis.

Allerdings erhält die Verknüpfung dann auch genau die o.a. Pfade mit den Variablen für "Ausführen in" und "Arbeitsverzeichnis".
Kann man das korrigieren sodass dort hinterher auch der richtige Pfad mit Benutzernamen steht?

Kann man darüberhinaus auch noch ein Icon mit angeben? Hatte das schon versucht zu basteln, bin nicht sehr fit mit VB

Besten Dank für Eure Tips und viele Grüße

Oliver
Mitglied: bastla
18.03.2008, aktualisiert 18.10.2012
Hallo rowdy146!

Eigentlich könntest Du Dir den Einsatz des Scripts sparen - erstelle einfach von Hand eine Verknüpfung für einen User, wobei Du die Pfade, wie bereits vorgesehen, mit "%USERPROFILE%" angibst und auch ein Icon dafür anlegst, und kopiere die entstehende Datei (Dateityp ist ".LNK") für jeden User.

Ansonsten gibt's eine ausführlichere Alternativvariante zu "dem" Script nochmals hier mit allen möglichen Einstellungen (also auch Icon-Zuordnung).

Grüße
bastla
Bitte warten ..
Mitglied: rowdy146
18.03.2008 um 19:30 Uhr
Hallo bastla,

danke für den Tip.
Hatte ich so auch schon probiert (bin ich mir jedenfalls sicher)
Und das hats leider nicht getan.

Wenns einfacher als mit einem Script läuft bin ich gern für sowas zu haben.
Werde mich da morgen noch mal ransetzen...

MfG
Bitte warten ..
Mitglied: rowdy146
19.03.2008 um 08:11 Uhr
So, ich nochmal...

Habe grade versucht, die Verknüpfung mit der Variable Username (auch Userprofile) zu füllen, das wird auch soweit akzeptiert.
Jedoch startet die Anwendung nicht.
Die Ereignisanzeige gibt nichts dazu aus und die DOS-BOX in der das Programm läuft schließt sich sofort wieder.


Hoffe, du hast noch ne Idee für uns.
Thx
Oliver
Bitte warten ..
Mitglied: bastla
19.03.2008 um 10:12 Uhr
Hallo rowdy146!

Zunächst muss ich mich gleich einmal korrigieren: Bei einer 16Bit-Anwendung wird als Verknüpfung nicht eine ".LNK", sondern eine ".PIF"-Datei erstellt.

In den Eigenschaften dieser Verknüpfung kannst Du (zum Testen) im Register "Programm" den Haken bei "Nach Beenden schließen" entfernen - so siehst Du zumindest den Inhalt des CMD-Fensters.
Wie wurde das Programm eigentlich bisher gestartet, gab es schon jemals eine funktionierende Verknüpfung? Falls der Start über eine Batch-Datei im Programmordner vorzunehmen wäre, könnte man/frau auch dort ansetzen bzw auch einen eigenen Batch dafür verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: rowdy146
19.03.2008 um 10:35 Uhr
Hallo Bastla,

habe eben noch mal probiert...
Ich verknüpfe auf eine Batch Datei, die eine 16Bit Anwendung (in einer Dos-Box) startet.
Wenn ich auf die Batch per Rechtsklick in Windows eine Verknüpfung erstellen lasse, erhalte ich eine .LNK Datei.(So wird sie jedenfalls im Command Fenster angezeigt.
Den Reiter Programm erhalte ich leider nicht.

Das Programm war bisher problemlos lauffähig, nur mit günstigeren Vorraussetzung, dass es jeweils lokal auf dem Client lag.
Ich möchte es nun per Terminalserver verteilen, habe dabei aber das oben erwähnte Problem, dass ich es dafür jedem User exklusiv zur Verfügung stellen muss, da es nicht im Multiuser Modus läuft.

Hoffe, da ist etwas dabei wo man ansetzen kann.

Gruß
Oliver
Bitte warten ..
Mitglied: bastla
19.03.2008 um 10:44 Uhr
Hallo rowdy 146!

Poste doch mal den Inhalt der Batch-Datei (diese wird übrigens nicht als 16Bit-Anwendung betrachtet, sodass die oben beschriebene Möglichkeit nur für die direkte Verknüpfung auf die ".exe" relevant wäre) und verwende dafür bitte <code>-Tags.

Grüße
bastla
Bitte warten ..
Mitglied: rowdy146
19.03.2008 um 11:09 Uhr
ich glaube nicht, dass dir der Batch Inhalt helfen wird.
ist das so mit den Code-Tags richtig?

01.
@ECHO OFF 
02.
CLS 
03.
call land 049 
04.
:START 
05.
call cobset 
06.
xm +jr +r2 /p6 WEGOS000 
07.
IF EXIST SCHLUSS.DAT GOTO SCHLUSS 
08.
IF EXIST DIBO.DAT GOTO DIBO 
09.
IF EXIST OPTION.DAT GOTO OPTION 
10.
IF EXIST REB.DAT GOTO REB 
11.
IF EXIST STREAMER.DAT GOTO STREAMER 
12.
IF EXIST drucker.DAT GOTO drucker 
13.
IF EXIST FINANZ.DAT GOTO FINANZ 
14.
IF EXIST TAGESAB.DAT GOTO TAGESAB 
15.
IF EXIST UEBERG.DAT GOTO UEBERG 
16.
GOTO ENDUSE 
17.
:drucker 
18.
if EXIST drucker.SIK GOTO ENDE 
19.
REN drucker.DAT drucker.SIK 
20.
demo drucker 
21.
DEL drucker.sik 
22.
GOTO ENDE 
23.
:STREAMER 
24.
IF EXIST STREAMER.SIK GOTO ENDE 
25.
REN STREAMER.DAT STREAMER.SIK 
26.
CALL BAND 
27.
DEL STREAMER.SIK 
28.
GOTO ENDE 
29.
:REB 
30.
IF EXIST REB.SIK GOTO ENDE 
31.
REN REB.DAT REB.SIK 
32.
CALL REB.BAT 
33.
DEL REB.SIK 
34.
GOTO ENDE 
35.
:DIBO 
36.
IF EXIST DIBO.SIK GOTO ENDE 
37.
REN DIBO.DAT DIBO.SIK 
38.
DEMO DIBO 
39.
DEL DIBO.SIK 
40.
GOTO ENDE 
41.
:OPTION 
42.
IF EXIST OPTION.SIK GOTO ENDE 
43.
REN OPTION.DAT OPTION.SIK 
44.
DEMO OPTION 
45.
DEL OPTION.SIK 
46.
GOTO ENDE 
47.
:FINANZ 
48.
IF EXIST FINANZ.SIK DEL FINANZ.DAT 
49.
IF NOT EXIST FINANZ.DAT GOTO ENDE 
50.
REN FINANZ.DAT FINANZ.SIK 
51.
CD FIBU 
52.
CALL FP-START 
53.
GOTO ENDE 
54.
:TAGESAB 
55.
IF EXIST TAGESAB.SIK DEL TAGESAB.DAT 
56.
IF NOT EXIST TAGESAB.DAT GOTO ENDE 
57.
REN TAGESAB.DAT TAGESAB.SIK 
58.
CALL KASSE.BAT 
59.
DEL TAGESAB.SIK 
60.
GOTO ENDE 
61.
:UEBERG 
62.
IF EXIST UEBERG.SIK DEL UEBERG.DAT 
63.
IF NOT EXIST UEBERG.DAT GOTO ENDE 
64.
REN UEBERG.DAT UEBERG.SIK 
65.
CALL UEBERN.BAT 
66.
DEL UEBERG.SIK 
67.
GOTO ENDE 
68.
:SCHLUSS 
69.
DEL SCHLUSS.DAT 
70.
GOTO ENDUSE 
71.
:ENDE 
72.
goto START 
73.
:ENDUSE 
74.
ECHO OFF 
75.
CLS 
76.
:ENDTOT
Bitte warten ..
Mitglied: bastla
19.03.2008 um 13:46 Uhr
Hallo rowdy146!

ist das so mit den Code-Tags richtig?
Fast - der "/" am Ende müsste unmittelbar vor "code" platziert werden.
Versuch einmal folgendes: Füge in der Batchdatei nach dem "@ECHO OFF" am Anfang folgende Zeile ein:
01.
CD /D "%~dp0"
Um ev Fehlermeldungen nachvollziehen zu können, wäre noch das "CLS" in der vorletzten Zeile durch "PAUSE" zu ersetzen - dadurch wird das CMD-Fenster erst nach Drücken einer Taste geschlossen (kannst Du natürlich später wieder entfernen).

Grüße
bastla
Bitte warten ..
Mitglied: rowdy146
19.03.2008 um 13:55 Uhr
was bewirkt der befehl

cd /d usw ??
Bitte warten ..
Mitglied: bastla
19.03.2008 um 14:13 Uhr
Hallo rowdy146!

Ein
01.
cd /?
könnte Dir schon einmal eine erste Antwort geben ...

Mit der angegebenen Zeile stelle ich sicher, dass beim Starten der Batchdatei in das Verzeichnis, in dem sich die Batchdatei selbst befindet, gewechselt wird, da alle Programmaufrufe ohne Pfade angegeben sind und sich daher auf das gleiche Verzeichnis beziehen müssen.

Die Details zum "%~dp0" findest Du übrigens am Ende der Hilfe zu "for", wobei noch anzumerken wäre, dass "%0" für die Batchdatei selbst steht.

Grüße
bastla
Bitte warten ..
Mitglied: rowdy146
19.03.2008 um 15:02 Uhr
Hallo Bastla,

ahem, ja "CD" halt - habs gecheckt...

Das Programm steigt wg. irgendwas anderem aus, scheint ein internes Problem zu sein, oder es kommt mit der Variable %USERNAME% in den Pfaden nicht klar.

Sobald ich die einbaue klappts nicht mehr.
Hab nun eben schon n anderen Verzeichnisbaum angelegt, um von dem langen "C:\Dokumente und..." wegzukommen (Stichwort 8.3)
Das bringt leider auch nichts.

Habe mir das andere gelinkte Skript von dir nochmal gegriffen und angepasst.
Funkt auch alles toll, aber warum ersetzt es beim Anlegen der Verknüpfung die Variable nicht mit dem dahinterliegenden Wert?
Schätze wenn das der Fall ist, läuft die Sache auch durch.

Haste noch ne Idee?
Bitte warten ..
Mitglied: bastla
19.03.2008 um 15:58 Uhr
Hallo rowdy146!

... das andere gelinkte Skript von dir ...
Nur der Ordnung halber: Weder das eine noch das andere ist von mir (das zweite habe ich noch nicht einmal gepostet) - aber schön, dass Du mir's zutrauen würdest ...

Funkt auch alles toll, aber warum ersetzt es beim Anlegen der Verknüpfung die Variable nicht mit dem dahinterliegenden Wert?
Weil es so gewünscht war (und flexibler / sinnvoller ist).

Schätze wenn das der Fall ist, läuft die Sache auch durch.
Da habe ich so meine leisen Zweifel, da die Variable im Pfad eigentlich keine Rolle spielen dürfte - wenn die Batchdatei gestartet wird, wechselt diese ja ohnehin in das konkrete Verzeichnis. Schon eher ein Thema wäre es, tatsächlich nur kurze Namen im Pfad zu verwenden.

Anyhow: Mit VBS kannst Du den Pfad zum Benutzerprofil bzw dann den Programmpfad (zur Batchdatei) so bekommen:
01.
strUserProfilePath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") 
02.
strProgram = strUserProfilePath & "\Anwendung\Start.bat"
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst SAP Externes Programm Parameterübergabe an Skript in Variable (2)

Frage von Erik72 zum Thema Batch & Shell ...

Windows Netzwerk
gelöst Netzwerkdrucker nach Printservertausch im Login Skript ändern. (7)

Frage von steveauskiel zum Thema Windows Netzwerk ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

Windows 10
Nonstop Login im Sperrbildschirm (4)

Frage von TiCar zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...