none
Ordner per Script an Taskbar anheften RRS feed

  • Frage

  • Hallo zusammen,

     

    ich habe ein (für mich) kniffeliges Powershellproblem. Leider bin ich ein absoluter Powershell-Beginner.

    Alles beschriebene spielt sich auf Win7 32 bit ab.

    Ich will einen Ordner (der sich im Programmmenü befindet) an die Taskleiste pinnen. Um einen Ordner direkt aufzurufen muss man den Paramter /e,Pfad an die explorer.exe anhängen. Welche Anführungszeichen, Hochkommatas, Ampersands, usw. muss ich wie kombinieren, damit das ganze ein String wird, wenn der Pfad selber noch Leerzeichen aufweist?

    Ich versuche das mal in ein Beispiel zu verpacken:

    - Client OS ist Win7 32bit
    - Mein Add-toTaskbar.ps1 liegt unter \\Server\Share$\

    -Das Skript Add-toTaskbar.ps1 kommt von hier:
    http://blog.crayon.no/blogs/ragnar/archive/2009/04/17/pin-applications-to-windows-7-taskbar.aspx
    Evtl. ist dieses Skript für diesen Zweck nicht gut genug?

    - Zur Taskleiste hinzugefügt werden soll ein Ordner, der in alle Programme aufgelistet ist (man beachte die Leerzeichen!), also:
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Test Eins

     

    Das ist jetzt einer meiner (vielen) Versuche. Ich kriegs einfach nicht hin:

    %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe \\Server\Share$\Add-ToTaskbar.ps1 "%SystemRoot%\explorer.exe /e,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Test Eins"

     

    Vielen Dank

    Sven

    Dienstag, 25. Januar 2011 11:25

Antworten

  • Also, grundsätzlich kannst du programme (!) mit diesem kurzen Script an die Taskbar anheften:

    $shell=New-Object -com "Shell.Application" 
    $folder=$shell.Namespace("D:\")
    $item = $folder.Parsename("Snipping Tool.exe")
    $Verb = "An Tas&kleiste anheften"
    
    foreach ($itemverb in $item.verbs()) { 
    	if ($itemverb.name -eq $Verb){
    	 $itemverb.DoIt()
    	}
    }
    

    Für Ordner funktioniert das nicht, da Ordner im Explorer (im Gegensatz zu Programmen) auch keinen Kontextmenü-Eintrag "an Taskleiste anheften" haben. (Den haben sie nur, wenn man auf dem bereits geöffneten Ordner in der Taskleiste klickt) "An Taskleiste anheften"ist also kein verfügbares Verb für einen Ordner.
    Wenn überhaupt könnte man also den Explorer selbst anheften, aber wie du schon richtig erkannt hast, müsste man ebenso eine Befehlszeile mit Ordnernamen übergeben. Ich wüsste nicht wie man das machen sollte und bezweifle auch das möglich ist.

    Die einzige mir bekannte Möglichkeit einen Ordner automatisiert an die Taskbar zu heften ist hier erklärt und ist aber eher eine Möglichkeit einen Snapshot einer bestehenden Taskbar auf andere Rechner zu exportieren.

    Ganz unabhängig von der Taskbar-Frage: wenn man Anführungszeichen in einen String sozusagen wörtlich übergeben will macht man das so:

    $test = "explorer.exe /n, /e, `"C:\mein pfad\irgend etwas\xyz`""
    

    Durch das Hochkomma vorm Anführungszeichen wird dieses unverändert in den String übernommen.

    Grüße, Denniver

    Mittwoch, 26. Januar 2011 02:53
    Moderator

Alle Antworten

  • Moin,

    bevor ich da jetzt lange suche: Hast Du den Hinweis im Script gesehen, dass
    das nur mit einem englischen BS funktioniert und Du die erste Zeile
    "$PinVerb="Pin to Taskbar" " anpassen musst, für eine andere Sprache?


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    Dienstag, 25. Januar 2011 18:12
  • Also, grundsätzlich kannst du programme (!) mit diesem kurzen Script an die Taskbar anheften:

    $shell=New-Object -com "Shell.Application" 
    $folder=$shell.Namespace("D:\")
    $item = $folder.Parsename("Snipping Tool.exe")
    $Verb = "An Tas&kleiste anheften"
    
    foreach ($itemverb in $item.verbs()) { 
    	if ($itemverb.name -eq $Verb){
    	 $itemverb.DoIt()
    	}
    }
    

    Für Ordner funktioniert das nicht, da Ordner im Explorer (im Gegensatz zu Programmen) auch keinen Kontextmenü-Eintrag "an Taskleiste anheften" haben. (Den haben sie nur, wenn man auf dem bereits geöffneten Ordner in der Taskleiste klickt) "An Taskleiste anheften"ist also kein verfügbares Verb für einen Ordner.
    Wenn überhaupt könnte man also den Explorer selbst anheften, aber wie du schon richtig erkannt hast, müsste man ebenso eine Befehlszeile mit Ordnernamen übergeben. Ich wüsste nicht wie man das machen sollte und bezweifle auch das möglich ist.

    Die einzige mir bekannte Möglichkeit einen Ordner automatisiert an die Taskbar zu heften ist hier erklärt und ist aber eher eine Möglichkeit einen Snapshot einer bestehenden Taskbar auf andere Rechner zu exportieren.

    Ganz unabhängig von der Taskbar-Frage: wenn man Anführungszeichen in einen String sozusagen wörtlich übergeben will macht man das so:

    $test = "explorer.exe /n, /e, `"C:\mein pfad\irgend etwas\xyz`""
    

    Durch das Hochkomma vorm Anführungszeichen wird dieses unverändert in den String übernommen.

    Grüße, Denniver

    Mittwoch, 26. Januar 2011 02:53
    Moderator