none
Powershell PackageFullName einer App als Variable speichern RRS feed

  • Frage

  • Hallo Leute

    Ich suche eine Möglichkeit den PackageFullName einer App z.B. StickyNotes abzufragen und in eine Variable zu speichern, welche dann zum Installieren der App benutzt werden kann.

    heisst:

    Wenn StickyNotes oder der Rechner nach dem Bereinigen nicht mehr für den User installiert sind, möchte ich diese nachinstallieren. Beim Versuch dies mit z.B. diesem Befehl zu machen, habe ich festgestellt, dass das nicht immer sauber funktioniert.

    Add-AppxPackage-register"C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_*\appxmanifest.xml"-DisableDevelopmentMode

    Verwende ich allerdings den gleichen Befehl noch mit der Version dran (Beispiel StickyNotes)

    Add-AppxPackage-register"C:\Program Files\WindowsApps\Microsoft.MicrosoftStickyNotes_3.1.46.0_x64*\appxmanifest.xml"-DisableDevelopmentMode

    funktioniert es wunderbar.

    Da ich nun aber die Version nicht immer genau kenne, wollte ich die Version zuerst auslesen und dann installieren.

    Das nun halt eben automatisch in einem PowerShell script.

    Kann mir da jemand helfen. Ich hab noch keine Ahnung wie man mit Variablen umgeht oder wie ich das machen könnte.

    Herzlichen Dank

    Trix

    Dienstag, 25. Februar 2020 09:51

Antworten

  • Achso ok =)

    Wenn du 

    Get-AppxPackage Microsoft.WindowsCamera

    abfragst, bekommst du ja alle Informationen des Objekt zurückgeliefert. Auch die Versionsnummer. Was dir aber wahrscheinlich noch mehr hilft ist der der PackageFullName.

    Den kannst du entweder über 

    Get-AppxPackage Microsoft.WindowsCamera | Select-Object -Property PackageFullName


    abfragen, oder 

    über

    $Package = Get-AppxPackage Microsoft.WindowsCamera
    
    $Package.PackageFullName

    Also müsste bei dir eigentlich:

    Get-AppxPackage Microsoft.WindowsCamera | Select-Object -Property PackageFullName | Add-AppxPackage
    
    oder
    
    $Package = Get-AppxPackage Microsoft.WindowsCamera
    
    $Package.PackageFullName | Add-AppxPackage
    
    

    machen, was du willst.

    Gruß

    • Als Antwort markiert Trix88 Dienstag, 25. Februar 2020 13:32
    Dienstag, 25. Februar 2020 13:12

