# List of services to configure $Services = @( "Syncro", "SyncroLive", "SyncroOvermind", "SplashtopRemoteService" ) # Configure necessary services to restart in Safe Mode with Networking $Services | ForEach-Object { If ( Get-Service $_ -ErrorAction SilentlyContinue ) { Write-Output "Configuring ${_} service to start in Safe Mode with Networking" Try { New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\${_}" -Force -ErrorAction SilentlyContinue | Out-Null } Catch { Write-Error "ERROR: could not configure ${_} service to start in Safe Mode with Networking" ; Return } } } # Configure system to reboot into Normal Mode at next reboot Write-Output "Configuring system to reboot into Normal Mode at next reboot" Try { [Microsoft.Win32.Registry]::SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce",'*RestartNormalMode','cmd.exe /c "%SystemRoot%\System32\bcdedit.exe" /deletevalue {default} safeboot',[Microsoft.Win32.RegistryValueKind]::String) } Catch { Write-Error "ERROR: could not configure reboot into normal mode" ; Return } # Configure reboot into Safe Mode with Networking Write-Output "Configuring system to reboot into Safe Mode with Networking" $command = "${Env:SystemRoot}\System32\bcdedit.exe" $params = "/set {default} safeboot network".Split(" ") Try { & "${command}" $params } Catch { Write-Error "ERROR: could not configure reboot into safe mode with networking" ; Return } # Reboot into Safe Mode with Networking Write-Output "Rebooting into Safe Mode with Networking" & "${Env:SystemRoot}\System32\shutdown.exe" -r -f -t 5