Hallo,
ich muss ein PowerShell-Skript aus einem Paket ausführen, um nach einem Upgrade unnötige Apps von Windows 10 zu entfernen.
Ich habe dazu bereits einige Forenbeiträge gefunden, aber die Vorgehensweise ist unterschiedlich.
Gibt es eine elegantere Lösung?
Zur Information:
- Installierte WAPT-Version: 1.3.13
- Server-Betriebssystem: Debian Jessie
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10.
Vielen Dank.
[GELÖST] Wie führt man ein PowerShell-Skript aus?
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Zuletzt bearbeitet von olaplanche am 19. Dezember 2018 um 10:12 Uhr, 2 Mal bearbeitet.
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Sfonteneau
- WAPT-Experte
- Nachrichten: 2322
- Registriert: 10. Juli 2014 - 23:52 Uhr
- Kontakt:
Verwenden Sie die Funktion run_powershell
Zum Beispiel :
Es ist am saubersten
Zum Beispiel :
Code: Alle auswählen
run_powershell('Get-AppxPackage -Name Microsoft.Windows.Cortana -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}')-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Hallo und vielen Dank für die Antwort.
Ich teste derzeit mit folgendem Paket:
Nur der mittlere Befehl scheint zu funktionieren (mit einem neuen Benutzerkonto gibt es keine Probleme). Ich finde keine Informationen zur Funktion `run_powershell`; gibt es eine Möglichkeit, wie in der PowerShell-Konsole, Feedback zu erhalten? Die Wapt-Konsole meldet keine Fehler, trotzdem werden die Apps nicht vom Administratorkonto entfernt!
DANKE
Ich teste derzeit mit folgendem Paket:
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
def install():
run_powershell('Get-AppXPackage -User Administrateur | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage')
run_powershell('Get-appxprovisionedpackage –online | where-object {$_.packagename –notlike “*store*”} | Remove-AppxProvisionedPackage -online')
run_powershell('Get-AppxPackage -AllUsers | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage')DANKE
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Zusätzliche Information:
Ich verwende die x64-Version von PowerShell, und dies könnte an den Einschränkungen dieser Version für das Systemkonto liegen.
Ich verwende die x64-Version von PowerShell, und dies könnte an den Einschränkungen dieser Version für das Systemkonto liegen.
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Guten Morgen,
Ich bringe dieses Problem erneut zur Sprache, da ich es immer noch nicht gelöst habe.
In der Zwischenzeit hat sich einiges verändert, nämlich:
- Installierte WAPT-Version: 1.6.2.7
- Server-Betriebssystem: Debian Stetch
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Als Nächstes verwende ich während meiner MDT-Bereitstellung ein neues Skript; hier ist es:
Ich würde es gerne in einem wapt-Paket verwenden, aber ich weiß nicht wie...
Kann mir jemand den richtigen Weg weisen?
DANKE
Ich bringe dieses Problem erneut zur Sprache, da ich es immer noch nicht gelöst habe.
In der Zwischenzeit hat sich einiges verändert, nämlich:
- Installierte WAPT-Version: 1.6.2.7
- Server-Betriebssystem: Debian Stetch
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Als Nächstes verwende ich während meiner MDT-Bereitstellung ein neues Skript; hier ist es:
Code: Alle auswählen
# Functions
function Write-LogEntry {
param(
[parameter(Mandatory=$true, HelpMessage="Value added to the RemovedApps.log file.")]
[ValidateNotNullOrEmpty()]
[string]$Value,
[parameter(Mandatory=$false, HelpMessage="Name of the log file that the entry will written to.")]
[ValidateNotNullOrEmpty()]
[string]$FileName = "RemovedApps.log"
)
# Determine log file location
$LogFilePath = Join-Path -Path $env:windir -ChildPath "Temp\$($FileName)"
# Add value to log file
try {
Add-Content -Value $Value -LiteralPath $LogFilePath -ErrorAction Stop
}
catch [System.Exception] {
Write-Warning -Message "Unable to append log entry to RemovedApps.log file"
}
}
# Get a list of all apps
Write-LogEntry -Value "Starting built-in AppxPackage and AppxProvisioningPackage removal process"
$AppArrayList = Get-AppxPackage -PackageTypeFilter Bundle -AllUsers | Select-Object -Property Name, PackageFullName | Sort-Object -Property Name
# White list of appx packages to keep installed
$WhiteListedApps = @(
"Microsoft.DesktopAppInstaller",
"Microsoft.WindowsCalculator",
"Microsoft.WindowsStore"
)
# Loop through the list of appx packages
foreach ($App in $AppArrayList) {
# If application name not in appx package white list, remove AppxPackage and AppxProvisioningPackage
if (($App.Name -in $WhiteListedApps)) {
Write-LogEntry -Value "Skipping excluded application package: $($App.Name)"
}
else {
# Gather package names
$AppPackageFullName = Get-AppxPackage -Name $App.Name | Select-Object -ExpandProperty PackageFullName
$AppProvisioningPackageName = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -like $App.Name } | Select-Object -ExpandProperty PackageName
# Attempt to remove AppxPackage
if ($AppPackageFullName -ne $null) {
try {
Write-LogEntry -Value "Removing application package: $($App.Name)"
Remove-AppxPackage -Package $AppPackageFullName -ErrorAction Stop | Out-Null
}
catch [System.Exception] {
Write-LogEntry -Value "Removing AppxPackage failed: $($_.Exception.Message)"
}
}
else {
Write-LogEntry -Value "Unable to locate AppxPackage for app: $($App.Name)"
}
# Attempt to remove AppxProvisioningPackage
if ($AppProvisioningPackageName -ne $null) {
try {
Write-LogEntry -Value "Removing application provisioning package: $($AppProvisioningPackageName)"
Remove-AppxProvisionedPackage -PackageName $AppProvisioningPackageName -Online -ErrorAction Stop | Out-Null
}
catch [System.Exception] {
Write-LogEntry -Value "Removing AppxProvisioningPackage failed: $($_.Exception.Message)"
}
}
else {
Write-LogEntry -Value "Unable to locate AppxProvisioningPackage for app: $($App.Name)"
}
}
}
# White list of Features On Demand V2 packages
Write-LogEntry -Value "Starting Features on Demand V2 removal process"
$WhiteListOnDemand = "NetFX3|Language|Browser.InternetExplorer"
# Get Features On Demand that should be removed
$OnDemandFeatures = Get-WindowsCapability -Online | Where-Object { $_.Name -notmatch $WhiteListOnDemand -and $_.State -like "Installed"} | Select-Object -ExpandProperty Name
foreach ($Feature in $OnDemandFeatures) {
try {
Write-LogEntry -Value "Removing Feature on Demand V2 package: $($Feature)"
Get-WindowsCapability -Online -ErrorAction Stop | Where-Object { $_.Name -like $Feature } | Remove-WindowsCapability -Online -ErrorAction Stop | Out-Null
}
catch [System.Exception] {
Write-LogEntry -Value "Removing Feature on Demand V2 package failed: $($_.Exception.Message)"
}
}
# Complete
Write-LogEntry -Value "Completed built-in AppxPackage and AppxProvisioningPackage removal process"Kann mir jemand den richtigen Weg weisen?
DANKE
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Ich habe mein Problem mit folgendem Code gelöst:
Sie müssen die Ausführung von PowerShell-Skripten auf den betroffenen Rechnern aktivieren oder den Parameter "-executionpolicy bypass" hinzufügen
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
#import subprocess
uninstallkey = []
def install():
run('powershell.exe -NoProfile -NonInteractive -File RemoveBuiltinApps.ps1')- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
Jeancharles
- Nachrichten: 21
- Anmeldung: 11. Juni 2019 - 10:02 Uhr
Hallo,
etwas spät, aber wäre es nicht besser, den PowerShell-Befehl so zu ändern, dass "-executionpolicy bypass" direkt in den Befehl eingefügt wird?
etwas spät, aber wäre es nicht besser, den PowerShell-Befehl so zu ändern, dass "-executionpolicy bypass" direkt in den Befehl eingefügt wird?
-
Olaplanche
- Nachrichten: 178
- Anmeldung: 26. Januar 2017 - 11:11 Uhr
Guten Morgen,
Das ist genau das, was ich in meinem Satz angedeutet habe
:
Das ist genau das, was ich in meinem Satz angedeutet habe
Sie müssen die Ausführung von PowerShell-Skripten auf den betroffenen Rechnern aktivieren oder den Parameter "-executionpolicy bypass" hinzufügen.
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
Jeancharles
- Nachrichten: 21
- Anmeldung: 11. Juni 2019 - 10:02 Uhr
Ah ja, genau, beim Lesen merke ich, dass 
ich zu schnell vorgehe und dabei die Hälfte der Informationen vergesse!
Danke!
ich zu schnell vorgehe und dabei die Hälfte der Informationen vergesse!
Danke!
