Oct 13 2021 06:15 AM
Hi All,
So I have been migrating mailboxes from onprem to O365 in the hybrid config with no issues.
Today I have two migration batch jobs that state "NeedsApproval", but everything migrated.
Kind of confused as i don't see a way to "approve" the jobs and I don't see any issues.
Any ideas?
Oct 13 2021 06:36 AM
Oct 13 2021 06:37 AM
Oct 13 2021 06:43 AM
Dec 14 2021 01:12 PM
I'm also getting this with every mailbox/batch we run. It says needs approval with no option to approve. Eventually it moves to completed and the mailboxes are migrated. I have opened a case with Microsoft. @LED04
Jun 08 2022 12:31 AM
Nov 13 2022 02:33 AM - edited Nov 20 2022 10:27 AM
Hi maybe this reply is quite late but for future cases:
- Open powershell
- Use the Connect-ExchangeOnline command (google how to download and use)
- Use CMD:
Set-MigrationUser -Identity "email address removed for privacy reasons" -ApproveSkippedItems
Or CMD:
Set-MoveRequest -Identity email address removed for privacy reasons -SkippedItemApprovalTime $(Get-Date).ToUniversalTime()
This worked for me 🙂
Dec 05 2022 12:18 AM
Dec 05 2022 04:59 PM - edited Dec 05 2022 05:03 PM
I am really fedup of this "Need approval" thing almost on each batch. It is adding no value but eating time on each migration batch/moverequest. I am seeing this even when there are no Corrupt items on move request.
I have been working on migrations since decades and never seen such pathetic experience dealing with this "NEED APPROVAL" even no such bad experience when fixed many failed migration issues.
It became worst when I try to fix it through many appreciable solutions provided by community members, but it kicks out the commands with the below error:
Set-MoveRequest -Identity "Emailid" -SkippedItemApprovalTime $(Get-Date).ToUniversalTime()
Set-MoveRequest -identity "Emailid" -SuspendWhenReadyToComplete $False -PreventCompletion $False -CompleteAfter $CompletionDateTime
WARNING: The request is currently being managed as a part of a migration batch. Changes to the request may be overwritten by the Migration Service or could impact the status expressed by the migration batch or migration user.
WARNING: The command completed successfully but no settings of 'DB#GBRPxxxG002-dbxxxxxxxxxxx' have been modified.
WARNING: The request is currently being managed as a part of a migration batch. Changes to the request may be overwritten by the Migration Service or could impact the status expressed by the migration batch or migration user.
is there a way I can Disable this Feature on the Migration Batches and make sure it will not eat unnecessary time on migration Completion?
Jan 03 2023 08:55 AM
Feb 15 2023 07:25 AM
Get-MigrationBatch -Status needsapproval | Set-MigrationBatch -ApproveSkippedItems
Mar 18 2024 01:24 AM
I realize I'm responding three years later, but I'm engaged in the same battle against a familiar adversary. I've crafted a script that searches for users requiring approval. Upon identifying one or more such users, it proceeds to approve all found. Conversely, if no users are found needing approval, the script waits for 30 seconds before conducting another search. This loop—checking, waiting if necessary, and then acting on any findings—continues, ensuring that the script runs actively for an hour with real-time feedback. Both the frequency of checks and the script's overall runtime are customizable. This approach could prove beneficial for anyone grappling with this persistent challenge.
# Save the start time
$startTime = Get-Date
# Define the duration to run the script (60 minutes)
$duration = New-TimeSpan -Minutes 60
# Initialize a counter for the loop iterations
$iteration = 0
# Run the loop until the current time is less than start time + duration
while ((Get-Date) -lt $startTime.Add($duration)) {
# Increase the counter
$iteration += 1
try {
# Attempt to get migration users with status 'needsapproval'
$users = Get-MigrationUser -Status needsapproval -ErrorAction Stop
# Check if there are any users needing approval
if ($users -and $users.Count -gt 0) {
# Approve skipped items for users with status 'needsapproval'
$users | Set-MigrationUser -ApproveSkippedItems -ErrorAction Stop
# Report the number of users who were in 'needsapproval' status and processed
Write-Host "Iteration ${iteration}: Approved skipped items for $($users.Count) users at $(Get-Date)."
} else {
# Report that no users are currently in the 'needsapproval' status
Write-Host "Iteration ${iteration}: No users in 'needsapproval' status at $(Get-Date)."
}
} catch {
Write-Host "An error occurred during iteration ${iteration}: $_. The script will continue to the next iteration."
}
# Wait 30 seconds before the next iteration
Start-Sleep -Seconds 30
}
Write-Host "Script completed."
Mar 30 2024 05:45 PM - edited Mar 30 2024 05:46 PM
I had the same story and this helpded me as well, Super @Michal