Powershell_Scripts/Windows10/removeapps.ps1

104 lines
3.3 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<#
.SYNOPSIS
Removing Built-in apps from Windows 10 / Windows 8.1 / Windows 8
.DESCRIPTION
Removing Built-in apps from Windows 10 / Windows 8.1 / Windows 8
.PARAMETER
PathtoWim - Path to install.wim
select - Enable
.EXAMPLE
.\removeapps.ps1 -pathtowim c:\10\install.wim
.\removeapps.ps1 -pathtowim c:\10\install.wim -select $true
.\removeapps.ps1 -pathtowim c:\10\install.wim -select $true -index 2
.NOTES
Script name: removeapps.ps1
Version: 1.2
Author: André Picker
Contact: @clientmgmt
DateCreated: 2015-07-22
LastUpdate: 2016-03-08
#>
param (
[string]$pathtowim,
[bool]$selectapps,
[string]$index="1"
)
$Host.UI.RawUI.BackgroundColor = "Black"; Clear-Host
$startdate = (Get-Date).ToString()
$ProgressPreference=SilentlyContinue
function CreateTempDirectory {
$tmpDir = [System.IO.Path]::GetTempPath()
$tmpDir = [System.IO.Path]::Combine($tmpDir, [System.IO.Path]::GetRandomFileName())
[System.IO.Directory]::CreateDirectory($tmpDir) | Out-Null
$tmpDir
}
try {
$pathworkfolder = CreateTempDirectory
Write-Host "Start:" $startdate -ForegroundColor White
Write-Host "Create temporary directory..." -ForegroundColor Green
Write-Host "Temporary directory:" $pathworkfolder -ForegroundColor Green
}
catch [Exception] {
Write-Host "Error:" $_.Exception.Message -ForegroundColor Red; break
}
try {
Write-Host "Mounting Windows-Image..." $pathtowim -ForegroundColor Green
Write-Host "Please wait..." -ForegroundColor White
Mount-WindowsImage -Path $pathworkfolder -ImagePath $pathtowim -Index $index | Out-Null
}
catch [Exception] {
Write-Host "Mounting Windows-Image failed..." -ForegroundColor Red;
Write-Host "Error:" $_.Exception.Message -ForegroundColor Red; break
}
try {
Write-Host "Remove the following Built-in apps:" -ForegroundColor Green
$apps = Get-AppxProvisionedPackage -Path $pathworkfolder | ForEach-Object {
if($selectapps -eq $true) {
$call = read-host "Do you really want to delete the following App:" $_.DisplayName "(Y/N)"
if($call -eq "y") {
Write-Host "Delete:" $_.DisplayName -ForegroundColor Green
Remove-AppxProvisionedPackage -Path $pathworkfolder -PackageName $_.PackageName
$call = ""
}
else {
Write-Host "Skipped:" $_.DisplayName -ForegroundColor yellow
}
}
else {
Write-Host "Delete:" $_.DisplayName -ForegroundColor Green
Remove-AppxProvisionedPackage -Path $pathworkfolder -PackageName $_.PackageName
$call = ""
}
}
}
catch [Exception] {
Write-Host "Removing Built-in apps failed..." -ForegroundColor Red;
Write-Host "Error:" $_.Exception.Message -ForegroundColor Red; break
}
try {
Write-Host "Dismount-WindowsImage..." -ForegroundColor Green
Write-Host "Please wait..." -ForegroundColor White
Dismount-WindowsImage -Path $pathworkfolder -Save -CheckIntegrity | Out-Null
Write-Host "Remove temporary directory..." -ForegroundColor Green
Remove-Item $pathworkfolder -Recurse -Force | Out-Null
Write-Host "Complete:" (Get-Date).ToString() -ForegroundColor White
}
catch [Exception] {
Write-Host "Error:" $_.Exception.Message -ForegroundColor Red; break
}