Resources/New-ProjectTemplate/Program.ps1

<#
.SYNOPSIS
Lorem ipsum dolor sit amet.
 
.DESCRIPTION
Lorem ipsum dolor sit amet.
 
.PARAMETER Param1
Lorem ipsum dolor sit amet.
 
.PARAMETER Param2
Lorem ipsum dolor sit amet.
 
.INPUTS
Lorem ipsum dolor sit amet..
 
.OUTPUTS
Lorem ipsum dolor sit amet.
#>


[CmdletBinding()]
Param(    
    [Parameter(Mandatory)]
    [object] $Param1,
        
    [Parameter()]
    [object] $Param2        
)

try
{
    Import-Module -Name "$PSScriptRoot\<ModuleName>" -Force
    Import-Module -Name "$PSScriptRoot\Functions.psm1" -Force
    $Script:Config = Import-PowerShellDataFile -Path "$PSScriptRoot\config.psd1"
    
    Start-TranscriptLogFile
    'Utilice Out-Default para transcribir al archivo log' | Out-Default
    'Puede enviar texto o cualquier objeto' | Out-Default
    Get-Variable | Out-Default
}
catch{    
    $ErrorInfo = $Error[0]
    '='.PadRight(100,'=') | Out-Default
    [PSCustomObject]@{
      ScriptName   = $ErrorInfo.InvocationInfo.ScriptName
      ErrorMessage = $ErrorInfo.Exception.Message
      LineNumber   = $ErrorInfo.InvocationInfo.ScriptLineNumber
      ColumnNumber = $ErrorInfo.InvocationInfo.OffsetInLine
      Category     = $ErrorInfo.CategoryInfo.Category
      ErrorReason  = $ErrorInfo.CategoryInfo.Reason
      Target       = $ErrorInfo.CategoryInfo.TargetName
      StackTrace   = $ErrorInfo.Exception.StackTrace
    } | Out-Default
    
}
finally{
    Stop-TranscriptLogFile
}