首先,这是我第一次使用powershell脚本,但我在使用Start-Transcript创建日志文件时遇到了问题。它不工作,我没有得到任何错误..这是我的脚本。
Clear-Host
Start-Transcript -Path "C:\$(get-date -f yyyy-MM-dd)_Script_log.txt" -Append -Force -NoClobber
$date = Get-Date
Write-Host "Oggi è il $date"
Write-Host "Inizializzo il Programma di Controllo"
Write-Host "Verifico se il file di controllo esiste ed è accessibile"
$ChkFile = "C:\controllo.txt"
$FileExists = Test-Path $ChkFile
If ($FileExists -eq $true)
{
write-host "Il file esiste, quindi il disco virtuale è correttamente montato nel server."
write-host "Termino la procedura e non faccio altro."
}
Else
{
Write-Host "Il file di controllo non è accessibile, procedo al montaggio tramite Mount-VHD"
#Mount-VHD -Path \\TS-453A\ISCSI-Disks\ReplicaISCSI.vhdx #<Perfetto, Funzionante>#
Write-Host "Montaggio disco virtuale completato, invio una mail all'amministratore per far verificare manualmente la cosa quanto prima"
$login = "xxxxxxxx"
$password = "xxxxxx" | Convertto-SecureString -AsPlainText -Force # Inserisco la password in chiaro, non è il massimo ma non so fare altrimenti
$credentials = New-Object System.Management.Automation.Pscredential -Argumentlist $login, $password
$From = "xxxx"
$To = "xxxxxx"
# $Cc = "YourBoss@YourDomain.com"
# $Attachment = "C:\temp\Some random file.txt"
$Subject = "Email Subject"
$Body = "Insert body text here"
$SMTPServer = "xxxxxx"
$SMTPPort = "25"
Send-MailMessage -From $From -to $To -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort `
-Credential $credentials -Priority High
Write-Host "Email Inviata, termino la procedura."
}
Stop-Transcript
Pause你有什么建议吗?
发布于 2017-06-21 06:08:44
Write-Host不会输出到任何流,也不会被捕获。改用Write-Output,它会传递给成功/输出流(别名为Echo和Write)
作为附注,我建议不要将密码作为明文放入脚本中。取而代之的是,使用类似于:
(Get-Credential).Password | ConvertFrom-SecureString | Out-File .\pw.txt这样,pw被最小限度地加密。在那里,您可以使用Get-Content和ConvertTo-SecureString
最后,在If语句中,可以只使用If ($FileExists)。它只有两种状态:$True和$False;-eq $true是不必要的。
https://stackoverflow.com/questions/44663668
复制相似问题