Κοινή χρήση μέσω


Πρόσβαση στο αρχείο καταγραφής δραστηριότητας του Power BI

Αυτό το άρθρο απευθύνεται σε διαχειριστές Power BI που χρειάζονται πρόσβαση και ανάλυση δεδομένων που προέρχονται από το αρχείο καταγραφής δραστηριότητας του Power BI. Εστιάζει στην προγραμματισμένη ανάκτηση δραστηριοτήτων Power BI χρησιμοποιώντας το cmdlet Get-PowerBIActivityEvent από τη λειτουργική μονάδα Διαχείριση Power BI. Υπάρχει ιστορικό έως και 30 ημερών. Αυτό το cmdlet χρησιμοποιεί τη λειτουργία Λήψη συμβάντων δραστηριότητας Power BI REST API, η οποία είναι ένα API διαχειριστή. Τα cmdlet του PowerShell προσθέτουν ένα επίπεδο αφαίρεσης πάνω από τα υποκείμενα API. Επομένως, το cmdlet του PowerShell απλοποιεί την πρόσβαση στο αρχείο καταγραφής δραστηριοτήτων του Power BI.

Υπάρχουν άλλοι μη αυτόματοι και προγραμματικοί τρόποι για την ανάκτηση δραστηριοτήτων Power BI. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Πρόσβαση στα δεδομένα δραστηριότητας χρήστη.

Η ανάλυση του αρχείου καταγραφής δραστηριότητας του Power BI είναι σημαντική για τη διαχείριση, τη συμμόρφωση και την παρακολούθηση των προσπαθειών υιοθέτησης . Για περισσότερες πληροφορίες σχετικά με το αρχείο καταγραφής δραστηριότητας του Power BI, ανατρέξτε στο θέμα Παρακολούθηση δραστηριοτήτων χρηστών στο Power BI.

Φιλοδώρημα

Συνιστούμε να εξετάσετε πλήρως το άρθρο Έλεγχος σε επίπεδο μισθωτή. Αυτό το άρθρο καλύπτει τον σχεδιασμό, βασικές αποφάσεις, προαπαιτούμενα και βασικές δραστηριότητες ανάπτυξης λύσεων, για να λάβετε υπόψη κατά τη δημιουργία μιας ολοκληρωμένης λύσης ελέγχου.

Διαθέσιμα παραδείγματα

Ο στόχος αυτού του άρθρου είναι να σας δώσει παραδείγματα για να σας βοηθήσει να ξεκινήσετε. Τα παραδείγματα περιλαμβάνουν δέσμες ενεργειών που ανακτούν δεδομένα από το αρχείο καταγραφής δραστηριότητας χρησιμοποιώντας τη λειτουργική μονάδα PowerShell Διαχείρισης Power BI.

Προειδοποίηση

Οι δέσμες ενεργειών δεν είναι έτοιμες για παραγωγή, επειδή προορίζονται μόνο για εκπαιδευτικούς σκοπούς. Ωστόσο, μπορείτε να προσαρμόσετε τις δέσμες ενεργειών για σκοπούς παραγωγής, προσθέτοντας λογική για καταγραφή, χειρισμό σφαλμάτων, ειδοποίηση και επανασχεδιισμό για επαναχρησιμοποίηση και αρθρωτό κώδικα.

Επειδή προορίζονται για εκμάθηση, τα παραδείγματα είναι απλοϊκά, αλλά είναι πραγματικά. Συνιστούμε να εξετάσετε όλα τα παραδείγματα για να κατανοήσετε πώς εφαρμόζουν ελαφρώς διαφορετικές τεχνικές. Αφού προσδιορίσετε τον τύπο δεδομένων δραστηριότητας που χρειάζεστε, μπορείτε να συνδυάσετε και να αντιστοιχίσετε τις τεχνικές για να δημιουργήσετε μια δέσμη ενεργειών που ταιριάζει καλύτερα στις απαιτήσεις σας.

Αυτό το άρθρο περιλαμβάνει τα παρακάτω παραδείγματα.

Παράδειγμα ονόματος Τύπος δεδομένων δραστηριότητας
Έλεγχος ταυτότητας με την υπηρεσία Power BI ΔΙ
Προβολή όλων των δραστηριοτήτων για έναν χρήστη για μία ημέρα Όλα
Προβολή δραστηριότητας για N ημέρες Κοινή χρήση αναφοράς (σύνδεση ή άμεση πρόσβαση)
Προβολή τριών δραστηριοτήτων για N ημέρες Δημιουργία εφαρμογής, ενημέρωση εφαρμογής και εγκατάσταση εφαρμογής
Προβολή όλων των δραστηριοτήτων για έναν χώρο εργασίας για μία ημέρα Όλα
Εξαγωγή όλων των δραστηριοτήτων για τις προηγούμενες N ημέρες Όλα

Για λόγους ευκολίας, τα περισσότερα παραδείγματα εξάγουν το αποτέλεσμό τους στην οθόνη. Για παράδειγμα, στο Visual Studio Code, τα δεδομένα εξάγεται στον πίνακα τερματικού, ο οποίος διατηρεί ένα σύνολο δεδομένων buffer στη μνήμη.

Τα περισσότερα παραδείγματα ανακτούν ανεπεξέργαστα δεδομένα JSON. Η εργασία με τα ανεπεξέργαστα δεδομένα JSON έχει πολλά πλεονεκτήματα.

  • Επιστρέφονται όλες οι πληροφορίες που είναι διαθέσιμες για κάθε συμβάν δραστηριότητας. Αυτό είναι χρήσιμο για να μάθετε ποια δεδομένα είναι διαθέσιμα. Να θυμάστε ότι τα περιεχόμενα μιας απόκρισης API διαφέρουν ανάλογα με το πραγματικό συμβάν δραστηριότητας. Για παράδειγμα, τα δεδομένα που είναι διαθέσιμα για ένα συμβάν CreateApp είναι διαφορετικά από το συμβάν ViewReport .
  • Επειδή τα δεδομένα που είναι διαθέσιμα στο αρχείο καταγραφής δραστηριότητας αλλάζουν καθώς το Power BI εξελίσσεται με την πάροδο του χρόνου, μπορείτε να περιμένετε να αλλάξουν επίσης οι αποκρίσεις API. Με αυτόν τον τρόπο, δεν θα χάσετε τα νέα δεδομένα που παρουσιάζονται. Η διαδικασία σας είναι επίσης πιο ανθεκτική στις αλλαγές και λιγότερο πιθανό να αποτύχει.
  • Οι λεπτομέρειες μιας απόκρισης API μπορεί να διαφέρουν για το εμπορικό cloud Power BI και τα εθνικά/τοπικά cloud.
  • Εάν έχετε διαφορετικά μέλη ομάδας (όπως μηχανικούς δεδομένων) που εμπλέκονται σε αυτήν τη διαδικασία, η απλοποίηση της αρχικής διαδικασίας για την εξαγωγή των δεδομένων διευκολύνει τη συνεργασία πολλών ομάδων.

