職場では、短いログイン名 (例: hastingsg
) を使用していますが、Outlook と Windows システムの他の部分も長い名前 (例: Jeff Hastings) にアクセスできると思います。
cpython (IronPython ではない) で、ログイン名が短い場合、フルネームを長くするにはどうすればよいですか? pywin32とExchangeCDOがインストールされています。
の COM 部分を介して、pywin32
Outlook の Application オブジェクトを取得し、そこからNamespaceオブジェクトSession
を提供するその属性を取得する必要があります (このメソッドは、サポートされている唯一の引数値 で呼び出された場合にも同じ目的で機能するはずです)。そこから、プロパティを使用してAccountsオブジェクトを取得できます。これは典型的な COM コレクションであり、. それをループして、各Accountオブジェクトをチェックします。それぞれに、関心のある 2 つのプロパティがあります。GetNamespace
'MAPI'
Accounts
Item
Count
UserName
DisplayName
はい、これは信じられないほど長くて複雑ですが、MS アプリケーションが提供する COM インターフェイスのコースに匹敵します。私が知っている限りでは、最近の Outlook のリリースにはもっと無駄のない方法があるかもしれません。あなたのために...!-)
専用モジュールを使用して Exchange Server Active Directory にクエリを実行できると思います
(未検証):
import active_directory
user = active_directory.find_user("hastingsg")
print user.displayName
TranslateName apiが必要な場合があります。たとえば、次のようなもので遊んでください。2ns/ 3番目の引数は、http://msdn.microsoft.com/en-us/library/ms724268(VS.85).aspxの定数にすることができます。
win32security.TranslateName(win32api.GetUserName(), win32api.NameUnknown, win32api.NameDisplay)
また
win32net.NetUseGetInfo(win32api.GetComputerName(),win32api.GetUserName())