Συμπτώματα
Όταν εκτελείτε δέσμες ενεργειών ή cmdlet χρησιμοποιώντας το Microsoft Exchange Online μέσω απομακρυσμένου PowerShell για να τροποποιήσετε μεγάλα σύνολα δεδομένων, αντιμετωπίζετε ένα ή και τα δύο από τα ακόλουθα συμπτώματα:
-
Η εκτέλεση δεσμών ενεργειών ή cmdlet διαρκεί πολύ.
-
Θα δείτε το ακόλουθο μήνυμα προειδοποίησης για τον Exchange Online PowerShell:
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Εφαρμόστηκε μικρή καθυστέρηση. Πραγματική καθυστέρηση: <X> msec, ...
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Εφαρμόστηκε μικρή καθυστέρηση. Πραγματική καθυστέρηση: <X> msec, Επιβολή
Αιτία
Αυτή η συμπεριφορά οφείλεται στη σχεδίαση. Ο συγχρονισμός χρησιμοποιείται για την αποτροπή κακόβουλων ή ακούσιων επιθέσεων κατά της υπηρεσίας που θα μπορούσαν να επηρεάσουν τις συμβάσεις επιπέδου υπηρεσίας. Μπορείτε να παραβλέψετε με ασφάλεια το προειδοποιητικό μήνυμα.
Λύση
Για να επιλύσετε αυτή τη συμπεριφορά, δοκιμάστε τις παρακάτω επιλογές με τη δεδομένη σειρά.
Επιλογή 1
Εκτελέστε ένα διαγνωστικό αυτοβοήθημα στο κέντρο διαχείρισης Microsoft 365 για να ενημερώσετε την πολιτική Exchange απομακρυσμένου PowerShell για το μισθωτή σας. Για λεπτομέρειες, ανατρέξτε στο θέμα Διαγνωστικά αυτοβοήθης για προβλήματα Exchange Online και Outlook.
Επιλογή 2
Χρησιμοποιήστε Exchange Online cmdlet Του PowerShell V2 για να εκτελέσετε την εργασία. Για λεπτομέρειες, ανατρέξτε στο θέμα Exchange Online λειτουργική μονάδα PowerShell V2.
Επιλογή 3
Προσθέστε το ακόλουθο στοιχείο αναστολής λειτουργίας στις δέσμες ενεργειών ή τα cmdlet. Αυτό το στοιχείο επιβραδύνει τη δέσμη ενεργειών ή το cmdlet εντός των ορίων του ορίου περιορισμού.
Start-Sleep -m <Time in milliseconds>
Στο παρακάτω παράδειγμα, η λίστα των γραμματοκιβωτίων που ανακτώνται χρησιμοποιώντας Get-Mailbox cmdlet αποθηκεύονται σε μια μεταβλητή. Αυτή η μεταβλητή χρησιμοποιείται για την εκτέλεση μιας ενέργειας σε όλα τα γραμματοκιβώτια. Αυτό το είδος εργασίας συνήθως μειωνεται. Προσθέτοντας το στοιχείο αναστολής λειτουργίας στο cmdlet, μπορείτε να προσπαθήσετε να παραμείνετε εντός των ορίων του ορίου περιορισμού.
$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Επιλογή 4
Χρησιμοποιήστε τη λειτουργική μονάδα RobustCloudCommand για να εκτελέσετε τις δέσμες ενεργειών ή τα cmdlet. Μπορείτε να εγκαταστήσετε αυτή τη λειτουργική μονάδα χρησιμοποιώντας το ενσωματωμένο Install-Module cmdlet.
Ακολουθεί ένα παράδειγμα της διαδικασίας που χρησιμοποιεί τη λειτουργική μονάδα RobustCloudCommand για την προσθήκη δικαιωμάτων σε πολλούς δημόσιους φακέλους:
-
Εξαγάγετε τη λίστα των δημόσιων φακέλων στο PFList.csv, εκτελώντας το ακόλουθο cmdlet:
Invoke-Command -Scriptblock {Get-PublicFolder -Recurse -Resultsize Unlimited | Select-Object -property Name,Identity} -Session (Get-Pssession) |Export-csv -Path C:\Temp\PFList.csv -NoTypeInformation -
Εγκαταστήστε τη λειτουργική μονάδα RobustCloudCommand εκτελώντας το ακόλουθο cmdlet:
Install-Module -Name RobustCloudCommand -Force -
Εισαγάγετε τη λίστα των δημόσιων φακέλων που δημιουργήθηκαν στο βήμα 1 στη μεταβλητή $PFList εκτελώντας το ακόλουθο cmdlet:
$PFList = Import-Csv C:\Temp\PFList.csv -
Προσθέστε δικαιώματα για κάθε δημόσιο φάκελο στη $PFList, εκτελώντας το ακόλουθο cmdlet. Αυτό το cmdlet δημιουργεί το αρχείο καταγραφής LogFileName που περιέχει τις λεπτομέρειες του cmdlet και τυχόν σφάλματα που ενδέχεται να προκύψουν.
Start-RobustCloudCommand -LogFile C:\Temp\LogFileName.log -Recipients $PFList -ScriptBlock {Add-PublicFolderClientPermission -Identity $input.identity.tostring() -User User@Contoso.com -AccessRights CreateItems} -IdentifyingProperty Identity -UserPrincipalName Admin@contoso.com
Σημείωση: Συνήθως, αυτά τα cmdlet μπορούν να εκτελούνται για ώρες ή ακόμη και ημέρες, ανάλογα με τον αριθμό των αντικειμένων που τροποποιούνται.
Περισσότερες πληροφορίες
Εξακολουθείτε να χρειάζεστε βοήθεια; Μεταβείτε στην Κοινότητα της Microsoft.