我有一个脚本会ping一个脱机工作站列表,然后如果工作站离线,请查询SCCM以获取描述。然后它接受工作站ID和描述,并将其放在电子邮件正文中并将其发送到特定地址。
只要我只输出变量,脚本在PowerShell中运行良好。如果我使用class player():
def player_name():
Minput= input("Insert name of mp3: ")
os.startfile("MP3_folder\\" +Minput + ".mp3")
input("Input a key to end playback: ")
os.system("TASKKILL /F /IM wmplayer.exe")
cmdlet,则电子邮件正文中显示的唯一内容是Send-MailMessage
。
我该如何解决这个问题?我已经阅读了System.Object[]
属性,但我不太确定将其添加到我的脚本中。
-join
答案 0 :(得分:0)
如果构建一个(自定义)对象数组并将带有该数组的变量放入字符串中,PowerShell会将其扩展为对象数组的字符串表示形式,即System.Object[]
。
您真正想要的是工作站ID和说明的HTML表格(因为您仍然以HTML格式发送邮件。
$offlinelist = foreach ($workstation in $list) {
...
if ($test -match "false") {
New-Object -Type PSObject -Property ([ordered]@{
ID = $workstation
Description = $description
})
}
}
$body = $offlinelist |
ConvertTo-Html -Fragment -PreContent '<p>These workstations are offline:</p>' |
Out-String
Send-MailMessage ... -Body $body -BodyAsHtml