windows - Powershell 脚本帮助(通过 SMTP 获取处理和发送输出)
问题描述
我正在尝试制作 ePowershell
脚本来检查特定服务(名称)Status
以及StartType
服务器的时间和日期以及服务器名称等附加信息。
.txt 中的服务器列表只是 FQDN。
我在 powershell 中有所需的输出,但无法通过 SMTP 正确发送。在一种情况下,它不显示状态或仅显示服务器的名称,并且所有信息都是纯文本,不在不同服务器的容器中。
所需输出:powershell 中所需的输出需要传输到 smtp 电子邮件
$ServerList = Get-Content -Path "C:\new_folder\servers.txt"
Foreach ($server in $ServerList){
$time = "---"
$time = ([WMI]'').ConvertToDateTime((gwmi win32_operatingsystem -computername $server).LocalDateTime)
$server + ', ' + $time
Get-Service -ComputerName "$server" | where-object {$_.name -like '*goge*'} | Select @{Name="server";Expression={$server}},Name,DisplayName,StartType,Status
}send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -Priority high
解决方案
尝试使用这个小修复,我留下评论
$ServerList = Get-Content -Path "C:\new_folder\servers.txt"
$array=@() #array which will contain result get-service
Foreach ($server in $ServerList){
$time = "---"
$time = ([WMI]'').ConvertToDateTime((gwmi win32_operatingsystem -computername $server).LocalDateTime)
$server + ', ' + $time
#add to our array result of each get-service from servers
$array+=Get-Service -ComputerName "$server" | where-object {$_.name -like '*goge*'} | Select @{Name="server";Expression={$server}},Name,DisplayName,StartType,Status
}
send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $array -BodyAsHtml -Priority high
推荐阅读
- c++ - 如何为检测其擦除功能的 unordered_map 定义一个概念
- google-analytics - Pagespeed + yandex metrika + 谷歌分析 = 糟糕的速度
- filter - 如果通过按键启动 Tabulator 的“Min Max Custom Header Filter”,则会恢复过滤
- javascript - 如何从使用 while 循环呈现的多个下拉菜单列表中仅打开单击的下拉菜单
- c++ - 声明指针时无效使用非静态数据成员
- xaml - TemplatedControl Expander 标头未显示
- r - 更快的采摘方法
- c# - WPF C# Animate Linear Gradient Brush 起点或终点
- python-3.x - numpy 数组 cPickle dumpe 的默认编码是 latin-1 吗?
- c# - 我们如何从 chrome 扩展向 wpf 客户端应用程序发送事件