gpt4 book ai didi

windows - 无法从 Powershell 中的 Windows 搜索生成电子邮件

转载 作者:可可西里 更新时间:2023-11-01 09:28:36 25 4
gpt4 key购买 nike

我有一个 powershell 脚本,它直接在 Windows 搜索索引中搜索电子邮件和文件。我有以下代码:

$searchme="my thing to find"
$sql="SELECT System.FileName, System.ItemPathDisplay, System.DateCreated, System.DateModified, system.itemurl, system.itemtypetext FROM SYSTEMINDEX WHERE Contains(System.FileName, '"+$searchme+"') OR Contains('"+$searchme+"')"
$adapter = new-object system.data.oledb.oleDBDataadapter -argumentlist $sql, "Provider=Search.CollatorDSO;Extended Properties=’Application=Windows’;"
$ds = new-object system.data.dataset
$adapter.Fill($ds)
foreach ($record in $ds.Tables[0].Rows)
{
$exeparams = $record[4]
write-host $exeparams
write-host $exeparams.split(":")[0]
if ($exeparams.split(":")[0] -eq "mapi15")
{
$exeparams2="mapi://" + $exeparams.substring(8)
}
write-host $exeparams
write-host "start"
$exe="start"
$exe+" "+$exeparams | Out-File 'file.txt' -encoding Unicode
write-host "start-process"
Start-Process $exeparams
Start-Process $exeparams2
write-host "andpersand process"
&$exe $exeparams
&$exe $exeparams2
write-host "dotnet"
$proc = [Diagnostics.Process]::Start($exeparams)
$proc.WaitForExit()
$proc = [Diagnostics.Process]::Start($exeparams2)
$proc.WaitForExit()
}

有几个“shell”调用,因为我试图弄清楚它是否是进程生成问题。文件工作没有问题。但是,如果我离开 mapi15,电子邮件将失败并显示没有此类界面,或者如果我将 mapi15 更改为 mapi,则会出现未指定的错误。我相信Open mails in outlook from java using the protocol "mapi://"可能是解决方案,但如果是的话,我不确定如何在 powershell 中应用它。感谢您的帮助。

最佳答案

好吧,这比我预期的要花更多的功夫,我把它归咎于 Office 2013。这是简短的回答:

$exeparams2 = $exeparams -replace "^mapi15", "mapi"
& start $exeparams2

这是现在为我打开电子邮件的代码。该代码昨天没有这样做,它所做的只是告诉我:

Either there is no default mail client or the current mail client cannot fulfill the messaging request. Please run Microsoft Outlook and set it as the default mail client.

令人气愤的是,因为我确实有 Outlook,事实上它正在运行,并且是与电子邮件相关的所有内容的默认邮件应用程序。这让我很恼火,并派我去寻找 WTF 是错误的,以及我是否可以修复它。对此的回答是“我不确定 WTF 是不是错了,除了 MS 方面的命名更改”,以及“是的,是的,我可以修复它”。

我终于找到了对我有用的修复程序(我相信这可能是 Office 2013/Office 365 特定的)在此线程的底部找到:

https://social.technet.microsoft.com/Forums/office/en-US/64c0bedf-2bcd-40aa-bb9c-ad5de20c84be/cannot-send-email-with-microsoft-outlook-2010-64-bit-from-adobe-outlook-not-recognised-as?forum=outlook

过程很简单。更改 2 个注册表项,然后重新设置您的默认邮件应用程序。注册表项:

HKLM:\Software\Clients\Mail(默认)
HKLM:\Software\Clients\Mail\Microsoft Outlook(默认)

(默认) 的值从“Microsoft Outlook”更改为简单的“Outlook”。

之后,我将 Outlook 设置为所有可能的默认设置(在 Win8 中,控制面板 > 所有控制面板项 > 默认程序 > 设置默认程序然后选择 Outlook,并选择第一个选项使其成为所有默认设置它注册的扩展名)。一旦完成,我就能够运行上面修改后的代码来启动我在索引中搜索的电子邮件。

关于windows - 无法从 Powershell 中的 Windows 搜索生成电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com