Φιλοδώρημα

Συνιστούμε να διατηρείτε τις δέσμες ενεργειών σας που εξάγουν δεδομένα όσο το δυνατόν πιο απλές. Επομένως, αποφύγετε την ανάλυση, το φιλτράρισμα ή τη μορφοποίηση των δεδομένων αρχείου καταγραφής δραστηριότητας κατά την εξαγωγή τους. Αυτή η προσέγγιση χρησιμοποιεί μια μεθοδολογία ELT , η οποία διαθέτει ξεχωριστά βήματα για την εξαγωγή, φόρτωση και μετασχηματισμό δεδομένων. Αυτό το άρθρο εστιάζει μόνο στο πρώτο βήμα, το οποίο αφορά την εξαγωγή των δεδομένων.

Απαιτήσεις

Για να χρησιμοποιήσετε το παράδειγμα δεσμών ενεργειών, πρέπει να πληροίτε τις ακόλουθες απαιτήσεις.

  • Εργαλείο προγράμματος-πελάτη του PowerShell: Χρησιμοποιήστε το προτιμώμενο εργαλείο για την εκτέλεση εντολών του PowerShell. Όλα τα παραδείγματα δοκιμάστηκαν χρησιμοποιώντας την επέκταση PowerShell για κώδικα Visual Studio με το PowerShell 7. Για πληροφορίες σχετικά με τα εργαλεία προγράμματος-πελάτη και τις εκδόσεις του PowerShell, ανατρέξτε στο θέμα Έλεγχος σε επίπεδο μισθωτή.
  • Εκπαιδευτική ενότητα "Διαχείριση Power BI": Εγκαταστήστε όλες τις λειτουργικές μονάδες του Power BI PowerShell. Εάν τις είχατε εγκαταστήσει προηγουμένως, συνιστούμε να ενημερώσετε τις λειτουργικές μονάδες για να βεβαιωθείτε ότι χρησιμοποιείτε την πιο πρόσφατη δημοσιευμένη έκδοση.
  • Ρόλος διαχειριστή Fabric: Τα παραδείγματα δεσμών ενεργειών έχουν σχεδιαστεί για χρήση μιας αλληλεπιδραστικής ροής ελέγχου ταυτότητας. Επομένως, ο χρήστης που εκτελεί τις δέσμες ενεργειών παραδείγματος PowerShell πρέπει να εισέλθει για να χρησιμοποιήσει τα API REST του Power BI. Για να ανακτήσει δεδομένα αρχείου καταγραφής δραστηριότητας, ο χρήστης που εκτελεί έλεγχο ταυτότητας πρέπει να ανήκει στον ρόλο διαχειριστή Power BI (επειδή η ανάκτηση συμβάντων δραστηριότητας γίνεται με ένα API διαχειριστή). Ο έλεγχος ταυτότητας κύριας υπηρεσίας είναι εκτός εμβέλειας για αυτά τα παραδείγματα εκμάθησης.

Το υπόλοιπο άρθρο περιλαμβάνει δείγματα δεσμών ενεργειών που σας εμφανίζουν διαφορετικούς τρόπους για να ανακτήσετε δεδομένα αρχείου καταγραφής δραστηριότητας.

Παράδειγμα 1: Έλεγχος ταυτότητας με την υπηρεσία Power BI

Όλες οι λειτουργίες του Power BI REST API απαιτούν την είσοδο. Η διαχείριση του ελέγχου ταυτότητας (ποιος πραγματοποιεί την αίτηση) και της εξουσιοδότησης (αυτό που ο χρήστης έχει δικαίωμα να κάνει) γίνεται από την πλατφόρμα ταυτότητας της Microsoft. Το παρακάτω παράδειγμα χρησιμοποιεί το cmdlet Connect-PowerBIServiceAccount από τη λειτουργική μονάδα Διαχείριση Power BI. Αυτό το cmdlet υποστηρίζει μια απλή μέθοδο εισόδου.

Δείγμα αίτησης 1

Η πρώτη δέσμη ενεργειών σάς ανακατευθύνει σε ένα πρόγραμμα περιήγησης για να ολοκληρώσετε τη διαδικασία εισόδου. Οι λογαριασμοί χρήστη που έχουν ενεργοποιημένο τον έλεγχο ταυτότητας πολλών παραγόντων (MFA) μπορούν να χρησιμοποιήσουν αυτήν τη αλληλεπιδραστική ροή ελέγχου ταυτότητας για είσοδο.

Connect-PowerBIServiceAccount

Σημαντικό

Οι χρήστες χωρίς δικαιώματα διαχειριστή Power BI δεν μπορούν να εκτελέσουν κανένα από τα δείγματα δεσμών ενεργειών που ακολουθούν σε αυτό το άρθρο. Οι διαχειριστές του Power BI έχουν δικαίωμα να διαχειρίζονται την υπηρεσία Power BI και να ανακτούν μετα-δεδομένα σε όλο τον μισθωτή (όπως δεδομένα αρχείου καταγραφής δραστηριότητας). Παρόλο που ο έλεγχος ταυτότητας κύριας υπηρεσίας είναι εκτός εμβέλειας για αυτά τα παραδείγματα, συνιστούμε να ρυθμίσετε μια κύρια υπηρεσία για δέσμες ενεργειών χωρίς επίβλεψη που θα εκτελούνται βάσει χρονοδιαγράμματος.

Βεβαιωθείτε ότι έχετε εισέλθει πριν εκτελέσετε οποιαδήποτε από τις ακόλουθες δέσμες ενεργειών.

Παράδειγμα 2: Προβολή όλων των δραστηριοτήτων για έναν χρήστη για μία ημέρα

Ορισμένες φορές χρειάζεται να ελέγξετε όλες τις δραστηριότητες που εκτέλεσε ένας συγκεκριμένος χρήστης σε μια συγκεκριμένη ημέρα.

Φιλοδώρημα

Κατά την εξαγωγή δεδομένων από το αρχείο καταγραφής δραστηριότητας χρησιμοποιώντας το cmdlet του PowerShell, κάθε αίτηση μπορεί να εξαγάγει δεδομένα για μία ημέρα (το πολύ 24 ώρες). Επομένως, ο στόχος αυτού του παραδείγματος είναι να ξεκινήσει απλώς ελέγχοντας έναν χρήστη για μία ημέρα. Υπάρχουν άλλα παραδείγματα παρακάτω σε αυτό το άρθρο που σας δείχνουν πώς μπορείτε να χρησιμοποιήσετε έναν βρόχο για εξαγωγή δεδομένων για πολλές ημέρες.

Δείγμα αίτησης 2

