Benutzer mit den meisten Antworten
Powershell PackageFullName einer App als Variable speichern

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
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
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
-
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
-
ä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''
-
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ß
-
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.
-
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