You have to dig down a bit to get the added info. Unfortunately, I can't recall my source for this:
for us in c.Win32_LogonSession():
for user in us.references("Win32_LoggedOnUser"):
print(user.Antecedent)
You can get the properties printed from that as well, for example replace the final line with:
print(user.Antecedent.Domain, user.Antecedent.Name, sep="\\")
I get:
MyPC\nerdwaller
edit
I should have mentioned two things:
I am using Python3, so for you to use print as a function in python 2.x:
from __future__ import print_function
There are issues iterating through that, as you are seeing. There are various solutions, and since I don't know your use-case... not the cleanest solution, you can wrap that in a try/catch:
for us in c.Win32_LogonSession():
try:
for user in us.references("Win32_LoggedOnUser"):
print(user.Antecedent)
except:
pass