I don't think you are using the object correctly. I doubt GetSecurityDescriptor("%temp%") is right. Googling to MSDN, I find http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/getsecuritydescriptor_method_in_class_win32_logicalfilesecuritysetting.asp which shows GetSecurityDescriptor(wmiSecurityDescriptor).

Also, the path you have defined in Win32_LogicalFileSecuritySetting.Path is not the same as %temp%.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.