PowerShell 技能连载 - 查找缺省的 MAPI 客户端

您机器上的 MAPI 客户端就是处理类似“mailto:” URL 的缺省电子邮件客户端。我们设计一个函数来查找是否有 MAPI 客户端,如果有的话,查看具体是哪一个。该函数从 Windows 注册表中获取这项信息:

function Get-MAPIClient
{
    function Remove-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 -Property HasMapiClient, Path, MailTo

  $returnValue.hasMAPIClient = Test-Path -Path $path

  if ($returnValue.hasMAPIClient)
  {
    $values = Get-ItemProperty -Path $path
    $returnValue.MailTo = $values.'(default)'
    $returnValue.Path = Remove-Argument $returnValue.MailTo
    if ((Test-Path -Path $returnValue.Path) -eq $false)
    {
      $returnValue.hasMAPIClient = $true
    }
  }


  $returnValue
}

Get-MAPIClient

以下是使用结果:

PowerShell 技能连载 - 查找缺省的 MAPI 客户端

http://blog.vichamp.com/2014/05/01/finding-default-mapi-client/

作者

吴波

发布于

2014-05-01

更新于

2022-07-06

许可协议

评论