Hallo,
has anyone tried to properly collect PowerShell Transcript Log Files?
Default is that each Line is a New Event, that does no work properly in case of errors and multi Line Messages. I also tried with my own Event marker, but that is not really flexible.
Normal Log:
********************** Windows PowerShell transcript start Start time: 20170531171206 Username: RunAs User: Machine: Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe Process ID: 7024 ********************** Transcript started, output file is D:\Dev\VmConfigTrigger\Output-05312017-051206.txt vmConfigTrigger log Number 05312017-051206 Starts '2' VMs were found in Config File to Process. Name RAM CPU ---- --- --- test 1 aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL 1 1 '1' VMs found with matching Name Pattern 'test' WARNING: Name 'test' Not Unique Identified in VM 'TESTSCCMDMH2'! '1' VMs found with matching Name Pattern 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL' VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL' Unique Identified! VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL': Needs RAM Change. '1' GB RAM. VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL': Needs CPU Change. '1' vCPU. VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL': Actual vCPU´s. '1'. VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL': New vCPU´s. '1'. VM 'aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL': vCPU´s already fine. ********************** Windows PowerShell transcript end End time: 20170531171207 **********************
Log With an Error:
********************** Windows PowerShell transcript start Start time: 20170531171747 Username: RunAs User: Machine: Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe Process ID: 7024 ********************** Transcript started, output file is D:\Dev\VmConfigTrigger\Output-05312017-051747.txt vmConfigTrigger log Number 05312017-051747 Starts PS>TerminatingError(ConvertFrom-Json): "Invalid JSON primitive: { "Name": "aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL", "RAM": "1", "CPU": "1" } ] ." ConvertFrom-Json : Invalid JSON primitive: { "Name": "aijuPrpMNIOhRotQzSmDUqHBJAkTwGYVKCdxWFfcXegvZEbysnlL", "RAM": "1", "CPU": "1" } ] . At D:\Dev\VmConfigTrigger\VmConfigTrigger.ps1:35 char:77 + [Array] $Configs = Get-Content -Raw -Path "$PSScriptRoot\Config.json" | Conv ... + ~~~~ + CategoryInfo : NotSpecified: (:) [ConvertFrom-Json], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand D:\Dev\VmConfigTrigger\VmConfigTrigger.ps1 : Failed to Read Config File! + CategoryInfo : InvalidData: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : FailedReadConfigFile,VmConfigTrigger.ps1 D:\Dev\VmConfigTrigger\VmConfigTrigger.ps1 : A Global Error occured, Script will stop! Problem needs to be resolved and then the Script can be restarted, + CategoryInfo : OperationStopped: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : GlobalError,VmConfigTrigger.ps1 ********************** Windows PowerShell transcript end End time: 20170531171747 **********************
Maybe a special Parser or some PS Tricks can do that, or Transcript is a Bad Idea at all... Any help is welcome.
Kind Regards,
Markus