Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up old network profiles #258

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions oem/RDPApps.reg
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
Windows Registry Editor Version 5.00

; Disable RemoteApp allowlist so all applications can be used in a Remote Desktop session
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList]
"fDisabledAllowList"=dword:00000001

; Allow unlisted programs to be run in Remote Desktop sessions
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001

; Disable automatic administrator logon at startup
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="0"

; Disable "Do you want your PC to be discoverable" prompt after each host system reboot
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff]
51 changes: 51 additions & 0 deletions oem/install.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
@echo off

REG IMPORT C:\OEM\RDPApps.reg

:: Write the Powershell network profile cleanup script
(
echo # Get the current network profile name
echo $currentProfile = ^(Get-NetConnectionProfile^).Name
echo.
echo # Get all profiles from the registry
echo $profilesKey = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles"
echo $profiles = Get-ChildItem -Path $profilesKey
echo.
echo foreach ^($profile in $profiles^) {
echo $profilePath = "$profilesKey\$($profile.PSChildName)"
echo $profileName = ^(Get-ItemProperty -Path $profilePath^).ProfileName
echo.
echo # Remove profiles that don't match the current one
echo if ^($profileName -ne $currentProfile^) {
echo Remove-Item -Path $profilePath -Recurse
echo Write-Host "Deleted profile: $profileName"
echo }
echo }
echo.
echo # Change the current profile name to "WinApps"
echo $profiles = Get-ChildItem -Path $profilesKey
echo foreach ^($profile in $profiles^) {
echo $profilePath = "$profilesKey\$($profile.PSChildName)"
echo $profileName = ^(Get-ItemProperty -Path $profilePath^).ProfileName
echo.
echo if ^($profileName -eq $currentProfile^) {
echo # Update the profile name
echo Set-ItemProperty -Path $profilePath -Name "ProfileName" -Value "WinApps"
echo Write-Host "Renamed profile to: WinApps"
echo }
echo }
) > %windir%\NetProfileCleanup.ps1

:: Create network profile cleanup scheduled task
set "taskname=NetworkProfileCleanup"
set "command=powershell.exe -ExecutionPolicy Bypass -File "%windir%\NetProfileCleanup.ps1^""

schtasks /query /tn "%taskname%" >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo Task "%taskname%" already exists, deleting it first...
schtasks /delete /tn "%taskname%" /f
)

schtasks /create /tn "%taskname%" /tr "%command%" /sc onstart /ru "SYSTEM" /rl HIGHEST /f
if %ERRORLEVEL% equ 0 (
echo Scheduled task "%taskname%" created successfully.
) else (
echo Failed to create scheduled task.
)
Loading