From 57ca37135dd9e742d5074cb0cb401b76b2963baf Mon Sep 17 00:00:00 2001 From: Micha Kalfon Date: Wed, 29 Nov 2023 15:57:16 +0200 Subject: [PATCH] Invoke admin wsl with same distribution as caller If more than one distribution is installed WSL will use the default one. This commit makes sure it the admin WSL will run in the same WSL distribution as the one which caller wsl-sudo. --- wsl-sudo.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wsl-sudo.py b/wsl-sudo.py index 8eaae20..aa4e7ca 100755 --- a/wsl-sudo.py +++ b/wsl-sudo.py @@ -219,12 +219,16 @@ def main(self, command, visibility, **kwargs): window_style = ['Hidden', 'Minimized', 'Normal'][visibility] + distro = os.environ['WSL_DISTRO_NAME'] + distro_args = ['-d', distro] if distro else [] + try: subprocess.check_call( ["powershell.exe", "Start-Process", "-Verb", "runas", "-WindowStyle", window_style, "-FilePath", "wsl", "-ArgumentList", '"{}"'.format(subprocess.list2cmdline([ + *distro_args, sys.executable, os.path.abspath(__file__), '--elevated', 'visible' if visibility else 'hidden', str(port), pwf.name]))])