Recuperare tutti gli eventi con un determinato CorrelationID
Con SharePoint 2010 e PowerShell è possibile visualizzate tutti gli eventi legati ad uno specifico Correlation ID
Se si vuole fare la stessa cosa su una cartella di un altro server della farm
In questo caso estraggo dai log del server remoto tutti gli eventi degli ultimi 10 minuti con l'area che contiene "excel".
Si può anche creare una funzione:
da richiamare con:
Una versione più evoluta è questa:
dove il parametro "Today" permette di cercare dall'inizio della giornata, mentre con "full" ritorna tutti i dati presenti:
Per aggiungerla al proprio profilo powershell:
PowerShell
Get-SPLogEvent -StartTime (Get-Date).addminutes(-10) | ? {$_.correlation -eq "85da401e-9a3a-40a2-a8e6-6fcd0e88b969"} | select timestamp, level, message | format-list
PowerShell
Get-SPLogEvent -StartTime (Get-Date).addminutes(-10) -directory "\\sharepointServer\d$\LogFiles\Tracelogs" | ? {$_.area -like "*excel*"} | select timestamp, level, message | Format-List
Si può anche creare una funzione:
PowerShell
function Get-SCorrelationId ([string]$cid)
{
Get-SPLogEvent -StartTime (Get-Date).addminutes(-10) | ? {$_.correlation -eq $cid} | select timestamp, level, message | format-list
}
PowerShell
.\Get-SCorrelationId 85da401e-9a3a-40a2-a8e6-6fcd0e88b969
Una versione più evoluta è questa:
PowerShell
#Add-PSSnapin "Microsoft.SharePoint.PowerShell"
#example: Get-SCorrelationId 174b0bcf-cdc9-460a-81ce-a73a37bb2ef1 -full
Function Get-SCorrelationId {
Param(
[parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)]
[String] $CorrelationID,
[parameter(Mandatory=$false, Position=1)]
[switch] $Today,
[parameter(Mandatory=$false, Position=2)]
[switch] $Full
)
if($Today){
$dt = (Get-Date).Date;
}else{
$dt = (Get-Date).addminutes(-15);
}
Write-Host "Searching for '$CorrelationID', from date '$dt' ..."
if($Full) {
Get-SPLogEvent -StartTime $dt | ? {$_.correlation -eq $CorrelationID} | format-list
} else {
Get-SPLogEvent -StartTime $dt | ? {$_.correlation -eq $CorrelationID} | select timestamp, level, message | format-list
}
}
PowerShell
.\Get-SCorrelationId 85da401e-9a3a-40a2-a8e6-6fcd0e88b969 -Today -Full
PowerShell
#add to profile
$sgart_fn = "Get-SCorrelationId"
$sgart_fnTest = "Function Get-SCorrelationId"
if((Test-Path $PROFILE) -eq $false){
write-host "create profile: $PROFILE"
New-Item -path $PROFILE -type file -force
}
if( (Get-Content $PROFILE | ?{ $_ -cLike "*$sgart_fnTest *"}) -eq $null ) {
write-host "Add function to $PROFILE"
$f = (Get-Command Get-SCorrelationId -ParameterName "Today" -ErrorAction SilentlyContinue);
if($f -eq $null){
Write-Host "$sgart_fnTest NOT FOUND";
}else{
Add-Content $profile "`r`n`r`n$sgart_fnTest { $($f.ScriptBlock) }";
Get-Content $PROFILE
}
}