Αυτή η δέσμη ενεργειών δηλώνει δύο μεταβλητές PowerShell για να διευκολύνει την επαναχρησιμοποίηση της δέσμης ενεργειών:

  • $UserEmailAddr: Η διεύθυνση ηλεκτρονικού ταχυδρομείου του χρήστη που σας ενδιαφέρει.
  • $ActivityDateΗ ημερομηνία που σας ενδιαφέρει. Η μορφή είναι ΕΕΕΕ-ΜΜ-ΗΗ (μορφή ISO 8601). Δεν μπορείτε να ζητήσετε μια ημερομηνία προγενέστερη των 30 ημερών πριν από την τρέχουσα ημερομηνία.
#Input values before running the script:
$UserEmailAddr = 'jordan@contoso.com'
$ActivityDate = '2023-03-15'
#----------------------------------------------------------------------
#View activity events:
Get-PowerBIActivityEvent `
    -StartDateTime ($ActivityDate + 'T00:00:00.000') `
    -EndDateTime ($ActivityDate + 'T23:59:59.999') `
    -User $UserEmailAddr

Σημείωμα

Ενδέχεται να παρατηρήσετε έναν χαρακτήρα βαρείας (') στο τέλος ορισμένων γραμμών στις δέσμες ενεργειών του PowerShell. Στο PowerShell, ένας τρόπος για να χρησιμοποιήσετε τον χαρακτήρα βαρείας είναι ως χαρακτήρας συνέχειας γραμμής. Το χρησιμοποιήσαμε για να βελτιώσουμε την αναγνωσιμότητα των δεσμών ενεργειών σε αυτό το άρθρο.

Φιλοδώρημα

Στη δέσμη ενεργειών, καθεμία από τις μεταβλητές του PowerShell συσχετίζεται με μια απαιτούμενη ή προαιρετική τιμή παραμέτρου στο cmdlet Get-PowerBIActivityEvent . Για παράδειγμα, η τιμή που αντιστοιχίζετε στη $UserEmailAddr μεταβλητή μεταβιβάζεται στην -User παράμετρο. Η δήλωση μεταβλητών PowerShell με αυτόν τον τρόπο είναι μια ελαφριά προσέγγιση για την αποφυγή τιμών σύνταξης κώδικα που θα μπορούσαν να αλλάξουν στη δέσμη ενεργειών σας. Αυτή είναι μια καλή συνήθεια να υιοθετήσετε και θα είναι χρήσιμη καθώς τα σενάριά σας γίνονται πιο σύνθετα. Οι παράμετροι του PowerShell είναι πιο ισχυρές από τις μεταβλητές, όμως είναι εκτός εμβέλειας για αυτό το άρθρο.

Δείγμα απόκρισης 2

Ακολουθεί ένα δείγμα απόκρισης JSON. Περιλαμβάνει δύο δραστηριότητες που εκτέλεσε ο χρήστης:

  • Η πρώτη δραστηριότητα δείχνει ότι ένας χρήστης είδε μια αναφορά.
  • Η δεύτερη δραστηριότητα δείχνει ότι ένας διαχειριστής εξήγαγε δεδομένα από το αρχείο καταγραφής δραστηριότητας του Power BI.
[
  {
    "Id": "10af656b-b5a2-444c-bf67-509699896daf",
    "RecordType": 20,
    "CreationTime": "2023-03-15T15:18:30Z",
    "Operation": "ViewReport",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "100FFF92C7717B",
    "Workload": "PowerBI",
    "UserId": "jordan@contoso.com",
    "ClientIP": "192.168.1.1",
    "Activity": "ViewReport",
    "ItemName": "Gross Margin Analysis",
    "WorkSpaceName": "Sales Analytics",
    "DatasetName": "Sales Data",
    "ReportName": "Gross Margin Analysis",
    "WorkspaceId": "e380d1d0-1fa6-460b-9a90-1a5c6b02414c",
    "ObjectId": "Gross Margin Analysis",
    "DatasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
    "ReportId": "94e57e92-Cee2-486d-8cc8-218c97200579",
    "ArtifactId": "94e57e92-Cee2-486d-8cc8-218c97200579",
    "ArtifactName": "Gross Margin Analysis",
    "IsSuccess": true,
    "ReportType": "PowerBIReport",
    "RequestId": "53451b83-932b-f0b0-5328-197133f46fa4",
    "ActivityId": "beb41a5d-45d4-99ee-0e1c-b99c451e9953",
    "DistributionMethod": "Workspace",
    "ConsumptionMethod": "Power BI Web",
    "SensitivityLabelId": "e3dd4e72-5a5d-4a95-b8b0-a0b52b827793",
    "ArtifactKind": "Report"
  },
  {
    "Id": "5c913f29-502b-4a1a-a089-232edaf176f7",
    "RecordType": 20,
    "CreationTime": "2023-03-15T17:22:00Z",
    "Operation": "ExportActivityEvents",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 2,
    "UserKey": "100FFF92C7717B",
    "Workload": "PowerBI",
    "UserId": "jordan@contoso.com",
    "ClientIP": "192.168.1.1",
    "UserAgent": "MicrosoftPowerBIMgmt/1.2.1111.0",
    "Activity": "ExportActivityEvents",
    "IsSuccess": true,
    "RequestId": "2af6a22d-6f24-4dc4-a26a-5c234ab3afad",
    "ActivityId": "00000000-0000-0000-0000-000000000000",
    "ExportEventStartDateTimeParameter": "2023-03-17T00:00:00Z",
    "ExportEventEndDateTimeParameter": "2023-03-17T23:59:59.999Z"
  }
]

Φιλοδώρημα

Η εξαγωγή των δεδομένων του αρχείου καταγραφής δραστηριότητας του Power BI είναι επίσης μια λειτουργία που έχει καταγραφεί, όπως φαίνεται στην προηγούμενη απόκριση. Όταν αναλύετε δραστηριότητες χρηστών, μπορεί να θέλετε να παραλείψετε τις δραστηριότητες διαχειριστή ή να τις αναλύσετε ξεχωριστά.

Παράδειγμα 3: Προβολή δραστηριότητας για N ημέρες

Ορισμένες φορές μπορεί να θέλετε να διερευνήσετε έναν συγκεκριμένο τύπο δραστηριότητας για μια σειρά ημερών. Αυτό το παράδειγμα εμφανίζει τον τρόπο ανάκτησης δραστηριοτήτων κοινής χρήσης αναφοράς ανά στοιχείο. Χρησιμοποιεί έναν βρόχο για την ανάκτηση δραστηριοτήτων από τις προηγούμενες επτά ημέρες.

Δείγμα αίτησης 3

Η δέσμη ενεργειών δηλώνει δύο μεταβλητές:

  • $ActivityType: Το όνομα της λειτουργίας για τη δραστηριότητα που διερευνάτε.
  • $NbrOfDaysToCheck: Πόσες ημέρες ενδιαφέρεστε να ελέγξετε. Εκτελεί ένα βρόχο που λειτουργεί προς τα πίσω από την τρέχουσα ημέρα. Η μέγιστη επιτρεπόμενη τιμή είναι 30 ημέρες (επειδή η παλαιότερη ημερομηνία που μπορείτε να ανακτήσετε είναι 30 ημέρες πριν από την τρέχουσα ημέρα).
#Input values before running the script:
$ActivityType = 'ShareReport' 
$NbrOfDaysToCheck = 7 
#-----------------------------------------------------------------------

#Use today to start counting back the number of days to check:
$DayUTC = (([datetime]::Today.ToUniversalTime()).Date)

#Iteratively loop through each of the last N days to view events:
For($LoopNbr=0; $LoopNbr -le $NbrOfDaysToCheck; $LoopNbr++)
{
    $PeriodStart=$DayUTC.AddDays(-$LoopNbr)
    $ActivityDate=$PeriodStart.ToString("yyyy-MM-dd")
    Write-Verbose "Checking $ActivityDate" -Verbose 

    #Check activity events once per loop (once per day):
    Get-PowerBIActivityEvent `
        -StartDateTime ($ActivityDate + 'T00:00:00.000') `
        -EndDateTime ($ActivityDate + 'T23:59:59.999') `
        -ActivityType $ActivityType 
}

