Skip to content

Windows Configuration

This guide covers essential Plex configuration settings for Windows.

Open Plex settings at http://localhost:32400/web → Click the Settings icon (wrench).

  • SettingsGeneral
  • Set a descriptive name for your server
  • This appears in Plex apps when selecting a server

Enable automatic updates to stay current:

  • Check “Update my Plex Media Server automatically”
  • SettingsLibrary
  • “Scan my library periodically”: Set based on how often you add media
    • Daily for most users
    • Hourly if using automation (Sonarr/Radarr)

Video preview thumbnails (hover scrubbing):

  • “Generate video preview thumbnails”: As a scheduled task
  • “Generate intro video markers”: As a scheduled task
  • SettingsTranscoder
SettingRecommended Value
Transcoder qualityAutomatic
Transcoder temporary directorySSD path if available
Background transcoding threadsAuto (or CPU cores - 2)
  1. Verify Intel GPU is present in Device Manager
  2. Update Intel graphics drivers
  3. SettingsTranscoder
  4. Enable “Use hardware acceleration when available”
  5. Plex Pass required for hardware transcoding

Verify Quick Sync is working:

Terminal window
# Check for Intel GPU
Get-WmiObject win32_VideoController | Select-Object Name
  • SettingsRemote Access
  • Enable “Manually specify public port”: 32400
  • Click “Retry” to test connectivity
  • SettingsNetwork
  • Set “Limit remote stream bitrate” based on upload speed
  • Recommended: 80% of upload speed
  • SettingsNetwork
  • “Secure connections”: Required (recommended)
  • SettingsScheduled Tasks
TaskRecommended Time
Backup database2:00 AM
Optimize database3:00 AM
Upgrade media analysis4:00 AM

Create a maintenance script for additional tasks:

PlexMaintenance.ps1
$plexData = "$env:LOCALAPPDATA\Plex Media Server"
# Clean old transcoder cache
Get-ChildItem "$plexData\Cache\Transcode" -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force -Recurse
# Clean old logs
Get-ChildItem "$plexData\Logs" -Filter "*.log" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Remove-Item -Force
Write-Host "Maintenance completed: $(Get-Date)"

Schedule with Task Scheduler:

Terminal window
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\PlexMaintenance.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 5am
Register-ScheduledTask -TaskName "Plex Maintenance" -Action $action -Trigger $trigger
  • SettingsUsers & Sharing
  • Create managed users for family members
  • Set content restrictions per user

With Plex Pass:

  • Create home users with separate watch history
  • Set per-user quality settings
  • Enable/disable features per user
  • SettingsAgents
  • Arrange agent priority for each library type
  • Recommended order:
    1. Local Media Assets
    2. Plex Movie/Plex Series
    3. TheMovieDB/TheTVDB

For advanced configuration, edit Preferences.xml:

Location: %LOCALAPPDATA%\Plex Media Server\Preferences.xml

Common tweaks:

<!-- Disable analytics -->
<Preferences ... ButlerTaskOptimize="0" ... />
<!-- Custom transcoder path -->
<Preferences ... TranscoderTempDirectory="D:\PlexTranscode" ... />

Set Plex environment variables in System Properties:

VariablePurpose
PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIRChange data location
PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCSLimit plugin processes
PLEX_MEDIA_SERVER_TMPDIRCustom temp directory

Example:

Terminal window
[Environment]::SetEnvironmentVariable("PLEX_MEDIA_SERVER_TMPDIR", "D:\PlexTemp", "Machine")