I have read that CreateProcessAsUser take primary token as its argument .
I have created the token using OpenThreadToken() which will create impersonation token. But CreateProcessAsUser with impersonation token is "passing on most" of the machines, working as expected but "failing on few" with error :1349 = The type of the token is inappropriate for its attempted use .