Φιλοδώρημα

Μπορείτε να χρησιμοποιήσετε αυτή την τεχνική βρόχων για να ελέγξετε οποιαδήποτε από τις λειτουργίες που έχουν καταγραφεί στο αρχείο καταγραφής δραστηριότητας.

Δείγμα απόκρισης 3

Ακολουθεί ένα δείγμα απόκρισης JSON. Περιλαμβάνει δύο δραστηριότητες που εκτέλεσε ο χρήστης:

  • Η πρώτη δραστηριότητα δείχνει ότι δημιουργήθηκε μια σύνδεση κοινής χρήσης για έναν χρήστη. Σημειώστε ότι η τιμή SharingAction διαφέρει ανάλογα με το αν ο χρήστης δημιούργησε μια σύνδεση, επεξεργάστηκε μια σύνδεση ή διέγραψε μια σύνδεση. Για συντομία, μόνο ένας τύπος δραστηριότητας σύνδεσης κοινής χρήσης εμφανίζεται στην απόκριση.
  • Η δεύτερη δραστηριότητα δείχνει ότι δημιουργήθηκε άμεση κοινή χρήση πρόσβασης για μια ομάδα. Σημειώστε ότι η τιμή SharingInformation διαφέρει ανάλογα με την ενέργεια που πραγματοποιείται. Για συντομία, μόνο ένας τύπος δραστηριότητας άμεσης κοινής χρήσης πρόσβασης εμφανίζεται στην απόκριση.
[
  {
    "Id": "be7506e1-2bde-4a4a-a210-bc9b156142c0",
    "RecordType": 20,
    "CreationTime": "2023-03-15T19:52:42Z",
    "Operation": "ShareReport",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "900GGG12D2242A",
    "Workload": "PowerBI",
    "UserId": "morgan@contoso.com",
    "ClientIP": "192.168.1.1",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0",
    "Activity": "ShareReport",
    "ItemName": "Call Center Stats",
    "WorkSpaceName": "Sales Analytics",
    "SharingInformation": [
      {
        "RecipientEmail": "ellis@contoso.com",
        "RecipientName": "Turner",
        "ObjectId": "fc9bbc6c-e39b-44cb-9c8a-d37d5665ec57",
        "ResharePermission": "ReadReshare",
        "UserPrincipalName": "ellis@contoso.com"
      }
    ],
    "WorkspaceId": "e380d1d0-1fa6-460b-9a90-1a5c6b02414c",
    "ObjectId": "Call Center Stats",
    "Datasets": [
      {
        "DatasetId": "fgagrwa3-9044-3e1e-228f-k24bf72gg995",
        "DatasetName": "Call Center Data"
      }
    ],
    "ArtifactId": "81g22w11-vyy3-281h-1mn3-822a99921541",
    "ArtifactName": "Call Center Stats",
    "IsSuccess": true,
    "RequestId": "7d55cdd3-ca3d-a911-5e2e-465ac84f7aa7",
    "ActivityId": "4b8b53f1-b1f1-4e08-acdf-65f7d3c1f240",
    "SharingAction": "CreateShareLink",
    "ShareLinkId": "J_5UZg-36m",
    "ArtifactKind": "Report",
    "SharingScope": "Specific People"
  },
  {
    "Id": "b4d567ac-7ec7-40e4-a048-25c98d9bc304",
    "RecordType": 20,
    "CreationTime": "2023-03-15T11:57:26Z",
    "Operation": "ShareReport",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "900GGG12D2242A",
    "Workload": "PowerBI",
    "UserId": "morgan@contoso.com",
    "ClientIP": "69.132.26.0",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
    "Activity": "ShareReport",
    "ItemName": "Gross Margin Analysis",
    "WorkSpaceName": "Sales Analytics",
    "SharingInformation": [
      {
        "RecipientName": "SalesAndMarketingGroup-NorthAmerica",
        "ObjectId": "ba21f28b-6226-4296-d341-f059257a06a7",
        "ResharePermission": "Read"
      }
    ],
    "CapacityId": "1DB44EEW-6505-4A45-B215-101HBDAE6A3F",
    "CapacityName": "Shared On Premium - Reserved",
    "WorkspaceId": "e380d1d0-1fa6-460b-9a90-1a5c6b02414c",
    "ObjectId": "Gross Margin Analysis",
    "Datasets": [
      {
        "DatasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
        "DatasetName": "Sales Data"
      }
    ],
    "ArtifactId": "94e57e92-Cee2-486d-8cc8-218c97200579",
    "ArtifactName": "Gross Margin Analysis",
    "IsSuccess": true,
    "RequestId": "82219e60-6af0-0fa9-8599-c77ed44fff9c",
    "ActivityId": "1d21535a-257e-47b2-b9b2-4f875b19855e",
    "SensitivityLabelId": "16c065f5-ba91-425e-8693-261e40ccdbef",
    "SharingAction": "Direct",
    "ArtifactKind": "Report",
    "SharingScope": "Specific People"
  }
]

Σημείωμα

Αυτή η απόκριση JSON δείχνει ότι η δομή δεδομένων διαφέρει ανάλογα με τον τύπο του συμβάντος. Ακόμη και ο ίδιος τύπος συμβάντος μπορεί να έχει διαφορετικά χαρακτηριστικά που παράγουν ελαφρά διαφορετική έξοδο. Όπως συνιστάται παραπάνω σε αυτό το άρθρο, θα πρέπει να εξοικειωθείτε με την ανάκτηση των ανεπεξέργαστων δεδομένων.

