Why does %TEMP% resolve to a non-deterministic path of the form %TEMP\<digit>?

shacharsa picture shacharsa · Jun 29, 2011 · Viewed 14k times · Source

I have a Windows Server 2008 32 bit and when I'm typing %temp% it takes me to ..AppData\Local\Temp\1\ or ..AppData\Local\Temp\2 instead of ..AppData\Local\Temp

I've already checked the Environment Variables and they are ok.

I'm asking that because I have an application that's supposed to copy files to %temp%\my application and instead it copies the files to %temp%\1\my application

Does someone have a solution for that?

Answer

Damien_The_Unbeliever picture Damien_The_Unbeliever · Jun 29, 2011

Explanation, discussion, workarounds, etc, all under the Old New Thing article Why does the name of my TEMP directory keep changing - it ensures multiple terminal services sessions for the same user don't (by default) share a temp directory.

The problem lay in the Administrative Templates\Windows Components\Terminal Services\Temporary folders group policy. If you don't select Do not use temporary folders per session, then these TEMP subdirectories are created. There is also a knowledge base article describing the registry keys behind these group policies.

Personally, I find the first comment in reply to be the most useful:

Why does it matter if the temp location jumps around anyway, it's temporary!

See also