我是Powershell的新手..。希望你能帮我。
我有一个脚本正在刷新Azure Analysis上的数据库(表格模型)。脚本应该刷新模型中的所有表,但不是一次刷新,因此我们希望首先并行地刷新所有维度表,然后作为第二步并行刷新所有事实表。
为此,我们使用了Invoke-ASCmd cmdlet,它调用变量$DataLoad中硬编码的代码,如下所示:
Invoke-ASCmd -Server $AASServerAddress -Query $DataLoad -Credential $AzureCred -OutVariable out输出是xml字符串,如果刷新后的所有操作都顺利进行,则如下所示:
<return xmlns="urn:schemas-microsoft-com:xml-analysis">
<root xmlns="urn:schemas-microsoft-com:xml-analysis:empty"></root>
</return>如果有问题的话,那就是告诉我错误的细节。脚本完成后,它将向几个人发送电子邮件,其中包含脚本已在正文中完成的信息。
我想要的是我的Invoke-ASCmd输出到电子邮件正文。我试着和OutVariable和ToString()一起玩,但是它给了我身体和Write-Output的结果"System.Collections.ArrayList"。
另一方面,我只是试图将我的$out变量放到正文中,但是它没有出现在电子邮件中,但是当我执行Write-Output $out时,它会显示在脚本的输出中。
是否有机会在不将xml文件保存到Azure存储并将其作为附件附加到邮件的情况下工作?我们真的很想把它放在电子邮件里。
编辑:我尝试通过使用以下各种方法将从System.Collections.ArrayList获得的-OutVariable out转换为字符串:
$out“转换”为$($out)$conv = $out.ToString()| Out-String与Invoke-ASCmd cmdlet和$Message.Body变量一起使用以上任何一项都不起作用。电子邮件是空的。我看到了一些文章,OutVariable命令给出了数组列表,而不是在Powershell版本小于6的字符串中的结果。Azure Analysis上的PS版本为5.1,由于兼容性问题,它可能无法更新。
提前谢谢你,巴特克
发布于 2021-11-24 16:17:25
[xml]$Result = Invoke-ASCmd –InputFile $file -Server $Server
$emailmsg = $Result.return.root.Messages.Error.description
$emailmsg'https://stackoverflow.com/questions/52735165
复制相似问题