Jump to content

Verknüpungen mit Parametern an die Taskleiste anhängen


Direkt zur Lösung Gelöst von Robmantuto,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Habe es so gemacht:

$AktBenutzer = $LastLoggendOnUser = Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI -name LastLoggedOnUser
$Ausgabe = $AktBenutzer
$Benutzer = $Ausgabe.remove(0,2)

dann setze ich $Benutzer im Befehl ein und es funktioniert.

bearbeitet von Robmantuto
Link zu diesem Kommentar

Inzwischen habe ich ein Skript zusammengestellt, das wunderbar funktioniert, aber nur, wenn ich ihn im ISE ausführe. Wenn ich es als Skript per Verknüpfung ausführe, funktioniert es nicht.

Copy-Item E:\Daten\PinnedApplications C:\Windows\System32\WindowsPowerShell\v1.0\Modules -Recurse
Import-Module PinnedApplications
$AktBenutzer =  Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI -name LastLoggedOnUser
$Ausgabe = $AktBenutzer
$LoggedUser = $Ausgabe.Remove(0,2)
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath "C:\Program Files\Internet Explorer\iexplore.exe"
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath "C:\Program Files (x86)\Windows Media Player\wmplayer.exe"
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath C:\windows\explorer.exe
Start-Sleep -s 2
$WshShell = New-Object -ComObject WScript.Shell
$ShortCut = $WshShell.CreateShortcut("C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk")
$ShortCut.TargetPath = 'C:\windows\explorer.exe'
$ShortCut.Arguments = '/e,'
$ShortCut.IconLocation = "C:\windows\explorer.exe"
$ShortCut.Save()
Start-Sleep -s 2
Set-PinnedApplication -Action PinToTaskbar -FilePath "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk"
Remove-Item "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk"
Rename-Item -Path "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer (2).lnk" -NewName "Windows-Explorer.lnk"
Set-PinnedApplication -Action PinToTaskbar -FilePath "C:\Program Files (x86)\Microsoft Office\Office15\Excel.exe"
Set-PinnedApplication -Action PinToTaskbar -FilePath "C:\Program Files (x86)\Microsoft Office\Office15\winword.exe"
Start-Sleep -s 3
Set-PinnedApplication -Action PinToStartMenu -FilePath "C:\Program Files (x86)\Microsoft Office\Office15\Winword.exe"
Set-PinnedApplication -Action PinToStartMenu -FilePath "C:\Program Files (x86)\Microsoft Office\Office15\Excel.exe"
Start-Sleep -s 3
Rename-Item -Path "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Word (Desktop).lnk" -NewName "Word.lnk"
Start-Sleep -s 3
Rename-Item -Path "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Excel (Desktop).lnk" -NewName "Excel.lnk"
Copy-Item "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows-Explorer.lnk" "C:\Users\$LoggedUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Windows-Explorer.lnk"

Das Ganze führe ich mit einer Admin-Abfrage aus und das Ziel meiner Verknüpfung lautet:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command ". 'Mein Pfad\04.Taskleiste anpassen.ps1'"
bearbeitet von Robmantuto
Link zu diesem Kommentar

@Sunny61

 

Es ist auf meinem USB-Stick, die Datei wird einfach in den Zielordner kopiert, damit diese importiert werden kann. Das habe ich so geschrieben, falls ich einen sauberen Rechner habe, auf dem ich die Konfiguration durchführen möchte und da das Modul hinzugefügt werden muss.... Und MeinPfad ist auch auf dem STICK.

 

@MurdocX

 

Diesen Befehl habe ich vom ursprünglichen Verfasser des PinnedApplications-Moduls übernommen und es funktioniert auch, da das Modul unter C:\Windows\System32\WindowsPowerShell\v1.0\Modules kopiert wird. Liegt dieser Ordner dort, kann ich das Modul über den Befehl Import, ohne einen Pfad anzugeben, importieren. Hast es ja selbst geschrieben, er sucht nach dem Modul auf dem Rechner und das Modul liegt ja auf dem Rechner.

 

@BOfH_666

 

Ich gehe davon aus, dass meine Verknüpfung gemeint ist. Dieser Befehl funktioniert sehr gut. Gibt es auch im Netz nachzulesen.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command ". 'Mein Pfad\04.Taskleiste anpassen.ps1'"

Deiner funktioniert irgendwie gar nicht, der startet meine PS1-Dateien nicht.

 

Letztendlich muss er irgendwie daran liegen, dass ich die Datei direkt starte, aus dem ISE funktioniert es ja das Skript also muss irgendwie in so einer Art Fenster bzw. Prozess gestartet werden, damit es läuft, so stell ich mir das zumindest vor.

bearbeitet von Robmantuto
Link zu diesem Kommentar

Starte doch mal eine administrative Commandline und verbinde dich damit dann auf dein LW E:\, funktioniert das denn? Wenn ja, starte den Aufruf:

 

 

cd E: [ENTER]
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command ". 'Mein Pfad\04.Taskleiste anpassen.ps1'" [ENTER]

 

Wobei ich mit vorstellen kann, das mit den Anführungsstrichen so nicht passt.

Link zu diesem Kommentar

