Powershell Transcript不生成日志文件

时间:2017-06-20 21:56:33

标签: powershell

首先,这是我第一次使用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

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Write-Host不会输出到任何流,也不会被捕获。使用Write-Output代替成功/输出流(别名EchoWrite

作为旁注,我建议不要将密码作为明文放入脚本中。相反,使用类似的东西:

(Get-Credential).Password | ConvertFrom-SecureString | Out-File .\pw.txt

这样,pw的加密程度最低。从那里,您可以使用Get-Content和ConvertTo-SecureString

最后,在您的If声明中,您可以使用If ($FileExists)。它只有两种状态,$True$False; -eq $true是不必要的。