Bonjour,
J'ai besoin d'exécuter un script powershell depuis un paquet (pour supprimer les apps inutiles de Windows 10 post-upgrade).
J'ai trouvé plusieurs posts sur le forum à ce propos, mais tous traités différemment !
Existe t-il une solution plus "propre" que les autres ?
Pour info :
- Version de WAPT installée : 1.3.13
- OS du serveur : Debian Jessie
- OS de la machine d'administration/création des paquets : Windows 10
Merci
[RESOLU] exécuter un script powershell ?
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
Dernière modification par olaplanche le 19 déc. 2018 - 10:12, modifié 2 fois.
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- sfonteneau
- Expert WAPT
- Messages : 1787
- Inscription : 10 juil. 2014 - 23:52
- Contact :
utiliser la fonction run_powershell
par exemple :
C'est le plus propre
par exemple :
Code : Tout sélectionner
run_powershell('Get-AppxPackage -Name Microsoft.Windows.Cortana -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}')
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
Bonjour et merci pour la réponse.
Je suis en train de tester avec le paquet suivant :
Seule la commande du milieu semble fonctionner (pas de soucis avec un nouveau compte utilisateur). Je ne trouve rien sur la fonction run_powershell, est-il possible d'avoir un retour d'info comme dans la console powershell ? La console wapt ne remonte aucune erreur, mais pourtant les apps ne sont pas supprimé du compte administrateur !
Merci
Je suis en train de tester avec le paquet suivant :
Code : Tout sélectionner
# -*- 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')
Merci
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
Complément d'info :
J'utilise la version x64 de powershell et cela pourrait être dû à des limitations de celui-ci pour le compte système.
J'utilise la version x64 de powershell et cela pourrait être dû à des limitations de celui-ci pour le compte système.
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
Bonjour,
Je remonte ce problème que je n'ai toujours pas résolu.
Pas mal de chose ont changé entre temps, à savoir :
- Version de WAPT installée : 1.6.2.7
- OS du serveur : Debian Stetch
- OS de la machine d'administration/création des paquets : Windows 10
Ensuite j'utilise un nouveau script lors de mon déploiement MDT, le voici :
Je souhaiterais m'en servir dans un paquet wapt, mais je ne vois pas comment...
Si quelqu'un peut m'aiguiller sur le bon chemin ?
Merci
Je remonte ce problème que je n'ai toujours pas résolu.
Pas mal de chose ont changé entre temps, à savoir :
- Version de WAPT installée : 1.6.2.7
- OS du serveur : Debian Stetch
- OS de la machine d'administration/création des paquets : Windows 10
Ensuite j'utilise un nouveau script lors de mon déploiement MDT, le voici :
Code : Tout sélectionner
# 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"
Si quelqu'un peut m'aiguiller sur le bon chemin ?
Merci
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
J'ai résolu mon problème avec le code suivant :
Il faut penser à activer l’exécution des scripts powershell sur les postes concernés ou ajouter le paramètre "-executionpolicy bypass"
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
#import subprocess
uninstallkey = []
def install():
run('powershell.exe -NoProfile -NonInteractive -File RemoveBuiltinApps.ps1')
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
-
- Messages : 21
- Inscription : 11 juin 2019 - 10:02
Bonjour,
Avec du retard, ne serait-ce pas mieux de modifier la commande powershell pour ajouter le " -executionpolicy bypass" directement dans la commande ?
Avec du retard, ne serait-ce pas mieux de modifier la commande powershell pour ajouter le " -executionpolicy bypass" directement dans la commande ?
-
- Messages : 173
- Inscription : 26 janv. 2017 - 11:11
Bonjour,
C'est bien ce que j'ai indiqué dans ma phrase :
C'est bien ce que j'ai indiqué dans ma phrase :
Il faut penser à activer l’exécution des scripts powershell sur les postes concernés ou ajouter le paramètre "-executionpolicy bypass"
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
-
- Messages : 21
- Inscription : 11 juin 2019 - 10:02
Ah oui effectivement en lisant c'est cela
je veux aller trop vite et j'oublie la moitié des informations en cours de route!
Merci!
je veux aller trop vite et j'oublie la moitié des informations en cours de route!
Merci!