Posted September 16, 2021
I am baffled that this is even an issue! What a weird limitation to have -- and for what purpose?
Sadly, changing NoInteractiveServices to 0 did not solve it either.
According to the relevant log, C:\ProgramData\GOG.com\Galaxy\logs\CommunicationServiceInitialization.log, the issue boils down to GOG Galaxy apparently having a hardcoded reliance on the console session of the machine.
2021-09-16 01:48:02.187 [Information][ (0)] [TID 16284][comm_service]: Log started. Application version: 2.0.4.164 (2021-07-14 17:35).
2021-09-16 01:48:02.187 [Information][ (0)] [TID 16284][comm_service]: Operating system: Windows 8 6.2 (Build 9200) (IA32)
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: The process session ID is not equal to the current active console session ID while getting the process token from the process 'explorer.exe'.
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: Either no processes exist or the snapshot did not contain process information while searching for the process 'explorer.exe' and having checked 195 processes.
2021-09-16 01:48:02.515 [Error][ (0)] [TID 16284][comm_service]: Failure getting the token for 'explorer.exe' the current user's security identifier.
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: GetCurrentUserSID() failed
2021-09-16 01:48:02.515 [Information][ (0)] [TID 16308][comm_service]: [main] Stop serving due to lack of user authorization info
Suffice to say that the RDP session IDs will never be equal to the current active console session ID of the system, which is why GOG Galaxy's "GetCurrentUserSID()" function apparently fails...
I... I have no idea why it's coded like this... I assume it's intended as a form of security barrier of sorts -- the service technically runs as NT AUTHORITY\SYSTEM and not as the user, and they apparently need to figure out which user started the service to ensure the authentication is handled properly, and so instead of implementing a solution that could handle secondary user sessions, they ended up hardcoding it to the console session of a machine.
Sadly, changing NoInteractiveServices to 0 did not solve it either.
According to the relevant log, C:\ProgramData\GOG.com\Galaxy\logs\CommunicationServiceInitialization.log, the issue boils down to GOG Galaxy apparently having a hardcoded reliance on the console session of the machine.
2021-09-16 01:48:02.187 [Information][ (0)] [TID 16284][comm_service]: Log started. Application version: 2.0.4.164 (2021-07-14 17:35).
2021-09-16 01:48:02.187 [Information][ (0)] [TID 16284][comm_service]: Operating system: Windows 8 6.2 (Build 9200) (IA32)
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: The process session ID is not equal to the current active console session ID while getting the process token from the process 'explorer.exe'.
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: Either no processes exist or the snapshot did not contain process information while searching for the process 'explorer.exe' and having checked 195 processes.
2021-09-16 01:48:02.515 [Error][ (0)] [TID 16284][comm_service]: Failure getting the token for 'explorer.exe' the current user's security identifier.
2021-09-16 01:48:02.515 [Warning][ (0)] [TID 16284][comm_service]: GetCurrentUserSID() failed
2021-09-16 01:48:02.515 [Information][ (0)] [TID 16308][comm_service]: [main] Stop serving due to lack of user authorization info
I... I have no idea why it's coded like this... I assume it's intended as a form of security barrier of sorts -- the service technically runs as NT AUTHORITY\SYSTEM and not as the user, and they apparently need to figure out which user started the service to ensure the authentication is handled properly, and so instead of implementing a solution that could handle secondary user sessions, they ended up hardcoding it to the console session of a machine.
Post edited September 22, 2021 by Aemony