1

職場では、短いログイン名 (例: hastingsg) を使用していますが、Outlook と Windows システムの他の部分も長い名前 (例: Jeff Hastings) にアクセスできると思います。

cpython (IronPython ではない) で、ログイン名が短い場合、フルネームを長くするにはどうすればよいですか? pywin32ExchangeCDOがインストールされています。

4

3 に答える 3

2

の COM 部分を介して、pywin32Outlook の Application オブジェクトを取得し、そこからNamespaceオブジェクトSessionを提供するその属性を取得する必要があります (このメソッドは、サポートされている唯一の引数値 で呼び出された場合にも同じ目的で機能するはずです)。そこから、プロパティを使用してAccountsオブジェクトを取得できます。これは典型的な COM コレクションであり、. それをループして、各Accountオブジェクトをチェックします。それぞれに、関心のある 2 つのプロパティがあります。GetNamespace'MAPI'AccountsItemCountUserNameDisplayName

はい、これは信じられないほど長くて複雑ですが、MS アプリケーションが提供する COM インターフェイスのコースに匹敵します。私が知っている限りでは、最近の Outlook のリリースにはもっと無駄のない方法があるかもしれません。あなたのために...!-)

于 2009-11-12T05:45:48.370 に答える
1

専用モジュールを使用して Exchange Server Active Directory にクエリを実行できると思います

(未検証):

import active_directory
user = active_directory.find_user("hastingsg")
print user.displayName
于 2009-11-12T05:45:07.930 に答える
0

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())
于 2009-11-12T06:08:13.847 に答える