Παράδειγμα 4: Προβολή τριών δραστηριοτήτων για N ημέρες

Ορισμένες φορές μπορεί να θέλετε να διερευνήσετε πολλές σχετικές δραστηριότητες. Αυτό το παράδειγμα δείχνει πώς μπορείτε να ανακτήσετε τρεις συγκεκριμένες δραστηριότητες για τις προηγούμενες επτά ημέρες. Εστιάζει σε δραστηριότητες που σχετίζονται με εφαρμογές Power BI, όπως η δημιουργία μιας εφαρμογής, η ενημέρωση μιας εφαρμογής και η εγκατάσταση μιας εφαρμογής.

Δείγμα αίτησης 4

Η δέσμη ενεργειών δηλώνει τις ακόλουθες μεταβλητές:

  • $NbrOfDaysToCheck: Πόσες ημέρες ενδιαφέρεστε να ελέγξετε. Εκτελεί έναν βρόχο που λειτουργεί προς τα πίσω από την τρέχουσα ημέρα. Η μέγιστη επιτρεπόμενη τιμή είναι 30 ημέρες (επειδή η παλαιότερη ημερομηνία που μπορείτε να ανακτήσετε είναι 30 ημέρες πριν από την τρέχουσα ημέρα).
  • $Activity1: Το όνομα της λειτουργίας για την πρώτη δραστηριότητα που διερευνάτε. Σε αυτό το παράδειγμα, αναζητά δραστηριότητες δημιουργίας εφαρμογών Power BI.
  • $Activity2: Το όνομα της δεύτερης λειτουργίας. Σε αυτό το παράδειγμα, αναζητά δραστηριότητες ενημέρωσης εφαρμογής Power BI.
  • $Activity3: Το τρίτο όνομα λειτουργίας. Σε αυτό το παράδειγμα, αναζητά δραστηριότητες εγκατάστασης εφαρμογών Power BI.

Μπορείτε να ανακτήσετε συμβάντα δραστηριότητας μόνο για μία δραστηριότητα κάθε φορά. Επομένως, η δέσμη ενεργειών αναζητά κάθε λειτουργία ξεχωριστά. Συνδυάζει τα αποτελέσματα αναζήτησης σε μια μεταβλητή με ονομασία $FullResults, η οποία έπειτα εξάγεται στην οθόνη.

Προσοχή

Η εκτέλεση πολλών βρόχων πολλές φορές αυξάνει σημαντικά την πιθανότητα περιορισμού του API. Ο περιορισμός μπορεί να συμβεί όταν υπερβείτε τον αριθμό αιτήσεων που επιτρέπεται να πραγματοποιήσετε σε μια δεδομένη χρονική περίοδο. Η λειτουργία Λήψη συμβάντων δραστηριότητας περιορίζεται σε 200 αιτήσεις ανά ώρα. Όταν σχεδιάζετε τις δέσμες ενεργειών σας, φροντίστε να μην ανακτήσετε τα αρχικά δεδομένα περισσότερες φορές από όσες χρειάζεστε. Γενικά, συνιστάται η εξαγωγή όλων των ανεπεξέργαστων δεδομένων μία φορά την ημέρα και, στη συνέχεια, η υποβολή ερωτημάτων, ο μετασχηματισμός, το φιλτράρισμα ή η μορφοποίηση αυτών των δεδομένων ξεχωριστά.

Η δέσμη ενεργειών εμφανίζει αποτελέσματα για την τρέχουσα ημέρα.

Σημείωμα

Για να ανακτήσετε αποτελέσματα μόνο για την προηγούμενη ημέρα, αποφεύγοντας τα αποτελέσματα μιας μερικής ημέρας, ανατρέξτε στο παράδειγμα Εξαγωγή όλων των δραστηριοτήτων για προηγούμενες N ημέρες .)

#Input values before running the script:
$NbrOfDaysToCheck = 7
$Activity1 = 'CreateApp'
$Activity2 = 'UpdateApp'
$Activity3 = 'InstallApp'
#-----------------------------------------------------------------------
#Initialize array which will contain the full resultset:
$FullResults = @() 

#Use today to start counting back the number of days to check:
$DayUTC = (([datetime]::Today.ToUniversalTime()).Date)

