Fix PLA_E_NETWORK_EXE_NOT_VALID (0x80300106) UNC Path Error
This error means Windows can't launch an app from a network share. The fix is usually moving the EXE local or granting SeImpersonatePrivilege. I'll walk you through both.
1. Move the executable to a local drive (most common fix)
I've seen this error trip up everyone from IT pros to folks running a simple monitoring script. The trigger is almost always the same: you set up a Data Collector Set or a scheduled task that launches an EXE from \\server\share\app.exe. The Performance Logs and Alerts (PLA) service — which runs as LOCAL SERVICE — refuses to touch network paths. It's not being stubborn; it's by design.
The fastest fix: copy the EXE to C:\Scripts\ or any local folder, update the path, and restart the task. Here's how:
- Create a local folder, say
C:\Monitoring\. - Copy the executable there from your network share.
- Open Performance Monitor (perfmon.msc).
- Under Data Collector Sets, find your set, right-click, choose Properties.
- In the Performance Counter or Command tab (depending on your collector type), change the executable path to
C:\Monitoring\app.exe. - Click OK, then start the collector set.
This works every time. If you absolutely must keep the EXE on a network share (maybe it's a shared tool that updates centrally), skip to the next fix.
2. Grant SeImpersonatePrivilege to the account running the task
This is the fix when you really can't move the EXE locally. The PLA service needs the right to impersonate the security context of a network resource — that's the SeImpersonatePrivilege. By default, LOCAL SERVICE has this, but if you changed the service account or run the task under a different user (like a domain account), that account might lack it.
Check which account runs the task:
- Open Task Scheduler (taskschd.msc).
- Find the task that corresponds to your Data Collector Set. It's usually named something like
$\Microsoft\Windows\PLA\YourCollectorSetName. - Right-click > Properties > General tab. Note the user account under Security options.
Now grant that account the impersonate privilege:
- Click Start, type
secpol.msc, press Enter. - Go to Local Policies > User Rights Assignment.
- Find Impersonate a client after authentication.
- Add the user account (e.g.,
DOMAIN\YourUser). - Click OK, then run
gpupdate /forcein an admin Command Prompt. - Restart the PLA service:
net stop pla && net start pla.
Test the task again. This fix is a bit more involved, but it avoids moving files around.
3. Use runas with /netonly to map the network drive
Sometimes the error pops up even after you've granted impersonation rights. Here's the real-world scenario I see most: the EXE lives on a share that requires different credentials than the ones the PLA service uses. For example, your monitoring tool is on \\FileServer\Tools\monitor.exe, and that server requires a specific service account to access it.
The trick is to use runas /netonly to start the EXE with those remote credentials. You don't change the service account; you just wrap the launch command.
- Create a batch file, say
run-monitor.bat, with this content:
runas /netonly /user:DOMAIN\ServiceAccount "\\FileServer\Tools\monitor.exe"
- Place that batch file locally, e.g.,
C:\Scripts\run-monitor.bat. - In your Data Collector Set, set the executable path to
C:\Scripts\run-monitor.bat. - Make sure the batch file is readable by the PLA service account.
One gotcha: runas /netonly asks for a password interactively. For automated tasks, you'll need to save the credential using cmdkey:
cmdkey /add:FileServer /user:DOMAIN\ServiceAccount /pass:YourPassword
Don't love putting plaintext passwords in scripts? Neither do I. But for dedicated monitoring boxes with limited scope, it's a pragmatic tradeoff.
Quick reference table
| Cause | Fix | Complexity |
|---|---|---|
| EXE on network share | Move EXE to local drive | Beginner |
| Missing SeImpersonatePrivilege | Grant impersonate right via secpol.msc | Intermediate |
| Cross-domain credentials needed | Use runas /netonly or cmdkey | Advanced |
If none of these work, double-check that your EXE isn't blocked by Windows Defender or AppLocker on the network share — that's a separate error but can masquerade as this one.
Was this solution helpful?