none
Verknüpfung mit Parametern erstellen RRS feed

  • Frage

  • Hallo Freunde!

    Ich möchte gerne per posh die netzwerk adapter guid's auslesen am computer und diese dann als verknüpfung bereit stellen.

    ein ersten versuch hab ich hier gestartet:

    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("C:\LAN.lnk")
    $Shortcut.TargetPath = "C:\Windows\explorer.exe ::{208D2C60-3AEA-1069-A2D7-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}\::{04250862-82EB-4F3F-BAF5-47F1801BE25C}"
    $Shortcut.Save()

    leider mag er die doppelpunkte nicht:( wie kann ich das beheben?

    Danke!


    Montag, 1. Oktober 2012 07:41

Antworten

  • Hallo Freund! :)

     

    Du musst die GUID als Argument übergeben, dann gehts:

    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("d:\LAN.lnk")
    $Shortcut.TargetPath = "C:\Windows\explorer.exe"
    $Shortcut.Arguments = "::{7007ACC7-3202-11D1-AAD2-00805FC1270E}\::{62D0B4B2-932B-4FC0-92EE-8DAED57AD5F9}"
    $Shortcut.Save()

    Überprüfe aber vorher mit einem manuell angelegten Shortcut, ob die Guids so richtig sind.
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 1. Oktober 2012 10:29
    Moderator

Alle Antworten

  • Hallo Freund! :)

     

    Du musst die GUID als Argument übergeben, dann gehts:

    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("d:\LAN.lnk")
    $Shortcut.TargetPath = "C:\Windows\explorer.exe"
    $Shortcut.Arguments = "::{7007ACC7-3202-11D1-AAD2-00805FC1270E}\::{62D0B4B2-932B-4FC0-92EE-8DAED57AD5F9}"
    $Shortcut.Save()

    Überprüfe aber vorher mit einem manuell angelegten Shortcut, ob die Guids so richtig sind.
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 1. Oktober 2012 10:29
    Moderator
  • Ich empfehle immer dass man in der PowerShell immer die einfachen Anführungszeichen nutzen soll!
    Die doppelten Anführungszeichen sollte man in der PowerShell nur verwenden wenn man bewusst eine Ersetzung in dem String herbeiführen will!

    Ein Doppelpunkt in einem String wird von der PowerShell als Scope Operator behandelt.
    Genauso wie auch Variablen in einem String mit doppelten Anführungszeichen expandiert werden!

    Dies ist aber hier nicht der Fehler ;-))

    Bei dem Anlegen wird der TargetPath auf Plausibilität überprüft! Der TargetPath muss für Windows auf eine bekannte Datei zeigen! (Registrierte Dateiendung)
    Dies ist hier nicht der Fall !
    Du darfst die Argumenten nicht in den TargetPath setzen sondern in die Arguments ;-))

    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut('C:\LAN.lnk')
    $Shortcut.TargetPath = 'C:\Windows\explorer.exe'
    $Shortcut.Arguments = "::{208D2C60-3AEA-1069-A2D7-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}\::{04250862-82EB-4F3F-BAF5-47F1801BE25C}"
    $Shortcut.Save()
    P.S. Bitte Code in diesem Forum auch als Code Posten ! (Das kleine Symbol mit den <> Zeichen)

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Montag, 1. Oktober 2012 10:56
  • >Die doppelten Anführungszeichen sollte man in der PowerShell nur verwenden wenn man bewusst eine Ersetzung in dem String herbeiführen will!

    Das muss man nicht so eng sehen. :) Man kann problemlos immer die doppelten Anführungszeichen benutzen (die nebenbei einfach bequemer zu tippen sind), ausser in dem einen einzigen Fall, in dem man einen String innerhalb der Anführungszeichen hat und ihn nicht ersetzen will, was zumindest bei mir extrem selten vorkommt.

    Immer die einzelnen AZ zu benutzen ist genauso eine Falle wie umgekehrt. Wichtig ist nur sich über den Unterschied im Klaren zu sein.

    Grüße,  Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 1. Oktober 2012 11:11
    Moderator
  • Denniver Reining,

    Genau diesen einzigen Fall verwende ich am häufigsten. :)


    The following is my signature:

    Powershell Programmer & Advanced Lua Programmer | Location: Switzerland

    Beside that, whenever you see a reply, you think it's helpful, mark it as helpful! And whenever you see a reply being an answer to the mainquestion of the thread, mark it as answer (if you opened the thread).




    Montag, 1. Oktober 2012 11:13
  • Das bestätigt nur, das es vor allem wichtig ist den Unterschied zu kennen.:)
    Mir ging es nur darum klarzustellen das es hier keine allgemeingültige Regel gibt.


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 1. Oktober 2012 11:22
    Moderator
  • Er schreibt ja auch "...sollte man..." und nicht "...muss man...", nun aber genug zu den Pingeligkeiten, das ist schon wieder ganz abseits vom eigentlichen Thema. ;)


    The following is my signature:

    Powershell Programmer & Advanced Lua Programmer | Location: Switzerland

    Beside that, whenever you see a reply, you think it's helpful, mark it as helpful! And whenever you see a reply being an answer to the mainquestion of the thread, mark it as answer (if you opened the thread).




    Montag, 1. Oktober 2012 11:25