Windows Apps entfernen - powershell elevated

Antworten
g.burck
Beiträge: 203
Registriert: 23 Mai 2018, 16:44

Windows Apps entfernen - powershell elevated

Beitrag von g.burck »

Moin,

ich möchte gerne über einen Powershell Aufruf gezielt Windows Apps deinstallieren z.B.:

Code: Alles auswählen

Get-appxprovisionedpackage –online | where-object {$_.packagename –like “*Microsoft.Officehub*”} | Remove-AppxProvisionedPackage -online
Wenn ich es richtig verstanden habe muss ich über ein elevated Winbatch die Powershell ansprechen?

Grüße

Gregor
Zuletzt geändert von g.burck am 02 Apr 2020, 14:00, insgesamt 2-mal geändert.
opsi config editor Version 4.1.9.8.5 (2021/04/12)

opsiconfd 4.2.0.286
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1528
Registriert: 10 Jun 2015, 12:19

Re: Windows Apps entfernen - powershell elevated

Beitrag von m.radtke »

Hi Gegor,

seit einiger Zeit gibt es denn "powershellCall()"


Gruß
Mathias
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
g.burck
Beiträge: 203
Registriert: 23 Mai 2018, 16:44

Re: Windows Apps entfernen - powershell elevated

Beitrag von g.burck »

Danke schon mal.

Läuft das automatisch elevated?
opsi config editor Version 4.1.9.8.5 (2021/04/12)

opsiconfd 4.2.0.286
g.burck
Beiträge: 203
Registriert: 23 Mai 2018, 16:44

Re: Windows Apps entfernen - powershell elevated

Beitrag von g.burck »

Fast gelöst: der Aufruf

Code: Alles auswählen

powershellCall('Get-appxprovisionedpackage -online | where-object {$_.packagename -like "*Microsoft.Officehub*"} | Remove-AppxProvisionedPackage -online')
Löscht brav die App. Jetzt habe ich in der Control Datei eine Property definiert:

Code: Alles auswählen

[ProductProperty]
type: bool
name: microsoft.officehub
description: Entfernt die Office 365 App
default: True
Jetzt eine ganz blöde Frage, wie werte ich die mit if auf true aus?

Code: Alles auswählen

[Actions]
requiredWinstVersion >= "4.10.8.6"
 
DefVar $MicrosoftOfficehub$  
Set $MicrosoftOfficehub$ = GetProductProperty("Microsoft.Officehub","")
 

 
if $MicrosoftOfficehub$ =true
        powershellCall('Get-appxprovisionedpackage -online | where-object {$_.packagename -like "*Microsoft.Officehub*"} | Remove-AppxProvisionedPackage -online')
endif


opsi config editor Version 4.1.9.8.5 (2021/04/12)

opsiconfd 4.2.0.286
g.burck
Beiträge: 203
Registriert: 23 Mai 2018, 16:44

Re: Windows Apps entfernen - powershell elevated

Beitrag von g.burck »

OK muss also

Code: Alles auswählen

if $MicrosoftOfficehub$ = "true"
heißen.
opsi config editor Version 4.1.9.8.5 (2021/04/12)

opsiconfd 4.2.0.286
Benutzeravatar
SisterOfMercy
Beiträge: 1523
Registriert: 22 Jun 2012, 19:18

Re: Windows Apps entfernen - powershell elevated

Beitrag von SisterOfMercy »

Code: Alles auswählen

DefVar $MicrosoftOfficehub$  
Set $MicrosoftOfficehub$ = GetProductProperty("Microsoft.Officehub","true")
  
if $MicrosoftOfficehub$ = "true"
        powershellCall('Get-ProvisionedAppxPackage -online | Where-Object {$_.DisplayName -like "*Microsoft.Officehub*"} | Remove-AppxProvisionedPackage -Online -AllUsers')
endif
I've changed it a bit. Now the default value for the productproperty is true. (which is used if it is not defined in the control file, or if it runs locally, without connection to the opsi server). Also the -AllUsers thing is something you might want.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
feltel
Beiträge: 218
Registriert: 09 Dez 2014, 07:22

Re: Windows Apps entfernen - powershell elevated

Beitrag von feltel »

Du kannst auf Produkt-Properties im Code auch direkt ohne dem Umweg einer Variablenzuweisung zugreifen. Beispiel:

Code: Alles auswählen

if GetProductProperty("install_with_desktop_icon", "False") = "False"
        LinkFolder_Delete_Desktop_Icon
endif
Antworten