Powershell
Get Computer List from DC
Get-ADComputer -Filter * -SearchBase "CN=Workstations, DC=contoso, DC=com"
删除输入文件的双引号
... | ConvertTo-Csv -NoTypeInformation | % { $_ -replace '"' } | Out-File $csv
如果要删除首行
... | select -Skip 1 | Out-File $csv
完整实例
Get-ADComputer -Filter * -SearchBase "OU=cpg computers,dc=isnet,DC=corp,DC=org" -Properties * |Select name| ConvertTo-Csv -NoTypeInformation | % { $_ -replace '"' } | select -Skip 1 |Out-File C:\Script\PingEnduser\RemoteComputers.txt
PING IP and Send email
############ping tEST###############
Get-Content C:\Script\PingEnduser\RemoteComputers.txt | ForEach-Object{
$pingstatus = ""
IF (Test-Connection -BufferSize 32 -Count 1 -ComputerName $_ -Quiet) {
$pingstatus = "Online"
} Else {
$pingstatus = "Offline"
}
New-Object -TypeName PSObject -Property @{
Computer = $_
Status = $pingstatus }
} | Export-Csv C:\Script\PingEnduser\PingStatus_$(get-date -f dd_MMM).csv -NoTypeInformation -Encoding UTF8
###########Email Sending Part########
###########Define Variables########
$fromaddress = "mail@mail.com"
$toaddress = "mail@mail.com"
$CCaddress = "mail@mail.com"
#$bccaddress = "mail@mail.com"
#$CCaddress = "mail@mail.com"
$Subject = "Offline check for Enduser"
$body = "PING Test for all CPG laptop and Desktop after office hour."
#$body = get-content .\content.htm
$attachment = "C:\Script\PingEnduser\PingStatus_$(get-date -f dd_MMM).csv"
$smtpserver = "mail@mail.com"
####################################
$message = new-object System.Net.Mail.MailMessage
$message.From = $fromaddress
$message.To.Add($toaddress)
$message.CC.Add($CCaddress)
#$message.Bcc.Add($bccaddress)
$message.IsBodyHtml = $True
$message.Subject = $Subject
$attach = new-object Net.Mail.Attachment($attachment)
$message.Attachments.Add($attach)
$message.body = $body
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$smtp.Send($message)
#################################################################################