2024-11-06 19:11:36 +01:00
|
|
|
function Microwin-NewFirstRun {
|
|
|
|
|
|
|
|
|
|
# using here string to embedd firstrun
|
|
|
|
|
$firstRun = @'
|
|
|
|
|
# Set the global error action preference to continue
|
|
|
|
|
$ErrorActionPreference = "Continue"
|
|
|
|
|
function Remove-RegistryValue {
|
|
|
|
|
param (
|
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
|
|
|
[string]$RegistryPath,
|
|
|
|
|
|
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
|
|
|
[string]$ValueName
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Check if the registry path exists
|
|
|
|
|
if (Test-Path -Path $RegistryPath) {
|
|
|
|
|
$registryValue = Get-ItemProperty -Path $RegistryPath -Name $ValueName -ErrorAction SilentlyContinue
|
|
|
|
|
|
|
|
|
|
# Check if the registry value exists
|
|
|
|
|
if ($registryValue) {
|
|
|
|
|
# Remove the registry value
|
|
|
|
|
Remove-ItemProperty -Path $RegistryPath -Name $ValueName -Force
|
|
|
|
|
Write-Host "Registry value '$ValueName' removed from '$RegistryPath'."
|
|
|
|
|
} else {
|
|
|
|
|
Write-Host "Registry value '$ValueName' not found in '$RegistryPath'."
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Write-Host "Registry path '$RegistryPath' not found."
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"FirstStartup has worked" | Out-File -FilePath "$env:HOMEDRIVE\windows\LogFirstRun.txt" -Append -NoClobber
|
|
|
|
|
|
|
|
|
|
$taskbarPath = "$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
|
|
|
|
|
# Delete all files on the Taskbar
|
|
|
|
|
Get-ChildItem -Path $taskbarPath -File | Remove-Item -Force
|
|
|
|
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesRemovedChanges"
|
|
|
|
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesChanges"
|
|
|
|
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "Favorites"
|
|
|
|
|
|
|
|
|
|
# Delete Edge Icon from the desktop
|
|
|
|
|
$edgeShortcutFiles = Get-ChildItem -Path $desktopPath -Filter "*Edge*.lnk"
|
|
|
|
|
# Check if Edge shortcuts exist on the desktop
|
|
|
|
|
if ($edgeShortcutFiles) {
|
|
|
|
|
foreach ($shortcutFile in $edgeShortcutFiles) {
|
|
|
|
|
# Remove each Edge shortcut
|
|
|
|
|
Remove-Item -Path $shortcutFile.FullName -Force
|
|
|
|
|
Write-Host "Edge shortcut '$($shortcutFile.Name)' removed from the desktop."
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Remove-Item -Path "$env:USERPROFILE\Desktop\*.lnk"
|
|
|
|
|
Remove-Item -Path "$env:HOMEDRIVE\Users\Default\Desktop\*.lnk"
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
2025-05-05 17:24:12 +02:00
|
|
|
if ((Get-WindowsOptionalFeature -Online | Where-Object { $_.State -eq 'Enabled' -and $_.FeatureName -like "Recall" }).Count -gt 0)
|
2024-11-06 19:11:36 +01:00
|
|
|
{
|
|
|
|
|
Disable-WindowsOptionalFeature -Online -FeatureName "Recall" -Remove
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
2025-01-10 20:40:25 +01:00
|
|
|
|
|
|
|
|
# Get BCD entries and set bootmgr timeout accordingly
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
# Check if the number of occurrences of "path" is 2 - this fixes the Boot Manager screen issue (#2562)
|
|
|
|
|
if ((bcdedit | Select-String "path").Count -eq 2)
|
|
|
|
|
{
|
|
|
|
|
# Set bootmgr timeout to 0
|
|
|
|
|
bcdedit /set `{bootmgr`} timeout 0
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-05 17:24:12 +02:00
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.Suggested" /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.Suggested" /v Enabled /t REG_DWORD /d 0 /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.StartupApp" /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.StartupApp" /v Enabled /t REG_DWORD /d 0 /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Microsoft.SkyDrive.Desktop" /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Microsoft.SkyDrive.Desktop" /v Enabled /t REG_DWORD /d 0 /f
|
2025-08-05 18:24:59 +02:00
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /f
|
|
|
|
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /v Enabled /t REG_DWORD /d 0 /f
|
|
|
|
|
|
|
|
|
|
if (Test-Path -Path "$env:HOMEDRIVE\winutil-config.json")
|
|
|
|
|
{
|
|
|
|
|
Write-Host "Configuration file detected. Applying..."
|
|
|
|
|
iex "& { $(irm christitus.com/win) } -Config `"$env:HOMEDRIVE\winutil-config.json`" -Run"
|
|
|
|
|
}
|
2025-05-05 17:24:12 +02:00
|
|
|
|
2024-11-06 19:11:36 +01:00
|
|
|
'@
|
|
|
|
|
$firstRun | Out-File -FilePath "$env:temp\FirstStartup.ps1" -Force
|
|
|
|
|
}
|