This is my new script which wrote to copy logs to a shared location. We recently started to upgrade user devices and some failed.
To make it easy for helpdesk, i created this script they can run after failure so i could get what happened with upgrade.
<# .Synopsis Copy sccm logs from your computer and save it a shared location .DESCRIPTION This script help you copy logs when TS or any pacakge installation fails. you can copy different logs like 'smsts.log','policyagent.log' ... etc just mentiong the log name .EXAMPLE .\Copy_log_V2 get-log -log smsts.log .EXAMPLE .\Copy_log_V2 get-log -log smsts.log .EXAMPLE .\Copy_log_V2 get-log -log smsts.log -path c:\windows\ccm\logs -destination \\server-path\logfolder .CREATOR By Hashmat Mohammadi .VERSION 1.0 #> function get-log { [CmdletBinding()] [Alias()] [OutputType([int])] Param ( # Param1 help description [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)] [string]$log = 'smsts*.log', [string]$destination = '\\server.domain.local\osd\Logs\', [string]$path = 'c:\windows\ccm\logs', [string]$computername = $env:computername ) Begin { #get default Policy $policy = Get-ExecutionPolicy #chagne execution policy to remotesidned Set-ExecutionPolicy bypass -Force #create colder on destination $folder = New-Item -path $destination -name $computername -ItemType directory -Force } Process { #Copy the logs to the Destination folder copy-item -Path $path\$log -destination $folder -Recurse } End { #set policy to default policy Set-ExecutionPolicy $policy -Force } }