-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRemoveXboxV2.ps1
More file actions
42 lines (36 loc) · 1.48 KB
/
RemoveXboxV2.ps1
File metadata and controls
42 lines (36 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Define the log file
$logFile = "$env:Temp\RemoveXboxPackages.log"
# Function to log messages
function Write-Log {
param ([string]$Message)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path $logFile -Value "$timestamp - $Message"
}
# Start logging
Write-Log "Script started"
# Remove provisioned packages to prevent installation for new users
Write-Log "Attempting to remove provisioned packages"
try {
$provisionedPackages = Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -like "*Microsoft.Xbox*"}
foreach ($pkg in $provisionedPackages) {
Write-Log "Removing provisioned package: $($pkg.DisplayName)"
Remove-AppxProvisionedPackage -Online -PackageName $pkg.PackageName
Write-Log "Successfully removed provisioned package: $($pkg.DisplayName)"
}
} catch {
Write-Log "Error removing provisioned packages: $_"
}
# Attempt to remove installed packages for all users
Write-Log "Attempting to remove installed packages for all users"
try {
$installedPackages = Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Microsoft.Xbox*"}
foreach ($pkg in $installedPackages) {
Write-Log "Removing installed package: $($pkg.Name)"
Remove-AppxPackage -Package $pkg.PackageFullName -AllUsers -ErrorAction Stop
Write-Log "Successfully removed installed package: $($pkg.Name)"
}
} catch {
Write-Log "Error removing installed packages: $_"
}
# End logging
Write-Log "Script completed"