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
GELÖST

Verknüpfung in vbs erzeugen

Frage Entwicklung VB for Applications

Mitglied: Domain-Jane

Domain-Jane (Level 1) - Jetzt verbinden

31.01.2015, aktualisiert 18:25 Uhr, 775 Aufrufe, 9 Kommentare

Schönen guten Nabend!

Seit einer Weile versuche ich, mir mittels vbs eine Verknüpfung erzeugen zu lassen.
Dazu habe ich mir die Anleitungen von bastla durchgelesen.
Mein Problem ist allerdings, dass ich als Speicherort "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk" brauche
und als Ziel den Pfad, indem die vbs ausgeführt wird & \bum.exe (entspräche in Batch: %~dp0\bum.exe)

Bisher habe ich es so versucht:

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
strUserProfile = oShell.ExpandEnvironmentStrings("%USERPROFILE%") 
04.
 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
08.
 
09.
 
10.
Set objShell = CreateObject("WScript.Shell") 
11.
sShortcut = (strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk") 
12.
set objLink = objShell.CreateShortcut(sShortcut) 
13.
objLink.TargetPath = "ZielDingens" 
14.
objLink.Save 
15.
 
Die Verknüpfung wird mit dem richtigen Pfad erstellt, aber das Ziel stimmt nicht.
Er löst die Variable "ZielDingens" nicht auf und schreibt noch den Pfad zum Desktop davor.

Wäre echt super, wenn ihr ne spontane Idee hättet.
Mitglied: Domain-Jane
31.01.2015, aktualisiert um 18:24 Uhr
Im Moment der Frageerstellung noch einmal kurz nachgedacht und Zzzzong - Fehler gefunden.
So geht's:

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
 strUserProfile = oShell.ExpandEnvironmentStrings("%USERPROFILE%") 
04.
 
05.
 
06.
 Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
08.
 
09.
 
10.
 Set objShell = CreateObject("WScript.Shell") 
11.
 sShortcut = (strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\shortcut.lnk") 
12.
 set objLink = objShell.CreateShortcut(sShortcut) 
13.
 objLink.TargetPath = (ZielDingens & "\bum.exe") 
14.
 objLink.Save 
15.
 
(Ich habe nur Zeile 13 geändert)

Für Verbesserungsvorschläge bin ich immer offen.

Schönen Abend!
Bitte warten ..
Mitglied: Dani
31.01.2015 um 18:39 Uhr
Guten Abend,
Für Verbesserungsvorschläge bin ich immer offen.
Warum nicht einfach mit Powershell? Ist in 3-4 Zeilen erledigt.


Gruß,
Dani
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 19:06 Uhr
Hi Dani,
Naja, Powershell-Skripte brauchen doch immer Admin-Rechte oder nicht?
Das würde bei den Benutzern zu Problemen führen.
Bitte warten ..
Mitglied: Dani
31.01.2015 um 19:29 Uhr
Braucht genau die selben Rechte wie dein VBS.
Wie kommst du auf solch eine Aussage?
Bitte warten ..
Mitglied: 116301
31.01.2015 um 20:41 Uhr
Hallo Domain-Jane!

Für Verbesserungsvorschläge bin ich immer offen.
z.B.:
01.
sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk"
Ansonsten reicht es auch, wenn das Shell-Object nur einmal zu erzeugt wird...

Grüße Dieter
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 20:42 Uhr
Zitat von Dani:

Braucht genau die selben Rechte wie dein VBS.
Wie kommst du auf solch eine Aussage?

Vermutlich durch Unwissenheit. ;)

Beim Ausführen von .ps1 Skripten kommt standardmäßig die Meldung, dass die Ausführung solcher
Skripte auf dem System deaktiviert ist.
Natürlich könnte man sich hier mit "Set-ExecutionPolicy Unrestricted" behelfen.
Allerdings setzt das wiederum Admin-Rechte voraus.
Bitte warten ..
Mitglied: Domain-Jane
31.01.2015 um 21:01 Uhr
Zitat von 116301:

z.B.:
01.
> sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk" 

Ansonsten reicht es auch, wenn das Shell-Object nur einmal zu erzeugt wird...

Grüße Dieter

Hi Dieter,

puh, das ist natürlich sehr elegant und hätte mir ein paar schweißtreibende Sekündchen erspart!

Also hier noch einmal die aktuelle Version:
Wenn jetzt noch jemand kommt und dafür nen Einzeiler rauskloppt, werde ich aber ungemütlich! ;)

01.
 
02.
Set oShell = CreateObject("Wscript.Shell") 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
ZielDingens = fso.GetParentFolderName(WScript.ScriptFullName) 
06.
 
07.
sShortcut = objShell.SpecialFolders("StartUp") & "\shortcut.lnk" 
08.
set objLink = oShell.CreateShortcut(sShortcut) 
09.
objLink.TargetPath = (ZielDingens & "\bum.exe") 
10.
objLink.Save 
11.
 
Bitte warten ..
Mitglied: Dani
31.01.2015 um 21:18 Uhr
Selbstverständlich, standardmäßig dürfen solche Skripte nicht ausgeführt werden.
Einmal aktiviert, kannst du loslegen.


Gruß,
Dani
Bitte warten ..
Mitglied: 116301
01.02.2015 um 08:16 Uhr
Hallo Domain-Jane!

Kann man so lassen, nur noch in Codezeile 7 'objShell' durch 'oShell' ersetzt, dann sollte es auch funktionieren

Grüße Dieter
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
Interaktive Verknüpfung erstellen (3)

Frage von Frager84858485 zum Thema Windows Netzwerk ...

PHP
gelöst PHP statements mit PHp erzeugen (4)

Frage von Lorderich zum Thema PHP ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Google Android
gelöst Chrome: Lesezeichen als Verknüpfungen auf Startseite - wie? (4)

Frage von honeybee zum Thema Google Android ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (27)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Outlook & Mail
Outlook Suche liefert kein Ergebnise mehr (8)

Frage von Bjoern-B zum Thema Outlook & Mail ...

Windows Server
gelöst "Kiosk"System für Demoversion und neue Versionen einer Anwendung (7)

Frage von kpieper zum Thema Windows Server ...