104 lines
3.3 KiB
PowerShell
104 lines
3.3 KiB
PowerShell
<#
|
||
.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
|
||
} |