カテゴリー
Uncategorized

[Python] SYSTEM アカウントでの os.environ

環境: Windows XP

>>> service = {'FP_NO_HOST_CHECK': 'NO', 'TMP': 'C:\\WINDOWS\\TEMP', 'COMPUTERNAME': 'COMPUTER', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'TEMP': 'C:\\WINDOWS\\TEMP', 'WINDIR': 'C:\\WINDOWS', 'SYSTEMDRIVE': 'C:', 'PROCESSOR_ARCHITECTURE': 'x86', 'NUMBER_OF_PROCESSORS': '1', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'ALLUSERSPROFILE': 'C:\\Documents and Settings\\All Users', 'PROCESSOR_IDENTIFIER': 'x86 Family 16 Model 4 Stepping 2, AuthenticAMD', 'PROCESSOR_LEVEL': '16', 'PROGRAMFILES': 'C:\\Program Files', 'PROCESSOR_REVISION': '0402', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH', 'SYSTEMROOT': 'C:\\WINDOWS', 'USERPROFILE': 'C:\\Documents and Settings\\LocalService', 'OS': 'Windows_NT', 'PATH': 'C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem'}
>>> user = {'TMP': 'C:\\DOCUME~1\\root\\LOCALS~1\\Temp', 'COMPUTERNAME': 'COMPUTER', 'USERDOMAIN': 'COMPUTER', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'PROCESSOR_IDENTIFIER': 'x86 Family 16 Model 4 Stepping 2, AuthenticAMD', 'PROGRAMFILES': 'C:\\Program Files', 'PROCESSOR_REVISION': '0402', 'SYSTEMROOT': 'C:\\WINDOWS', 'PATH': 'C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem', 'TEMP': 'C:\\DOCUME~1\\root\\LOCALS~1\\Temp', 'PROCESSOR_ARCHITECTURE': 'x86', 'ALLUSERSPROFILE': 'C:\\Documents and Settings\\All Users', 'SESSIONNAME': 'Console', 'HOMEPATH': '\\Documents and Settings\\root', 'USERNAME': 'root', 'LOGONSERVER': '\\\\COMPUTER', 'PROMPT': '$P$G', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH', 'FP_NO_HOST_CHECK': 'NO', 'WINDIR': 'C:\\WINDOWS', 'APPDATA': 'C:\\Documents and Settings\\root\\Application Data', 'HOMEDRIVE': 'C:', 'SYSTEMDRIVE': 'C:', 'NUMBER_OF_PROCESSORS': '1', 'PROCESSOR_LEVEL': '16', 'OS': 'Windows_NT', 'USERPROFILE': 'C:\\Documents and Settings\\root'}
>>> set(user) - set(service)
set(['USERNAME', 'LOGONSERVER', 'PROMPT', 'HOMEDRIVE', 'APPDATA', 'USERDOMAIN', 'SESSIONNAME', 'HOMEPATH'])
>>> set(service) - set(user)
set([])

なので

>>> import user
>>> user.home
'.'
>>> import os
>>> os.getcwd()
'C:\\WINDOWS\\system32'
>>> os.getenv('tmp')
'C:\\WINDOWS\\TEMP'

ユーザーのホームを取得するには恐らく以下のコードが望ましい。

POSIX 系ならもちろん上手くいくし、Windows でも os.getenv(‘userprofile’) が取得できる。

>>> import os
>>> os.path.expanduser('~')
'C:\\Documents and Settings\\LocalService'

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です