I have a process that I have to communicate with through pipes. It works correctly in Windows XP SP3 compatibility mode on Windows 10 but not in other modes.
But it seems that subprocess doesn't care about compatibility mode even if shell=True is used. I thought if shell starts it instead of going directly to kernel with the request the CM would be preserved, but it does not. When started from cmd.exe it works in XP compatibility mode as expected.
How can I force subprocess to start it in a compatibility mode? Or is it a question of using shell=True with added some special environment variable?
The process is Cygwin's ssh.exe and it has big issue with key permissions being to open on Windows 10. Using it in XP CM tricks it to ignore ACLs that otherwise enter into posix version of permissions mode. Thing is that I can not expect users to set correct permissions for each key they add through Properties and doing it automatically in a program is complicated because the program might not have permissions to do so. It's a big mess. Any ideas are appreciated.