Συμπτώματα
Όταν εκτελείτε δέσμες ενεργειών ή cmdlet χρησιμοποιώντας Microsoft Exchange Online μέσω απομακρυσμένου PowerShell για την τροποποίηση μεγάλων συνόλων δεδομένων, αντιμετωπίζετε ένα ή και τα δύο από τα ακόλουθα συμπτώματα:
-
Η εκτέλεση των δεσμών ενεργειών ή των cmdlet διαρκεί πολύ χρόνο.
-
Εμφανίζεται το ακόλουθο μήνυμα προειδοποίησης περιορισμού στο Exchange Online PowerShell:
ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Εφαρμόζεται μικρή καθυστέρηση. Πραγματική καθυστέρηση: <X> msecs, ... ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Εφαρμόζεται μικρή καθυστέρηση. Πραγματική καθυστέρηση: <X> msecs, Με επιβολή
Αιτία
Αυτή η συμπεριφορά οφείλεται στη σχεδίαση. Ο περιορισμός χρησιμοποιείται για την αποτροπή κακόβουλων ή ακούσιων επιθέσεων κατά της υπηρεσίας που θα μπορούσαν να επηρεάσουν τις συμβάσεις επιπέδου υπηρεσίας. Μπορείτε να αγνοήσετε το προειδοποιητικό μήνυμα με ασφάλεια.
Λύση
Για να επιλύσετε αυτή τη συμπεριφορά, δοκιμάστε τις ακόλουθες επιλογές με τη συγκεκριμένη σειρά.
Επιλογή 1
Εκτελέστε έναν διαγνωστικό έλεγχο αυτοβοήθειας στο Κέντρο διαχείρισης Microsoft 365, για να ενημερώσετε την πολιτική περιορισμού του Απομακρυσμένου PowerShell του Exchange για το μισθωτή σας. Για λεπτομέρειες, ανατρέξτε στο θέμα Διαγνωστικός έλεγχος αυτοβοήθειας για θέματα στο Exchange Online και το Outlook.
Επιλογή 2
Χρησιμοποιήστε Exchange Online cmdlet του PowerShell V2 για να εκτελέσετε την εργασία. Για λεπτομέρειες, ανατρέξτε στο θέμα Πληροφορίες για την Exchange Online λειτουργικής μονάδας PowerShell V2.
Επιλογή 3
Προσθέστε το παρακάτω στοιχείο αναστολής λειτουργίας στις δέσμες ενεργειών ή τα cmdlet. Αυτό το στοιχείο επιβραδύνει τη δέσμη ενεργειών ή το cmdlet εντός των ορίων του ορίου περιορισμού.Start-Sleep -m <Time in milliseconds> Στο παρακάτω παράδειγμα, η λίστα των γραμματοκιβωτίων που ανακτώνται με τη χρήση του cmdlet Get-Mailbox αποθηκεύονται σε μια μεταβλητή. Αυτή η μεταβλητή χρησιμοποιείται για την εκτέλεση μιας ενέργειας σε όλα τα γραμματοκιβώτια. Αυτό το είδος εργασίας συνήθως περιορίζεται. Προσθέτοντας το στοιχείο αναστολής λειτουργίας στο cmdlet, μπορείτε να προσπαθήσετε να παραμείνετε εντός των ορίων του ορίου περιορισμού.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Επιλογή 4
Χρησιμοποιήστε τη λειτουργική μονάδα RobustCloudCommand για να εκτελέσετε τις δέσμες ενεργειών ή τα cmdlet. Μπορείτε να εγκαταστήσετε αυτή τη λειτουργική μονάδα χρησιμοποιώντας το ενσωματωμένο cmdlet Install-Module .Ακολουθεί ένα παράδειγμα της διαδικασίας που χρησιμοποιεί τη λειτουργική μονάδα 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.