Elevated permissions do not pass through Windows Terminal in some cases #7004

Closed
opened 2026-01-31 00:52:44 +00:00 by claunia · 4 comments
Owner

Originally created by @WSLUser on GitHub (Mar 19, 2020).

Environment

Windows build number: Microsoft Windows [Version 10.0.18363.720]
Windows Terminal version (if applicable): 0.10.761.0

Any other software?

WSL

Steps to reproduce

Enable WSL. Install a distro from the Store. Doesn't matter which one. Follow the account setup procedure. Close the window and open WT in elevated mode (Right click and Runas Administrator)and verify it shows in the drop down menu. Use default tab or open a new one (cmd, PS, WSL Distro). Run wsl.exe --export Distroname (as reported in wsl --list) C:\User\user\Desktop\SomeFilename.tar

Expected behavior

I expect the export to be successful.

Actual behavior

Permission Denied.

Compared to Conhost only Window: If I open an elevated CMD window and run the command, It works as intended. This shows that for some reason, even when WT is running in elevated mode, the shells are running in non-elevated mode. Possible cause for regression: #4874

Originally created by @WSLUser on GitHub (Mar 19, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment ```none Windows build number: Microsoft Windows [Version 10.0.18363.720] Windows Terminal version (if applicable): 0.10.761.0 Any other software? ``` WSL # Steps to reproduce <!-- A description of how to trigger this bug. --> Enable WSL. Install a distro from the Store. Doesn't matter which one. Follow the account setup procedure. Close the window and open WT in elevated mode (Right click and `Runas Administrator`)and verify it shows in the drop down menu. Use default tab or open a new one (cmd, PS, WSL Distro). Run `wsl.exe --export Distroname` (as reported in `wsl --list`) C:\User\user\Desktop\SomeFilename.tar # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> I expect the export to be successful. # Actual behavior <!-- What's actually happening? --> Permission Denied. Compared to Conhost only Window: If I open an elevated CMD window and run the command, It works as intended. This shows that for some reason, even when WT is running in elevated mode, the shells are running in non-elevated mode. Possible cause for regression: #4874
Author
Owner

@zadjii-msft commented on GitHub (Mar 19, 2020):

I'd really doubt that #4874 would have changed this.

Are you sure that you need to be elevated for that command to run? Because I was just able to run that command successfully from a totally unelevated conhost window. I'd bet there's some other reason for the "Permission Denied" error other than the terminal not being elevated.

@zadjii-msft commented on GitHub (Mar 19, 2020): I'd _really_ doubt that #4874 would have changed this. Are you sure that you need to be elevated for that command to run? Because I was just able to run that command successfully from a totally unelevated conhost window. I'd bet there's some other reason for the "Permission Denied" error other than the terminal not being elevated.
Author
Owner

@DHowett-MSFT commented on GitHub (Mar 19, 2020):

In my trials, it looks like the first thing --export does is stop any running instances of that distribution; is there a chance that that's what's failing? Distribution run semantics across elevation levels is already somewhat cloudy.

@DHowett-MSFT commented on GitHub (Mar 19, 2020): In my trials, it looks like the first thing `--export` does is stop any running instances of that distribution; is there a chance that that's what's failing? Distribution run semantics across elevation levels is already somewhat cloudy.
Author
Owner

@WSLUser commented on GitHub (Mar 19, 2020):

It wasn't open when I attempted it with PS Core. However I just tried again with a different distro and ran wsl --terminate Distroname first. So maybe there was a WSL process still running behind the scenes and I didn't wait long enough for it. But should that cause Access Denied to appear? Why would it still work in regular CMD when I opened it immediately after attempting in Terminal. Was that really long enough for WSL to finally quit? There's a default graceful timeout but I doubt I actually reached it before attempting again. Being what this is, not sure if Terminal can do anything different if the issue is a running WSL process for the distro being exported. I'd like to think this should still work but that may be something the WSL team needs to fix.

@WSLUser commented on GitHub (Mar 19, 2020): It wasn't open when I attempted it with PS Core. However I just tried again with a different distro and ran wsl --terminate Distroname first. So maybe there was a WSL process still running behind the scenes and I didn't wait long enough for it. But should that cause Access Denied to appear? Why would it still work in regular CMD when I opened it immediately after attempting in Terminal. Was that really long enough for WSL to finally quit? There's a default graceful timeout but I doubt I actually reached it before attempting again. Being what this is, not sure if Terminal can do anything different if the issue is a running WSL process for the distro being exported. I'd like to think this should still work but that may be something the WSL team needs to fix.
Author
Owner

@zadjii-msft commented on GitHub (Mar 19, 2020):

should that cause Access Denied to appear?

Honestly, I have no idea. And without somehow knowing the exact timestamps of all of the parts of this scenario, there's no real way for us to know. Timing issues are notoriously tricky to debug, but I'm pretty sure the Terminal's not doing anything extraordinary for this scenario. If you think there's something the WSL team could do about this, I'd file an issue over at https://github.com/microsoft/WSL, but I don't think there's anything actionable for the Terminal here.

@zadjii-msft commented on GitHub (Mar 19, 2020): > should that cause Access Denied to appear? Honestly, I have no idea. And without somehow knowing the exact timestamps of all of the parts of this scenario, there's no real way for us to know. Timing issues are notoriously tricky to debug, but I'm pretty sure the Terminal's not doing anything extraordinary for this scenario. If you think there's something the WSL team could do about this, I'd file an issue over at https://github.com/microsoft/WSL, but I don't think there's anything actionable for the Terminal here.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#7004