#Iteratively loop through each day (<Initilize> ; <Condition> ; <Repeat>)
#Append each type of activity to an array:
For($LoopNbr=0; $LoopNbr -le $NbrOfDaysToCheck; $LoopNbr++)
{
    $PeriodStart=$DayUTC.AddDays(-$LoopNbr)
    $ActivityDate=$PeriodStart.ToString("yyyy-MM-dd")
    Write-Verbose "Checking $ActivityDate" -Verbose 

    #Get activity 1 and append its results into the full resultset:
    $Activity1Results = @()
    $Activity1Results += Get-PowerBIActivityEvent `
        -StartDateTime ($ActivityDate+'T00:00:00.000') `
        -EndDateTime ($ActivityDate+'T23:59:59.999') `
        -ActivityType $Activity1 | ConvertFrom-Json
    If ($null -ne $Activity1Results) {$FullResults += $Activity1Results}
    
    #Get activity 2 and append its results into the full resultset:
    $Activity2Results = @()
    $Activity2Results += Get-PowerBIActivityEvent `
        -StartDateTime ($ActivityDate+'T00:00:00.000') `
        -EndDateTime ($ActivityDate+'T23:59:59.999') `
        -ActivityType $Activity2 | 
    ConvertFrom-Json
    If ($null -ne $Activity2Results) {$FullResults += $Activity2Results}  

    #Get activity 3 and append its results into the full resultset:
    $Activity3Results = @()
    $Activity3Results += Get-PowerBIActivityEvent `
        -StartDateTime ($ActivityDate+'T00:00:00.000') `
        -EndDateTime ($ActivityDate+'T23:59:59.999') `
        -ActivityType $Activity3 | 
    ConvertFrom-Json
    If ($null -ne $Activity3Results) {$FullResults += $Activity3Results}
    
}  
#Convert all of the results back to a well-formed JSON object:
$FullResults = $FullResults | ConvertTo-Json

#Display results on the screen:
$FullResults

Δείγμα απόκρισης 4

Ακολουθεί ένα δείγμα απόκρισης JSON. Περιλαμβάνει τρεις δραστηριότητες που εκτέλεσε ο χρήστης:

  • Η πρώτη δραστηριότητα δείχνει ότι δημιουργήθηκε μια εφαρμογή Power BI.
  • Η δεύτερη δραστηριότητα δείχνει ότι μια εφαρμογή Power BI ενημερώθηκε.
  • Η τρίτη δραστηριότητα δείχνει ότι μια εφαρμογή Power BI εγκαταστάθηκε από έναν χρήστη.

Προειδοποίηση

Η απόκριση περιλαμβάνει μόνο τα δικαιώματα χρήστη που τροποποιήθηκαν. Για παράδειγμα, είναι πιθανό να έχουν δημιουργηθεί τρία ακροατήρια σε ένα συμβάν CreateApp . Στο συμβάν UpdateApp, εάν αλλάξει μόνο ένα ακροατήριο, τότε θα εμφανιζόταν μόνο ένα ακροατήριο στα δεδομένα του OrgAppPermission. Για αυτόν τον λόγο, η εξάρτηση από το συμβάν UpdateApp για την παρακολούθηση όλων των δικαιωμάτων εφαρμογής είναι ελλιπής, επειδή το αρχείο καταγραφής δραστηριότητας εμφανίζει μόνο τις αλλαγές.

Για ένα στιγμιότυπο όλων των δικαιωμάτων εφαρμογής Power BI, χρησιμοποιήστε τη λειτουργία Λήψη χρηστών εφαρμογών ως API διαχειριστή .

[
  {
    "Id": "65a26480-981a-4905-b3aa-cbb3df11c7c2",
    "RecordType": 20,
    "CreationTime": "2023-03-15T18:42:13Z",
    "Operation": "CreateApp",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "100FFF92C7717B",
    "Workload": "PowerBI",
    "UserId": "jordan@contoso.com",
    "ClientIP": "192.168.1.1",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
    "Activity": "CreateApp",
    "ItemName": "Sales Reconciliations App",
    "WorkSpaceName": "Sales Reconciliations",
    "OrgAppPermission": {
      "recipients": "Sales Reconciliations App(Entire Organization)",
      "permissions": "Sales Reconciliations App(Read,CopyOnWrite)"
    },
    "WorkspaceId": "9325a31d-067e-4748-a592-626d832c8001",
    "ObjectId": "Sales Reconciliations App",
    "IsSuccess": true,
    "RequestId": "ab97a4f1-9f5e-4a6f-5d50-92c837635814",
    "ActivityId": "9bb54a9d-b688-4028-958e-4d7d21ca903a",
    "AppId": "42d60f97-0f69-470c-815f-60198956a7e2"
  },
  {
    "Id": "a1dc6d26-b006-4727-bac6-69c765b7978f",
    "RecordType": 20,
    "CreationTime": "2023-03-16T18:39:58Z",
    "Operation": "UpdateApp",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "100GGG12F9921B",
    "Workload": "PowerBI",
    "UserId": "morgan@contoso.com",
    "ClientIP": "192.168.1.1",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
    "Activity": "UpdateApp",
    "ItemName": "Sales Analytics",
    "WorkSpaceName": "Sales Analytics",
    "OrgAppPermission": {
      "recipients": "Sales Reps Audience(SalesAndMarketingGroup-NorthAmerica,SalesAndMarketingGroup-Europe)",
      "permissions": "Sales Reps Audience(Read,CopyOnWrite)"
    },
    "WorkspaceId": "c7bffcd8-8156-466a-a88f-0785de2c8b13",
    "ObjectId": "Sales Analytics",
    "IsSuccess": true,
    "RequestId": "e886d122-2c09-4189-e12a-ef998268b864",
    "ActivityId": "9bb54a9d-b688-4028-958e-4d7d21ca903a",
    "AppId": "c03530c0-db34-4b66-97c7-34dd2bd590af"
  },
  {
    "Id": "aa002302-313d-4786-900e-e68a6064df1a",
    "RecordType": 20,
    "CreationTime": "2023-03-17T18:35:22Z",
    "Operation": "InstallApp",
    "OrganizationId": "927c6607-8060-4f4a-a5f8-34964ac78d70",
    "UserType": 0,
    "UserKey": "100HHH12F4412A",
    "Workload": "PowerBI",
    "UserId": "ellis@contoso.com",
    "ClientIP": "192.168.1.1",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0",
    "Activity": "InstallApp",
    "ItemName": "Sales Reconciliations App",
    "ObjectId": "Sales Reconciliations App",
    "IsSuccess": true,
    "RequestId": "7b3cc968-883f-7e13-081d-88b13f6cfbd8",
    "ActivityId": "9bb54a9d-b688-4028-958e-4d7d21ca903a"
  }
]

Παράδειγμα 5: Προβολή όλων των δραστηριοτήτων για έναν χώρο εργασίας για μία ημέρα

Ορισμένες φορές μπορεί να θέλετε να διερευνήσετε δραστηριότητες που σχετίζονται με έναν συγκεκριμένο χώρο εργασίας. Αυτό το παράδειγμα ανακτά όλες τις δραστηριότητες για όλους τους χρήστες για μία ημέρα. Στη συνέχεια, φιλτράρει τα αποτελέσματα, ώστε να μπορείτε να εστιάσετε στην ανάλυση δραστηριοτήτων από έναν χώρο εργασίας.

Δείγμα αίτησης 5

Η δέσμη ενεργειών δηλώνει δύο μεταβλητές:

  • $ActivityDateΗ ημερομηνία που σας ενδιαφέρει. Η μορφή είναι ΕΕΕΕ-ΜΜ-ΗΗ. Δεν μπορείτε να ζητήσετε μια ημερομηνία προγενέστερη των 30 ημερών πριν από την τρέχουσα ημερομηνία.
  • $WorkspaceName: Το όνομα του χώρου εργασίας που σας ενδιαφέρει.

Η δέσμη ενεργειών αποθηκεύει τα αποτελέσματα στη $Results μεταβλητή. Στη συνέχεια, μετατρέπει τα δεδομένα JSON σε ένα αντικείμενο, ώστε να είναι δυνατή η ανάλυση των αποτελεσμάτων. Στη συνέχεια, φιλτράρει τα αποτελέσματα για να ανακτήσει πέντε συγκεκριμένες στήλες. Τα δεδομένα CreationTime μετονομάζονται σε ActivityDateTime. Τα αποτελέσματα φιλτράρονται με βάση το όνομα του χώρου εργασίας και, στη συνέχεια, εξάγονται στην οθόνη.

Δεν υπάρχει μια παράμετρος για το cmdlet Get-PowerBIActivityEvent που σας επιτρέπει να καθορίσετε έναν χώρο εργασίας κατά τον έλεγχο του αρχείου καταγραφής δραστηριότητας (προηγούμενα παραδείγματα σε αυτό το άρθρο χρησιμοποίησαν παραμέτρους Του PowerShell για να ορίσουν έναν συγκεκριμένο χρήστη, ημερομηνία ή όνομα δραστηριότητας). Σε αυτό το παράδειγμα, η δέσμη ενεργειών ανακτά όλα τα δεδομένα και, στη συνέχεια, αναλύει την απόκριση JSON για να φιλτράρει τα αποτελέσματα για έναν συγκεκριμένο χώρο εργασίας.

Προσοχή

Εάν βρίσκεστε σε έναν μεγάλο οργανισμό που έχει εκατοντάδες ή χιλιάδες δραστηριότητες την ημέρα, το φιλτράρισμα των αποτελεσμάτων μετά την ανάκτηση τους μπορεί να είναι πολύ αναποτελεσματικό. Λάβετε υπόψη ότι η λειτουργία Λήψη συμβάντων δραστηριότητας περιορίζεται σε 200 αιτήσεις ανά ώρα.

Για να αποφύγετε τον περιορισμό API (όταν υπερβαίνετε τον αριθμό των αιτήσεων που επιτρέπεται να πραγματοποιήσετε σε μια δεδομένη χρονική περίοδο), μην ανακτήσετε τα αρχικά δεδομένα περισσότερο από ό,τι χρειάζεται. Μπορείτε να συνεχίσετε να εργάζεστε με τα φιλτραρισμένη αποτελέσματα χωρίς εκτέλεση της δέσμης ενεργειών για να ανακτήσετε τα αποτελέσματα ξανά. Για τις τρέχουσες ανάγκες, είναι καλύτερη πρακτική να εξαγάγετε όλα τα δεδομένα μία φορά την ημέρα και, στη συνέχεια, να τα υποβάλετε ερωτήματα πολλές φορές.

#Input values before running the script:
$ActivityDate = '2023-03-22'
$WorkspaceName = 'Sales Analytics'
#----------------------------------------------------------------------
#Run cmdlet to check activity events and store intermediate results:
$Events = Get-PowerBIActivityEvent `
    -StartDateTime ($ActivityDate+'T00:00:00.000') `
    -EndDateTime ($ActivityDate+'T23:59:59.999')
    
#Convert from JSON so we can parse the data:
$ConvertedResults = $Events | ConvertFrom-Json

#Obtain specific attributes and save to a PowerShell object:
$FilteredResults = $ConvertedResults `
    | 
    Select-Object `
    @{Name="ActivityDateTime";Expression={$PSItem.CreationTime}}, ` #alias name
    Activity, `
    UserId, `
    ArtifactName, `
    WorkspaceName `
    | 
    #Filter the results:
    Where-Object {($PSItem.WorkspaceName -eq $WorkspaceName)}

#View the filtered results:
$FilteredResults 

#Optional - Save back to JSON format:
#$FilteredResults = $FilteredResults | ConvertTo-Json -Depth 10
#$FilteredResults

Δείγμα απόκρισης 5

Ακολουθούν τα φιλτραρισμένη αποτελέσματα, τα οποία περιλαμβάνουν ένα μικρό υποσύνολο ιδιοτήτων. Η μορφή είναι πιο ευανάγνωστη για περιστασιακή ανάλυση. Ωστόσο, συνιστούμε να τη μετατρέψετε ξανά σε μορφή JSON εάν σκοπεύετε να αποθηκεύσετε τα αποτελέσματα.

Σημείωμα

Μετά τη μετατροπή των αποτελεσμάτων JSON σε αντικείμενο PowerShell, οι τιμές ώρας μετατρέπονται σε τοπική ώρα. Τα αρχικά δεδομένα ελέγχου καταγράφονται πάντα σε ώρα Συντονισμένης παγκόσμιας ώρας (UTC), επομένως, συνιστούμε να εξοικειωθείτε στη χρήση μόνο της ώρας UTC.

ActivityDateTime : 4/25/2023 3:18:30 PM
Activity         : ViewReport
UserId           : jordan@contoso.com
ArtifactName     : Gross Margin Analysis
WorkSpaceName    : Sales Analytics

CreationTime     : 4/25/2023 5:32:10 PM
Activity         : ShareReport
UserId           : ellis@contoso.com
ArtifactName     : Call Center Stats
WorkSpaceName    : Sales Analytics

CreationTime     : 4/25/2023 9:03:05 PM
Activity         : ViewReport
UserId           : morgan@contoso.com
ArtifactName     : Call Center Stats
WorkSpaceName    : Sales Analytics

Φιλοδώρημα

Μπορείτε να χρησιμοποιήσετε αυτή την τεχνική για να φιλτράρετε τα αποτελέσματα από οποιαδήποτε ιδιότητα στα αποτελέσματα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε ένα συγκεκριμένο συμβάν RequestId για να αναλύσετε μόνο ένα συγκεκριμένο συμβάν.

Παράδειγμα 6: Εξαγωγή όλων των δραστηριοτήτων για τις προηγούμενες N ημέρες

Ορισμένες φορές μπορεί να θέλετε να εξαγάγετε όλα τα δεδομένα δραστηριότητας σε ένα αρχείο, ώστε να μπορείτε να εργαστείτε με τα δεδομένα εκτός του PowerShell. Αυτό το παράδειγμα ανακτά όλες τις δραστηριότητες για όλους τους χρήστες για έως και 30 ημέρες. Εξάγει τα δεδομένα σε ένα αρχείο JSON ανά ημέρα.

Σημαντικό

Τα δεδομένα του αρχείου καταγραφής δραστηριότητας είναι διαθέσιμα για μέγιστο διάστημα 30 ημερών. Είναι σημαντικό να εξαγάγετε και να διατηρήσετε τα δεδομένα, ώστε να μπορείτε να κάνετε ανάλυση ιστορικού. Εάν δεν κάνετε αυτήν τη στιγμή εξαγωγή και αποθήκευση των δεδομένων αρχείου καταγραφής δραστηριότητας, συνιστούμε να ιεραρχήσετε αυτήν την ενέργεια.

Δείγμα αίτησης 6

Η δέσμη ενεργειών ανακτά όλες τις δραστηριότητες για μια σειρά ημερών. Δηλώνει τρεις μεταβλητές:

  • $NbrDaysDaysToExtract: Πόσες ημέρες ενδιαφέρεστε να εξαγάγετε. Εκτελεί έναν βρόχο, ο οποίος λειτουργεί προς τα πίσω από την προηγούμενη ημέρα. Η μέγιστη επιτρεπόμενη τιμή είναι 30 ημέρες (επειδή η παλαιότερη ημερομηνία που μπορείτε να ανακτήσετε είναι 30 ημέρες πριν από την τρέχουσα ημέρα).
  • $ExportFileLocation: Η διαδρομή φακέλου όπου θέλετε να αποθηκεύσετε τα αρχεία. Ο φάκελος πρέπει να υπάρχει πριν την εκτέλεση της δέσμης ενεργειών. Μην συμπεριλάβετε έναν χαρακτήρα ανάστροφης κάθετο (\) στο τέλος της διαδρομής φακέλου (επειδή προστίθεται αυτόματα κατά τον χρόνο εκτέλεσης). Συνιστούμε να χρησιμοποιήσετε έναν ξεχωριστό φάκελο για την αποθήκευση ανεπεξέργαστων αρχείων δεδομένων.
  • $ExportFileName: Το πρόθεμα για κάθε όνομα αρχείου. Επειδή αποθηκεύεται ένα αρχείο ανά ημέρα, η δέσμη ενεργειών προσθέτει ένα επίθημα για να υποδείξει τα δεδομένα που περιέχονται στο αρχείο και την ημερομηνία και ώρα ανάκτησης των δεδομένων. Για παράδειγμα, εάν εκτελέσατε μια δέσμη ενεργειών στις 9 π.μ. (UTC) στις 25 Απριλίου 2023 για την εξαγωγή δεδομένων δραστηριότητας για τις 23 Απριλίου 2023, το όνομα αρχείου θα ήταν: PBIActivityEvents-20230423-202304250900. Παρόλο που η δομή φακέλων όπου είναι αποθηκευμένη είναι χρήσιμη, κάθε όνομα αρχείου θα πρέπει να είναι πλήρως αυτονόητη.

Συνιστούμε να εξαγάγετε δεδομένα που είναι τουλάχιστον μία ημέρα πριν από την τρέχουσα ημέρα. Με αυτόν τον τρόπο, αποφεύγετε την ανάκτηση μερικών ημερήσιων συμβάντων και μπορείτε να είστε σίγουροι ότι κάθε αρχείο εξαγωγής περιέχει τα πλήρη δεδομένα των 24 ωρών.

Η δέσμη ενεργειών συγκεντρώνει έως και 30 ημέρες δεδομένων έως την προηγούμενη ημέρα. Τα χρονικά σημάνσεις για ελεγμένα συμβάντα είναι πάντα σε μορφή UTC. Συνιστούμε να δημιουργήσετε όλες τις διαδικασίες ελέγχου σας με βάση την ώρα UTC αντί της τοπικής ώρας σας.

Η δέσμη ενεργειών παράγει ένα αρχείο JSON ανά ημέρα. Το επίθημα του ονόματος αρχείου περιλαμβάνει τη χρονική σήμανση (σε μορφή UTC) των δεδομένων που έχουν εξαχθεί. Εάν κάνετε εξαγωγή της ίδιας ημέρας δεδομένων περισσότερες από μία φορές, το επίθημα στο όνομα αρχείου σάς βοηθά να αναγνωρίσετε το νεότερο αρχείο.

#Input values before running the script:
$NbrDaysDaysToExtract = 7
$ExportFileLocation = 'C:\Power-BI-Raw-Data\Activity-Log'
$ExportFileName = 'PBIActivityEvents'
#--------------------------------------------

#Start with yesterday for counting back to ensure full day results are obtained:
[datetime]$DayUTC = (([datetime]::Today.ToUniversalTime()).Date).AddDays(-1) 

#Suffix for file name so we know when it was written:
[string]$DateTimeFileWrittenUTCLabel = ([datetime]::Now.ToUniversalTime()).ToString("yyyyMMddHHmm")

#Loop through each of the days to be extracted (<Initilize> ; <Condition> ; <Repeat>)
For($LoopNbr=0 ; $LoopNbr -lt $NbrDaysDaysToExtract ; $LoopNbr++)
{
    [datetime]$DateToExtractUTC=$DayUTC.AddDays(-$LoopNbr).ToString("yyyy-MM-dd")

    [string]$DateToExtractLabel=$DateToExtractUTC.ToString("yyyy-MM-dd")
    
    #Create full file name:
    [string]$FullExportFileName = $ExportFileName `
    + '-' + ($DateToExtractLabel -replace '-', '') `
    + '-' + $DateTimeFileWrittenUTCLabel `
    + '.json' 

    #Obtain activity events and store intermediary results:
    [psobject]$Events=Get-PowerBIActivityEvent `
        -StartDateTime ($DateToExtractLabel+'T00:00:00.000') `
        -EndDateTime ($DateToExtractLabel+'T23:59:59.999')

    #Write one file per day:
    $Events | Out-File "$ExportFileLocation\$FullExportFileName"

    Write-Verbose "File written: $FullExportFileName" -Verbose 
}
Write-Verbose "Extract of Power BI activity events is complete." -Verbose

Υπάρχουν πολλά πλεονεκτήματα στη χρήση του cmdlet PowerShell Get-PowerBIActivityEvent αντί για τη λειτουργία REST API Λήψη συμβάντων δραστηριότητας.

  • Το cmdlet σάς επιτρέπει να ζητάτε μία ημέρα δραστηριότητας κάθε φορά που πραγματοποιείτε μια κλήση χρησιμοποιώντας το cmdlet. Ενώ όταν επικοινωνείτε απευθείας με το API, μπορείτε να ζητήσετε μόνο μία ώρα ανά αίτηση API.
  • Το cmdlet χειρίζεται τα διακριτικά συνέχειας για εσάς. Εάν χρησιμοποιείτε το API απευθείας, πρέπει να ελέγξετε το διακριτικό συνέχειας για να προσδιορίσετε αν θα προκύψουν άλλα αποτελέσματα. Ορισμένα API πρέπει να χρησιμοποιούν διακριτικά σελιδοποίησης και συνέχειας για λόγους απόδοσης όταν επιστρέφουν μεγάλο όγκο δεδομένων. Επιστρέφουν το πρώτο σύνολο εγγραφών και, στη συνέχεια, με ένα διακριτικό συνέχειας μπορείτε να κάνετε μια επακόλουθη κλήση API για να ανακτήσετε το επόμενο σύνολο εγγραφών. Συνεχίζετε να καλείτε το API μέχρι να μην επιστραφεί ένα διακριτικό συνέχειας. Η χρήση του διακριτικού συνέχειας είναι ένας τρόπος για να ενοποιήσετε πολλές αιτήσεις API, ώστε να μπορείτε να ενοποιήσετε ένα λογικό σύνολο αποτελεσμάτων. Για ένα παράδειγμα χρήσης ενός διακριτικού συνέχειας, ανατρέξτε στο θέμα REST API συμβάντων δραστηριότητας.
  • Το cmdlet χειρίζεται για εσάς το διακριτικό πρόσβασης του Αναγνωριστικού Microsoft Entra. Μετά τον έλεγχο ταυτότητας, το διακριτικό πρόσβασης λήγει μετά από μία ώρα (από προεπιλογή). Σε αυτή την περίπτωση, το cmdlet ζητά αυτόματα ένα διακριτικό ανανέωσης για εσάς. Εάν επικοινωνείτε απευθείας με το API, πρέπει να ζητήσετε ένα διακριτικό ανανέωσης.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Επιλογή API ή cmdlet του PowerShell.

Σημείωμα

Ένα δείγμα απόκρισης παραλείπεται επειδή είναι μια έξοδος παρόμοια με τις αποκρίσεις που εμφανίζονται στα προηγούμενα παραδείγματα.

Για περισσότερες πληροφορίες σχετικά με αυτό το άρθρο, ανατρέξτε στους παρακάτω πόρους: