Лучший отвечающий
Поломался скрипт

Вопрос
-
скрипт был рабочим, перестал работать около месяца назад:
$User = "user@domain.com" $File = "C:\scripts\backup\Password.txt" $dayago = get-date -UFormat %Y-%m-%d [string[]] $toAddress="user@domain.com" $MyCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $File | ConvertTo-SecureString) $time = get-date -UFormat %Y-%m-%d new-item C:\scripts\backup\$time.txt -itemtype file -force $tmpresults = Get-ChildItem -recurse \\backup.serv1.domain.com\winbackup\ActiveDirectoryServices\$time | where {$_.Name -like "*.vhdx"} | select CreationTime,Directory,Length,Name Foreach ($tmpresult in $tmpresults) { "CreationTime : $(get-date $tmpresult.CreationTime -UFormat %T)" | out-file C:\scripts\backup\$time.txt -append "Directory : $($tmpresult.Directory)" | out-file C:\scripts\backup\$time.txt -append "Length : $($tmpresult.Length/1Gb)" | out-file C:\scripts\backup\$time.txt -append "Name : $($tmpresult.Name) `r`n" | out-file C:\scripts\backup\$time.txt -append } (Get-Content C:\scripts\backup\$time.txt).replace('\\backup.serv1.domain.com\winbackup\ActiveDirectoryServices\', '') | Set-Content C:\scripts\backup\$time.txt (Get-Content C:\scripts\backup\$time.txt).replace($time, '') | Set-Content C:\scripts\backup\$time.txt (Get-Content C:\scripts\backup\$time.txt).replace($dayago, '') | Set-Content C:\scripts\backup\$time.txt (Get-Content C:\scripts\backup\$time.txt).replace('WindowsImageBackup\HYPER-1\Backup', '') | Set-Content C:\scripts\backup\$time.txt $body = Get-Content C:\scripts\backup\$time.txt | Out-String Send-MailMessage -To $toAddress -From "Scan User <$User>" -Subject "Hyper-V DC Backup $time" -Body "$body" -SmtpServer smtp.office365.com -Credential $MyCredential -UseSsl
Выдаёт ошибку:
You cannot call a method on a null-valued expression. At C:\scripts\backup\send-email2.ps1:15 char:1 + (Get-Content C:\scripts\backup\$time.txt).replace('\\backup.serv1.do... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
1 октября 2018 г. 10:06Модератор
Ответы
-
Проблема в строке, она пустая:
$tmpresults = Get-ChildItem -recurse \\backup.serv1.domain.com\winbackup\ActiveDirectoryServices\$time | where {$_.Name -like "*.vhdx"} | select CreationTime,Directory,Length,Name
- Помечено в качестве ответа AnahaymModerator 1 октября 2018 г. 14:52
1 октября 2018 г. 11:15Отвечающий
Все ответы
-
Проблема в строке, она пустая:
$tmpresults = Get-ChildItem -recurse \\backup.serv1.domain.com\winbackup\ActiveDirectoryServices\$time | where {$_.Name -like "*.vhdx"} | select CreationTime,Directory,Length,Name
- Помечено в качестве ответа AnahaymModerator 1 октября 2018 г. 14:52
1 октября 2018 г. 11:15Отвечающий -
пока временно подставил готовый файл. Можно как-то увеличить время разрешения имени smtp.office365.com?
C:\scripts\backup\send-email2.ps1 Send-MailMessage : The remote name could not be resolved: 'smtp.office365.com' At C:\scripts\backup\send-email2.ps1:20 char:1 + Send-MailMessage -To $toAddress -From "Scan User <$User>" -Subject "H ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
У меня какие-то проблемы на сервере с этим...
nslookup smtp.office365.com nslookup : Non-authoritative answer: At line:1 char:1 + nslookup smtp.office365.com + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (Non-authoritative answer::String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Server: dc1.domain.com Address: 10.255.9.11 DNS request timed out. timeout was 2 seconds. DNS request timed out. timeout was 2 seconds. DNS request timed out. timeout was 2 seconds. Name: outlook-emeaeast3.office365.com Addresses: 40.101.69.210 40.101.62.34 40.101.51.146 40.101.65.146 40.100.174.194 40.101.121.2 52.97.128.178 40.101.40.242 Aliases: smtp.office365.com lb.geo.office365.com outlook.office365.com.g.office365.com
1 октября 2018 г. 11:33Модератор -
Могу предложить вставить блок Test-Connection, если ответ будет, значит преобразование уже произошло и в кеше ДНС должен быть адрес.1 октября 2018 г. 11:40
-
да вот какая-то фигня и с кешем. я нашёл где проблема в ДНС, решаю...1 октября 2018 г. 12:01Модератор
-
в общем, DNS forwarder был устаревший.1 октября 2018 г. 14:53Модератор