Habe den Fehler gefunden, leider nicht die Lösung, es liegt daran, dass ich das Skript mit dem Admin-Konto ausführe. Da ich aber mit einem normalen Benutzer angemeldet bin, liegt es wahrscheinlich daran. Starte ich das Skript per "Mit Powershell ausführen" ohne "Als Admin ausführen", dann funktioniert es. Also muss irgendwo in dem importierten Skript eine Abfrage sein, die den Fehler auslöst. Ich finde es nicht, vielleicht Ihr?

###########################################################################" 
 #  
 # 
 # NAME: PinnedApplications.psm1 
 #  
 # AUTHOR: Jan Egil Ring, Crayon 
 # 
 # DATE  : 06.08.2010  
 #  
 # COMMENT: Module with the ability to pin and unpin programs from the taskbar and the Start-menu in Windows 7 and Windows Server 2008 R2. 
 # 
 # This module are based on the Add-PinnedApplication script created by Ragnar Harper and Kristian Svantorp: 
 # http://blogs.technet.com/kristian/archive/2009/04/24/nytt-script-pin-to-taskbar.aspx 
 # http://blog.crayon.no/blogs/ragnar/archive/2009/04/17/pin-applications-to-windows-7-taskbar.aspx 
 # 
 # Johan Akerstrom`s blog: http://cosmoskey.blogspot.com 
 # 
 # For more information, see the following blog post: 
 # http://blog.crayon.no/blogs/janegil/archive/2010/02/26/pin-and-unpin-applications-from-the-taskbar-and-start-menu-using-windows-powershell.aspx 
 # 
 # VERSION HISTORY: 
 # 1.0 17.04.2009 - Initial release by Ragnar Harper and Kristian Svantorp 
 # 1.1 26.02.2010 - Update by Jan Egil Ring. Added the capability to unpin applications. 
 # 1.2 06.08.2010 - Update by Johan Akerstrom. Added full MUI support. 
 #  
 ###########################################################################" 
 
 
function Set-PinnedApplication 
{ 
<#  
.SYNOPSIS  
This function are used to pin and unpin programs from the taskbar and Start-menu in Windows 7 and Windows Server 2008 R2 
.DESCRIPTION  
The function have to parameteres which are mandatory: 
Action: PinToTaskbar, PinToStartMenu, UnPinFromTaskbar, UnPinFromStartMenu 
FilePath: The path to the program to perform the action on 
.EXAMPLE 
Set-PinnedApplication -Action PinToTaskbar -FilePath "C:\WINDOWS\system32\notepad.exe" 
.EXAMPLE 
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath "C:\WINDOWS\system32\notepad.exe" 
.EXAMPLE 
Set-PinnedApplication -Action PinToStartMenu -FilePath "C:\WINDOWS\system32\notepad.exe" 
.EXAMPLE 
Set-PinnedApplication -Action UnPinFromStartMenu -FilePath "C:\WINDOWS\system32\notepad.exe" 
#>  
       [CmdletBinding()] 
       param( 
      [Parameter(Mandatory=$true)][string]$Action,  
      [Parameter(Mandatory=$true)][string]$FilePath 
       ) 
       if(-not (test-path $FilePath)) {  
           throw "FilePath does not exist."   
    } 
    
       function InvokeVerb { 
           param([string]$FilePath,$verb) 
        $verb = $verb.Replace("&","") 
        $path= split-path $FilePath 
        $shell=new-object -com "Shell.Application"  
        $folder=$shell.Namespace($path)    
        $item = $folder.Parsename((split-path $FilePath -leaf)) 
        $itemVerb = $item.Verbs() | ? {$_.Name.Replace("&","") -eq $verb} 
        if($itemVerb -eq $null){ 
            throw "Verb $verb not found."             
        } else { 
            $itemVerb.DoIt() 
        } 
            
       } 
    function GetVerb { 
        param([int]$verbId) 
        try { 
            $t = [type]"CosmosKey.Util.MuiHelper" 
        } catch { 
            $def = [Text.StringBuilder]"" 
            [void]$def.AppendLine('[DllImport("user32.dll")]') 
            [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);') 
            [void]$def.AppendLine('[DllImport("kernel32.dll")]') 
            [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);') 
            add-type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util             
        } 
        if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){         
            $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll") 
        } 
        $maxVerbLength=255 
        $verbBuilder = new-object Text.StringBuilder "",$maxVerbLength 
        [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength) 
        return $verbBuilder.ToString() 
    } 
 
    $verbs = @{  
        "PintoStartMenu"=5381 
        "UnpinfromStartMenu"=5382 
        "PintoTaskbar"=5386 
        "UnpinfromTaskbar"=5387 
    } 
        
    if($verbs.$Action -eq $null){ 
           Throw "Action $action not supported`nSupported actions are:`n`tPintoStartMenu`n`tUnpinfromStartMenu`n`tPintoTaskbar`n`tUnpinfromTaskbar" 
    } 
    InvokeVerb -FilePath $FilePath -Verb $(GetVerb -VerbId $verbs.$action) 
} 
 
Export-ModuleMember Set-PinnedApplication
bearbeitet von Robmantuto
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...