After some powershell scripting idea; at the moment; I want to run a script that parses through all the warning messages for all the job ran last night/latest and higlights any warning message which does not match a pre-defined set of warning mesages. I have been able to achive this using an excel sheet however it does involve a bit of work;
> Copy thousands of warning messages from each job to this excel sheet which has 4 colums of common warning defined in a formula
Cell A1 to A2000: Populate when I choose only warnings manually copy those to first cell
Cell B =IF(ISNUMBER(SEARCH("OneDrive was not found", A2)), "Match", "No Match")
CELL C: =IF(ISNUMBER(SEARCH("OneDrive was not found", A2)), "Match", "No Match")
Then I do a filter and anything that does not match these cells give me the unique warning; I try and run this once a week as there are thousands of warning messages every day
Is there a way to create a powershell; I tried using the below after suggestion from Fabian however could not find a way to put the multiple warning messages per job in an array so that I can loop through it; at the moment the below mentioned line of code only returns one warning mesage per job
Get-VBOJobSession -JobType backup -last | select -First 50 -ExpandProperty Log | select title | Whre-Object {$_.Title -notlike "*Success*"}
-
- Enthusiast
- Posts: 78
- Liked: 4 times
- Joined: Sep 26, 2022 9:13 pm
- Full Name: Rajeev Mehta
- Contact:
-
- Product Manager
- Posts: 8184
- Liked: 1317 times
- Joined: Feb 08, 2013 3:08 pm
- Full Name: Mike Resseler
- Location: Belgium
- Contact:
Re: Unique warning
I assume you have a type in your PowerShell with the Where-Object and it is correct in your script
I don't think it is possible like this to be honest, from what I understand, I think you need to use other tools to parse through the logs. Unfortunately my current lab has a specific build so I cannot test this but I will try to get someone to figure it out.
I don't think it is possible like this to be honest, from what I understand, I think you need to use other tools to parse through the logs. Unfortunately my current lab has a specific build so I cannot test this but I will try to get someone to figure it out.
-
- Enthusiast
- Posts: 78
- Liked: 4 times
- Joined: Sep 26, 2022 9:13 pm
- Full Name: Rajeev Mehta
- Contact:
Re: Unique warning
I sorted it out; this script works
# Get the date of the previous night
$lastNight = (Get-Date).AddDays(-1).ToString("MM/dd/yyyy")
# Get all job sessions that ran last night with warnings
$lastNightSessions = Get-VBOJobSession -JobType Backup | Where-Object {
$_.CreationTime -ge $lastNight -and
$_.CreationTime -lt (Get-Date).ToString("MM/dd/yyyy") -and $_.JobName -like '*OneDrive*'
}
# Initialize $logs before using it
$logs = @()
foreach ($lastNightSession in $lastNightSessions) {
$logs += $lastNightSession.Log
}
# Display only warning logs excluding specific warnings
foreach ($log in $logs) {
if ($log.title -like '*warning*' -and
$log.title -notlike '*OneDrive was not found*' -and
$log.title -notlike '*does not have a valid Microsoft 365 license with SharePoint plan enabled*' -and
$log.title -notlike '*Failed to find group owner account*') {
$formattedLog = "{0} {1}" -f $log.title, $log.description
Write-Host $formattedLog
}
}
# Get the date of the previous night
$lastNight = (Get-Date).AddDays(-1).ToString("MM/dd/yyyy")
# Get all job sessions that ran last night with warnings
$lastNightSessions = Get-VBOJobSession -JobType Backup | Where-Object {
$_.CreationTime -ge $lastNight -and
$_.CreationTime -lt (Get-Date).ToString("MM/dd/yyyy") -and $_.JobName -like '*OneDrive*'
}
# Initialize $logs before using it
$logs = @()
foreach ($lastNightSession in $lastNightSessions) {
$logs += $lastNightSession.Log
}
# Display only warning logs excluding specific warnings
foreach ($log in $logs) {
if ($log.title -like '*warning*' -and
$log.title -notlike '*OneDrive was not found*' -and
$log.title -notlike '*does not have a valid Microsoft 365 license with SharePoint plan enabled*' -and
$log.title -notlike '*Failed to find group owner account*') {
$formattedLog = "{0} {1}" -f $log.title, $log.description
Write-Host $formattedLog
}
}
Who is online
Users browsing this forum: No registered users and 15 guests