Alle Antworten

  • Ich hab noch keine Ahnung wie man mit Variablen umgeht oder wie ich das machen könnte.

    Hast Du denn schon mal danach gesucht? Was hast Du denn bisher schon probiert?

    Die Verfügbaren Apps auslesen kannst Du mit Get-AppxPackage

    Variablen brauchst Du dafür bei Powershell nicht. Die Powershell arbeitet mit Objekten und deren Attributen. Das Grundprinzip solltest Du aber schon verstanden haben.

    Übrigens: Wenn Du Code oder Beispieldaten oder Konsolen-Ausgaben postest, formatier diese bitte bitte als Code.

    Danke.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH-666 Dienstag, 25. Februar 2020 10:29
    Dienstag, 25. Februar 2020 10:28
  • Danke für Deinen Beitrag.

    ähm, als Code posten? wie soll das aussehen?
    mit Google hab ich leider absolut nichts gefunden, was ich ableiten könnte.

    Also mit get-appxpackage Microsoft.WindowsCamera

    krieg ich die App aufgeschlüsselt. Nun brauch ich aber nur den PackageFullName der bestimmt werden soll und dann bei dem nicht korrekt dargestellten Code oben im ersten Beitrag eingesetzt werden soll.

    C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_*  soll automatsch ersetzt werden durch die Abfrage resp. im Moment bei mir durch

    C:\Program Files\WindowsApps\Microsoft.WindowsCamera_2018.825.120.0_x64__8wekyb3d8bbwe oder

    C:\Program Files\WindowsApps\Microsoft.WindowsCamera_2018.825.120.0_x64__*

    Wie kann ich das ersetzten?


    • Bearbeitet Trix88 Dienstag, 25. Februar 2020 11:09
    Dienstag, 25. Februar 2020 11:08
  • ähm, als Code posten?

    Nicht als Code posten, sondern als Code formatieren! ;-)   Hier, guck mal das hier: How to Use the Code Feature in a TechNet Forum Post.

    Hast Du denn irgend eine Ahnung, wie man mit der Powershell und deren speziellen Fähigkeiten arbeitet? Wenn nciht, sollte das Dein nächster Schritt sein. ;-)

    Ich kann es im Moment nicht testen, aber inder der Regel kann man die Ausgabe, also das resultierende Object eines cmdlets, per Pipe and das nächste cmdlet weiterleiten. Im Idealfall also so hier:

    Get-AppxPackage Microsoft.WindowsCamera | Add-AppxPackage


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Dienstag, 25. Februar 2020 12:03

  •  get-appxpackage Microsoft.WindowsCamera


    Das ist schon Code. get-appxpackage ist ein cmdlet. Code als Code formatierten kannst du, wenn du im Editor des Forums den zweiten Button von links anklickst. Dann sieht der Code so aus:

     get-appxpackage Microsoft.WindowsCamera

    Was du brauchst ist eine Prüfung ob der Ordner "C:\Program Files\WindowsApps\dieappdieduprüfenwillst" vorhanden ist und falls nein, soll er es installieren.

    Dafür brauchst du 

    if

    Wie man Ordner auf vorhanden sein prüft, sagt dir google.

    Wie du den Code schreiben musst, musst du selbst lernen. Wenn du Code hast und daraus fragen entstehen, haben wir möglicherweise eine Antwort.

    Gruß

    Dienstag, 25. Februar 2020 12:11
  • Hi

    Danke. irgendwie verstehen wir uns falsch.

    Mein Problem ist, dass genau dieser Code

    Get-AppxPackage Microsoft.WindowsCamera | Add-AppxPackage

    nicht funktioniert. die Information muss sein.

    Get-AppxPackage Microsoft.WindowsCamera_2018.825.120.0_x64__* | Add-AppxPackage

    Da ich aber nicht andauernd meine Scripts die via SCCM und  GPO laufen anpassen will, weil es z.B. eine neue Version gab, die ich ev. nicht mitbekommen hab und neu z.B.

    Get-AppxPackage Microsoft.WindowsCamera_2019.945.080.0_x64__* | Add-AppxPackage

    heissen, muss die Version der App eben ausgelesen werden. automatisch.

    Ohne diese Info funktioniert der ganze Rest meiner CMDs nicht sauber.

    Das einzige was mir fehlt ist der richtige Befehl um nur die komplette Angabe der aktuell vorhandenen Version der App zu bekommen.

    Hoffe, ich habs jetzt besser angeben können, was mi vorschwebt.

    Dienstag, 25. Februar 2020 12:57
  • Achso ok =)

    Wenn du 

    Get-AppxPackage Microsoft.WindowsCamera

    abfragst, bekommst du ja alle Informationen des Objekt zurückgeliefert. Auch die Versionsnummer. Was dir aber wahrscheinlich noch mehr hilft ist der der PackageFullName.

    Den kannst du entweder über 

    Get-AppxPackage Microsoft.WindowsCamera | Select-Object -Property PackageFullName


    abfragen, oder 

    über

    $Package = Get-AppxPackage Microsoft.WindowsCamera
    
    $Package.PackageFullName

    Also müsste bei dir eigentlich:

    Get-AppxPackage Microsoft.WindowsCamera | Select-Object -Property PackageFullName | Add-AppxPackage
    
    oder
    
    $Package = Get-AppxPackage Microsoft.WindowsCamera
    
    $Package.PackageFullName | Add-AppxPackage
    
    

    machen, was du willst.

    Gruß

    • Als Antwort markiert Trix88 Dienstag, 25. Februar 2020 13:32
    Dienstag, 25. Februar 2020 13:12
  • :-)

    Ja super!

    Damit kann ich was anfangen. Danke.
    Versuche das bei mir einzubauen und teste dann, ob's nun endlich das macht, was ich will.

    Ich danke Dir!

    Dienstag, 25. Februar 2020 13:32