当你通过类似Mailto:链接发送邮件,此时邮件客户端就是MAPI客户端。如果要找出到这个MAPI客户端在哪里,这里有个函数能从注册表中获得该信息。
代码如下:
functionGet-MAPIClient
{
functionRemove-Argument
{
param
(
$CommandLine
)
$divider=''if ($CommandLine.StartsWith('"'))
{
$divider='"'$CommandLine=$CommandLine.SubString(1)
}
$CommandLine.Split($divider)[0]
}
$path='Registry::HKEY_CLASSES_ROOT\mailto\shell\open\command'# create new object to return values
$returnValue=1|Select-Object-PropertyHasMapiClient,Path,MailTo$returnValue.hasMAPIClient=Test-Path-Path$pathif ($returnValue.hasMAPIClient)
{
$values=Get-ItemProperty-Path$path$returnValue.MailTo=$values.'(default)'$returnValue.Path=Remove-Argument$returnValue.MailToif ((Test-Path-Path$returnValue.Path) -eq$false)
{
$returnValue.hasMAPIClient=$true
}
}
$returnValue
}
Get-MAPIClient
执行后的结果类似:
举一反三,同样也可以修改代码查询其它类型的默认客户端。