Robmantuto 1 Geschrieben 28. November 2016 Autor Melden Geschrieben 28. November 2016 (bearbeitet) Habe es damit versucht: $WshShell = New-Object -comObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("C:\Users\Benutzer\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk") $Shortcut.TargetPath = "%windir%\explorer.exe /e," $ShortCut.IconLocation = "%windir%\explorer.exe" $Shortcut.Save() Das Problem ist, dass er mir unter Ziel den Pfad mit " " einträgt, dann funktioniert die Verknüpfung nicht. bearbeitet 28. November 2016 von Robmantuto
BOfH_666 586 Geschrieben 28. November 2016 Melden Geschrieben 28. November 2016 Anstatt: $Shortcut.TargetPath = "%windir%\explorer.exe /e," Probier ma so: $Shortcut.TargetPath = '%windir%\explorer.exe' $Shortcut.Arguments = '/e,'
Robmantuto 1 Geschrieben 29. November 2016 Autor Melden Geschrieben 29. November 2016 (bearbeitet) Super, danke! Habe da noch eine Frage zu dem Befehl: $Shortcut = $WshShell.CreateShortcut("C:\Users\Benutzer\MeinUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk") Ich würde gerne eine Variable für den "Benutzer" einsetzen. Es soll der angemeldete Benutzer ausgelesen und eingetragen werden. Habe es mit: $strName = $env:username $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\$strName\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk") Funktioniert aber nicht. Da denke ich wahrscheinlich zu einfach. Habe es: $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\$env:username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk") Das habe ich weggelassen: $strName = $env:username bearbeitet 29. November 2016 von Robmantuto
BOfH_666 586 Geschrieben 29. November 2016 Melden Geschrieben 29. November 2016 Hmmm ... und Du bekommst keine Fehlermeldung, wenn Du diesen Code ausführst?
Sunny61 833 Geschrieben 29. November 2016 Melden Geschrieben 29. November 2016 Probier es so: $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\" & $strName & "\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk"
BOfH_666 586 Geschrieben 29. November 2016 Melden Geschrieben 29. November 2016 Habe es: $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\$env:username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk" Hmmm ... ok, ich gehe mal davon aus, dass es nur ein Tippfehler hier im Forum ist, aber da fehlt die schließende Klammer. Vielleicht üben wir das mit dem Kopieren und Einfügen auch noch mal .... ;)
Beste Lösung Robmantuto 1 Geschrieben 29. November 2016 Autor Beste Lösung Melden Geschrieben 29. November 2016 (bearbeitet) Hmmm ... ok, ich gehe mal davon aus, dass es nur ein Tippfehler hier im Forum ist, aber da fehlt die schließende Klammer. Vielleicht üben wir das mit dem Kopieren und Einfügen auch noch mal .... ;) Korrigiert :cool: Probier es so: $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\" & $strName & "\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk" Das hat leider nicht funktioniert, aber ich habe es nochmal getestet, das funktioniert auch, irgendetwas war vorher falsch: $strName = $env:username $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\$strName\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk" Die zweite Lösung wie schon oben erwähnt: $Shortcut = $WshShell.CreateShortcut("C:\Benutzer\$env:username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk" bearbeitet 29. November 2016 von Robmantuto
Robmantuto 1 Geschrieben 30. November 2016 Autor Melden Geschrieben 30. November 2016 Jetzt habe ich ein weiteres Problem und zwar starte ich das Script mit einem Adminkonto, dadurch, dass ich das tue, möchte er Verknüpfungen für das Adminkonto anlegen, das aber nicht funktioniert, da ich mit einem normalen Nutzer angemeldet bin. Ich gehe davon aus, dass daran liegt, dass ich env:username auslese. Wie kann ich am besten den aktuellen ANGEMELDETEN User auslesen und ihn im Script einbauen, sodass Verknüpfungen beim angemeldeten User angelegt werden und nicht versucht wird, für den Admin Verknüpfungen anzulegen? Ich könnte natürlich den User vorübergehend zum Admin machen, aber ich würde das vermeiden wollen.
Sunny61 833 Geschrieben 30. November 2016 Melden Geschrieben 30. November 2016 Für das Script ist der ausführende Admin der ANGEMELDETE User. Du wirst also deine Vorgehensweise überdenken müssen.
BOfH_666 586 Geschrieben 30. November 2016 Melden Geschrieben 30. November 2016 Dafür gibt es einen Trick. Der ist aber ein bissl tricky. Der im Moment interaktiv an einem Windows-Client angemeldete Benutzer wird in der Registry im Zweig 'HKEY_USERS' angelegt. Dort hat er dann (und nur er) einen Schlüssel 'Volatile Environment'. In diesem Schlüssel findet sich dann auch wieder ein Zeichenfolgen-Wert mit dem Namen 'Username', den Du auslesen kannst. ;) :cool: :thumb1:
MurdocX 1.002 Geschrieben 30. November 2016 Melden Geschrieben 30. November 2016 Probiere es mal damit ;) $LastLoggendOnUser = Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI -name LastLoggedOnUser
Robmantuto 1 Geschrieben 2. Dezember 2016 Autor Melden Geschrieben 2. Dezember 2016 Danke, eine Super-Lösung, werde es mal testen und hier berichten, habe mir erstmal damit geholfen, den User vorübergehend zum Admin zu machen, das hilft dann auch.
MurdocX 1.002 Geschrieben 2. Dezember 2016 Melden Geschrieben 2. Dezember 2016 (bearbeitet) ...habe mir erstmal damit geholfen, den User vorübergehend zum Admin zu machen, das hilft dann auch. So lange das nicht zur Regel wird ;) bearbeitet 2. Dezember 2016 von MurdocX
Robmantuto 1 Geschrieben 2. Dezember 2016 Autor Melden Geschrieben 2. Dezember 2016 So habe es getestet, leider nicht funktioniert es nicht so wie ich es mir gedacht habe. Mein LogonUI heisst .\Benutzer und wenn ich es als Variable einsetze, dann versucht er einen Link mit diesem Pfad C:\Users\.\Benutzer\... zu erstellen und das klappt nicht. Kann man irgendwie die ersten zwei Zeichen per Script weglassen?
MurdocX 1.002 Geschrieben 2. Dezember 2016 Melden Geschrieben 2. Dezember 2016 So habe es getestet, leider nicht funktioniert es nicht so wie ich es mir gedacht habe. Mein LogonUI heisst .\Benutzer und wenn ich es als Variable einsetze, dann versucht er einen Link mit diesem Pfad C:\Users\.\Benutzer\... zu erstellen und das klappt nicht. Kann man irgendwie die ersten zwei Zeichen per Script weglassen? Klar! Dazu muss nur der Inhalt der Variable bearbeitet werden. Probiere es mal mit "Substring". https://technet.microsoft.com/en-us/library/ee692804.aspx http://blog.stefanrehwald.de/2013/03/03/powershell-03-2-strings-bearbeiten-und-untersuchen-mit-funktionen-wie-trim-substring-contains-tolower-toupper-startswith-endswith/
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden