我正在处理Outlook inventory powershel脚本(另请参阅powershell calculated properties for multiple values)
此代码工作得很好,但只能使用默认的Outlook配置文件。我需要从所有Outlook配置文件中检索数据
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$namespace.Accounts | Select-Object DisplayName, SmtpAddress, UserName, AccountType, ExchangeConnectionMode | Sort-Object -Property SmtpAddress | Format-Table
部分解决方案是获取Outlook个人资料列表:
Get-childItem -Path "HKCU:Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"
针对获得的每个配置文件运行以前的代码。这是我的求助呼救表现:) 怎么可以这样做?
答案 0 :(得分:0)
您可以使用扩展MAPI(仅C ++或Delphi)检索IProfAdmin接口,循环访问所有配置文件,并列出所有服务。
如果不能选择扩展MAPI,则可以使用ProfMan库(随Redemption的可分发版本一起提供):
http://www.dimastr.com/redemption/profman_examples.htm#example1:
'Enumerate and print the names of all services in all profiles
set Profiles=CreateObject("ProfMan.Profile")
for i = 1 to Profiles.Count
set Profile = Profiles.Item(i)
set Services = Profile.Services
Debug.Print "------ " & Profile.Name & " ------"
for j = 1 to Services.Count
Debug.Print Services.Item(j).ServiceName
next
next