Agent 365 Bulk Onboarding mit PowerShell

Nutzen Sie Agent 365 Bulk Onboarding, um den wiederholten Einrichtungsaufwand beim Onboarding mehrerer Agenten zu reduzieren. Definieren Sie Agentenidentitäten, Sponsoren, Eigentümer und Registrierungen in einer überprüfbaren CSV-Datei, validieren Sie deren Beziehungen vor der Bereitstellung und prüfen Sie die Ergebnisse in einem konsolidierten Bericht. Die Skripte validieren die vollständige Datei, berechnen die Abhängigkeitsreihenfolge und erstellen dann jedes Objekt mithilfe von Microsoft Graph.

Nutzen Sie diesen Workflow, nachdem Sie verstanden haben, wie man einen einzelnen Agenten mit der Agent 365 CLI onboardet. Wenn Sie mehrere Agenten gleichzeitig onboarden oder ein Tenant-Onboarding wiederholen müssen, definieren Sie die Objekte und ihre Beziehungen in einer CSV-Datei, anstatt den CLI-Onboarding-Workflow für jeden Agenten separat durchzuführen.

Dieser Artikel bietet die End-to-End-Anleitungen für das Bulk-Onboarding, von der Automatisierungs-Anwendungseinrichtung und CSV-Anforderungen bis hin zur Validierung, Ausführung und Fehlerbehebung.

Von Bedeutung

Die Massen-Onboarding-Skripte sind PowerShell-Automatisierung im Agent 365 DevTools-Repository. Sie sind getrennt von der a365 Kommandozeilen-Schnittstelle. Die in diesem Artikel beschriebene Automatisierungsanwendung ist ebenfalls getrennt von der interaktiven Client-Anwendung, die in Custom client app registration for Agent 365 CLI beschrieben wird.

Was der Workflow erzeugt

Jede CSV-Zeile repräsentiert ein Objekt. Die unterstützten Beziehungen sind:

Blueprint
  |
  +-- AgentIdentity
        |-- AgentUser
        +-- AgentRegistration
Object Purpose
Agentenidentitätsentwurf Wiederverwendbare Identität und Berechtigungsvorlage für einen oder mehrere Agenten.
Agentidentität Microsoft Entra-Identität, die von einem einzelnen Agenten verwendet wird.
Agent-Benutzer Optionales Microsoft Entra-Benutzerkonto für einen Agenten, der lizenzierte Microsoft 365-Ressourcen benötigt, wie zum Beispiel ein Postfach.
Agent-Registrierung Inventaraufzeichnung, die den Agenten in Agent 365-Administrationsoberflächen auffindbar macht.

Ein Agentennutzer und eine Agentenregistrierung sind unabhängige untergeordnete Elemente einer Agentenidentität. Ein Scheitern bei dem einen verhindert nicht, dass das andere versucht wird.

Von Bedeutung

Allein die Erstellung einer Agentenidentität erzeugt keinen Agent 365-Inventareintrag. Fügen Sie für jede Identität, die in Agent 365 Administrative Experiences erscheinen muss, eine AgentRegistration Zeile ein. Ein AgentUser ist optional und keine Voraussetzung für die Anmeldung.

Weitere Informationen zu diesen Objekten finden Sie unter Agent 365 identity.

Prerequisites

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein Tenant, in dem Microsoft Agent 365 verfügbar ist.
  • PowerShell 7 oder höher.
  • Verwenden Sie Git, um das DevTools-Repository zu klonen.
  • Das Microsoft.Graph.Authentication PowerShell-Modul hat die Version 2.x.
  • Ein Privileged Role Administrator oder höher ist für die einmalige Zustimmung zur Automatisierungs-Anwendungsberechtigung erforderlich.
  • Ein Sponsor für jeden neuen Bauplan und jede neue Agentenidentität.
  • Inhaber, Manager und Registrierungsinhaber, die bereits in Microsoft Entra ID existieren.
  • Eine verifizierte Tenant-Domain für den User Principal Name (UPN) jedes neuen Agenten.
  • Eine geeignete Lizenz und einen zweibuchstabigen Nutzungsstandort, falls die CSV einem Agentennutzer eine Lizenz zuweist.

Agentennutzer stehen nur Mandanten zur Verfügung, die am Frontier-Vorschauprogramm teilnehmen.

Installieren Sie das erforderliche Microsoft Graph-Modul:

Install-Module Microsoft.Graph.Authentication -Scope CurrentUser

Hol dir die Skripte

Klone das Agent 365 DevTools-Repository und wechsle dann zum Massenregistrierungsverzeichnis:

git clone https://github.com/microsoft/Agent365-devTools.git
Set-Location .\Agent365-devTools\scripts\bulk-agent-registration

Behalte die Skripte in diesem Verzeichnis zusammen. A365-BulkOnboarding.ps1 ruft A365-AutomationOrchestrator.ps1 auf, das die objektspezifischen Provisioning-Skripte aufruft.

Authentifizierung konfigurieren

Bulk-Onboarding kann unbeaufsichtigt durchgeführt werden, indem eine tenant-eigene Automatisierungsanwendung oder eine systemzugewiesene verwaltete Identität verwendet wird. Es kann auch interaktiv mit delegierter Authentifizierung ausgeführt werden.

Schließen Sie die Anwendungseinrichtung, die Berechtigungszustimmung und die Authentifizierungskonfiguration vor dem ersten Batch ab. Für jede weitere Charge bereiten Sie das CSV vor, validieren Sie den Plan, führen Sie das Onboarding durch und überprüfen Sie die Ergebnisse.

App-only-Runs verwenden Anwendungsrollen, die dem Service-Principal der Automatisierungsanwendung oder der verwalteten Identität zugewiesen wurden – nicht die Administratorrolle des Betreibers.

Erlaubnisse für die Runner-Identität sind getrennt von der GrantAdminConsent CSV-Einstellung, die die Zustimmung für von einem Blueprint oder einer Agentenidentität deklarierte Berechtigungen anfordert. Überprüfen Sie alle offenen Einwilligungsmaßnahmen im Run-Report.

Von Bedeutung

Verwenden Sie nicht die Microsoft-verwaltete Agent 365 CLI-Anwendung (f54280f4-395e-4ea8-9e48-bf2d4952aa14) für diesen Workflow. Diese Anwendung dient der interaktiven CLI-Authentifizierung und darf nicht verändert werden.

Bulk-Onboarding unterstützt diese Runner-Authentifizierungsmethoden:

Methode Parameters Empfohlene Verwendung
Geheimer Clientschlüssel -TenantId -ClientId -ClientSecret Tests oder kurzlebige Automatisierung
Certificate -TenantId, -ClientId, und genau einer von -CertificateThumbprint, -Certificate, oder -CertificatePath Automatisierung der unbeaufsichtigten Produktion
Vom System zugewiesene verwaltete Identität -TenantId -UseManagedIdentity Auf einer Azure-Ressource gehostete Automatisierung
Interaktives delegiertes Anmelden -TenantId -Interactive; außerdem -ClientId für einen Batch einschließen, der AgentUser-Zeilen enthält Betreibergesteuertes Onboarding

Föderierte Identitätsanmeldeinformationen und die Auswahl benutzerseitig zugewiesener verwalteter Identitäten werden nicht als Runner-Authentifizierungsmethoden unterstützt.

Erstellen Sie die Automatisierungsanwendung

Melden Sie sich interaktiv als Global Administrator oder Privileged Role Administrator an und erstellen Sie eine Automatisierungsanwendung für alle unterstützten Objekttypen. Erstellen Sie die Anwendung ohne Client-Geheimnis oder Zertifikat, damit Sie ihre Zugangsdaten separat im Microsoft Entra Admin Center hinzufügen und verwalten können:

.\New-A365AutomationApp.ps1 `
    -TenantId <tenant-id> `
    -Interactive `
    -DisplayName 'A365 Provisioning Automation' `
    -Scenario All `
    -SkipGrant

Das Skript erstellt oder verwendet die Anwendung und den Dienstprinzipal und deklariert die erforderlichen Microsoft Graph-Anwendungsberechtigungen und delegierten Scopes. Die Warnung, dass keine Zugangsdaten hinzugefügt wurden, ist zu erwarten; die Anwendung kann sich erst authentifizieren, wenn du ein Client-Geheimnis oder Zertifikat hinzugefügt hast. Weil der Befehl -SkipGrant verwendet, erteilt er keine Administratorzustimmung.

Nachdem der Befehl abgeschlossen ist, bitte einen Administrator, die vom Skript ausgedruckte Portal-URL zu öffnen. Im Microsoft Entra Admin Center wählen Sie Administratorzustimmung erteilen für die deklarierten Berechtigungen. Beginnen Sie erst mit dem Bulk-Onboarding, wenn die Administratorzustimmung abgeschlossen ist. Du kannst das Skript erneut ausführen, um die Anwendung mit den fehlenden Berechtigungserklärungen abzugleichen.

Notieren Sie die Anwendungs-(Client-)ID der Automatisierungsanwendung. Verwenden Sie nicht deren Service Principal Object ID, wenn in einem Befehl die Objekt-ID -ClientId angefordert wird.

Überprüfen Sie die Anwendungsberechtigungen

-Scenario All deklariert die Union dieser Microsoft Graph-Anwendungsberechtigungen:

Capability Anwendungsberechtigungen
Bauplan AgentIdentityBlueprint.Create
AgentIdentityBlueprint.Read.All
AgentIdentityBlueprint.ReadWrite.All
AgentIdentityBlueprint.AddRemoveCreds.All
AgentIdentityBlueprintPrincipal.Create
AgentIdentityBlueprintPrincipal.Read.All
AgentIdentityBlueprintPrincipal.ReadWrite.All
Agentidentität AgentIdentity.Create.All
AgentIdentity.Read.All
AgentIdentity.ReadWrite.All
CustomSecAttributeAssignment.ReadWrite.All
CustomSecAttributeDefinition.Read.All
Registration AgentRegistration.ReadWrite.All
AgentInstance.ReadWrite.All
Agent-Benutzer AgentIdUser.ReadWrite.All
User.ReadWrite.All
Organization.Read.All
Gemeinsame Verzeichnissuche und Eigentum Application.Read.All
Application.ReadWrite.All
Directory.Read.All
User.Read.All
Group.Read.All

Die AgentIdentity, Registration, All und AgentUser Szenarien deklarieren außerdem delegierte Scopes für ihre ausgewählten interaktiven Operationen. Registrierungsbereiche werden standardmäßig deklariert und können unterdrückt werden. Ein unbeaufsichtigter Lauf, bei dem Auth=Same verwendet wird, verlässt sich auf die Anwendungsberechtigungen in der vorherigen Tabelle.

Authentifizierungseingaben konfigurieren

Definiere eine Authentifizierungs-Hashtabelle und verwende sie zur Validierung und Ausführung wieder.

Geheimer Clientschlüssel

Im Microsoft Entra Admin Center gehen Sie zu Identity>Applications>App-Registrierungen, und wählen Sie die Automatisierungsanwendung aus. Wählen Sie Zertifikate & Geheimnisse>>Neuer geheimer Clientschlüssel, geben Sie eine Beschreibung und ein Ablaufdatum ein, und wählen Sie dann Hinzufügen. Kopiere den geheimen Wert sofort und speichere ihn sicher; er wird nach dem Verlassen der Seite nicht wieder angezeigt. Weitere Informationen finden Sie unter Hinzufügen von Zugangsdaten zu Ihrer Anwendung.

Lesen Sie das Client-Geheimnis als SecureString Umgebungsvariable ein, anstatt es direkt in die Befehlszeile zu legen:

$clientSecret = Read-Host -Prompt 'Automation application client secret' -AsSecureString
$authParameters = @{
    TenantId = '<tenant-id>'
    ClientId = '<automation-app-client-id>'
    ClientSecret = $clientSecret
}

Geheime Clientschlüssel sind weniger sicher als Zertifikate und sollten auf Tests oder kurzfristige Automatisierungen beschränkt sein. Für unbeaufsichtigte Produktionsautomatisierung verwenden Sie ein Zertifikat oder eine systemzugewiesene verwaltete Identität.

Certificate

Für Produktionsautomatisierung holen Sie sich ein Zertifikat von der Zertifizierungsstelle Ihrer Organisation ein. Für Testumgebungen siehe Erstellen eines selbstsignierten öffentlichen Zertifikats zur Authentifizierung Ihrer Anwendung. Auf der Seite Zertifikate & Geheimnisse der Automatisierungsanwendung wählen Sie Zertifikate> und dann Zertifikat hochladen, laden Sie die öffentliche .cer, .pem oder .crt Datei hoch und wählen Sie dann Hinzufügen. Der Runner benötigt Zugriff auf den privaten Schlüssel; die Automatisierungsanwendung speichert nur das öffentliche Zertifikat. Weitere Informationen zur zertifikatbasierten App-Only-Authentifizierung finden Sie unter Verwenden Sie die App-Only-Authentifizierung mit dem Microsoft Graph PowerShell SDK.

Verwenden Sie den Fingerabdruck des Zertifikats, das den privaten Schlüssel enthält:

$authParameters = @{
    TenantId = '<tenant-id>'
    ClientId = '<automation-app-client-id>'
    CertificateThumbprint = '<certificate-thumbprint>'
}

Für einen Batch, der AgentUser-Zeilen enthalten kann, installieren Sie das Zertifikat in Cert:\CurrentUser\My. Um ein Zertifikat ausgehend von Cert:\LocalMachine\My über alle Objekttypen hinweg zu verwenden, geben Sie es als Zertifikatsobjekt an, anstatt seinen Fingerabdruck zu verwenden.

Alternativ stellen Sie das Zertifikat als X509Certificate2 Objekt bereit:

$authParameters = @{
    TenantId = '<tenant-id>'
    ClientId = '<automation-app-client-id>'
    Certificate = Get-Item 'Cert:\CurrentUser\My\<certificate-thumbprint>'
}

Oder laden Sie den privaten Schlüssel aus einer passwortgeschützten PFX-Datei:

$pfxPassword = Read-Host -Prompt 'PFX password' -AsSecureString
$authParameters = @{
    TenantId = '<tenant-id>'
    ClientId = '<automation-app-client-id>'
    CertificatePath = 'C:\secure\a365-automation.pfx'
    CertificatePassword = $pfxPassword
}

Geben Sie nur eine Zertifikatsquelle an. -CertificatePassword gilt nur mit -CertificatePath.

Vom System zugewiesene verwaltete Identität

Aktivieren Sie eine systemzugewiesene verwaltete Identität auf der Azure-Ressource, die die Skripte ausführt. Erteile die erforderlichen Microsoft Graph-Anwendungsberechtigungen aus der vorherigen Tabelle direkt dem Service-Principal der verwalteten Identität. Für Anweisungen siehe API-Berechtigungen gewähren und widerrufen für verwaltete Identitäten.

$authParameters = @{
    TenantId = '<tenant-id>'
    UseManagedIdentity = $true
}

Nehmen Sie UseManagedIdentity nicht mit ClientId auf. Die Skripte verwenden die systemseitig zugewiesene Identität des Hosts und unterstützen nicht die Auswahl einer benutzerseitig zugewiesenen Identität.

Interaktive delegierte Anmeldung

Verwenden Sie eine aufrufgesteuerte Anwendungs-Client-ID, sodass dasselbe Beispiel auch CSV-Dateien unterstützt, die AgentUser-Zeilen enthalten:

$authParameters = @{
    TenantId = '<tenant-id>'
    ClientId = '<automation-app-client-id>'
    Interactive = $true
}

Wenn Sie ClientId angeben, basiert die interaktive Autorisierung auf den genehmigten delegierten Scopes dieser Anwendung und den Verzeichnisrollen des angemeldeten Benutzers. New-A365AutomationApp.ps1 -Scenario All deklariert die delegierten Bereiche und aktiviert Public-Client-Flows. Folgen Sie der vom Setup-Skript gedruckten Administrator-Einwilligungs-URL vor dem ersten interaktiven Lauf. Wenn ein Batch keine AgentUser-Zeilen enthält, kannst du ClientId weglassen; dann verwenden die Skripte den Microsoft Graph PowerShell-Client und dessen genehmigte Scopes. AgentUser-Operationen erfordern eine geeignete Rolle, wie zum Beispiel Agent ID Administrator. Für Hintergrundinformationen siehe Verwenden von Microsoft Graph PowerShell-Authentifizierungsbefehlen.

Note

Die mandanteneigene Automatisierungsanwendung kann sowohl die Nur-App-Authentifizierung per Zertifikat oder Clientgeheimnis als auch die interaktive delegierte Anmeldung unterstützen. Die reine App-Autorisierung verwendet Anwendungsrollen. Die interaktive Autorisierung verwendet delegierte Scopes und die Verzeichnisrollen des angemeldeten Benutzers. Eine verwaltete Identität verwendet stattdessen den eigenen Service-Principal der Azure-Ressource.

Vorbereiten der CSV-Datei

Beginnen Sie mit sample-bulk-onboarding.csv. Behalten Sie jede Kopfzeile in der Stichprobe, selbst wenn eine Spalte nicht auf eine Zeile zutrifft. Lassen Sie nicht anwendbare Werte leer.

Das Beispiel enthält repräsentative Zeilen für jeden unterstützten Objekttyp. Ersetzen Sie die Beispieldomänen, Identitäten, Eigentümer, Sponsoren, Manager und Lizenzwerte durch Werte Ihres Tenants.

Definieren von Beziehungen

Die ersten vier Spalten definieren den Objektgraphen:

Spalte Description
ObjectType Blueprint, AgentIdentity, AgentUser, oder AgentRegistration.
Key Ein kleinschreibungsunsensibler Name, der die Zeile innerhalb der CSV eindeutig identifiziert. Es wird nicht zur Microsoft Entra-Objekt-ID.
ParentKey Das Key der übergeordneten Zeile. Agentenidentitäten beziehen sich auf einen Blueprint. Agentenbenutzer und Registrierungen beziehen sich auf eine Agentenidentität. Für einen Bauplan leer lassen.
ExistingId Verweist auf eine bestehende Blueprint-Anwendungs-ID oder eine Agenten-Identitätsobjekt-ID. Eine Zeile mit diesem Wert ist ein unveränderter Anker für Kindzeilen. Es wird nur für Blueprint und AgentIdentity unterstützt; ParentKey und jede objektsetzende Spalte müssen in dieser Zeile leer sein.

Um Agentenidentitäten unter einem bestehenden Blueprint zu erstellen, fügen Sie eine Blueprint Ankerzeile hinzu, deren ExistingId die Blueprint-Anwendungs-ID ist. Geben Sie jeder neuen AgentIdentity Zeile ein ParentKey, das mit dem Key der Ankerzeile übereinstimmt.

Werte für jeden Objekttyp festlegen

Columns Gilt für: Requirements
DisplayName Alle Objekttypen Erforderlich für neue Baupläne, Agentenidentitäten und Registrierungen.
Description Blueprint, AgentRegistration Optionale Beschreibung.
Sponsor Blueprint, AgentIdentity Erforderlich für die Erstellung. Verwenden Sie eine UPN, E-Mail-Adresse, einen Anzeigenamen oder eine Objekt-ID. Trenne mehrere Werte mit Semikolon.
Owner Blueprint, AgentIdentity, AgentRegistration Verwenden Sie eine UPN, E-Mail-Adresse, einen Anzeigenamen oder eine Objekt-ID. Trenne mehrere Werte mit Semikolon. Blueprint- und Identitätsinhaber können Nutzer oder Service-Principals sein. Besitzer der Registrierung müssen Benutzer sein und sind für die reine App-Registrierung erforderlich.
RequireOwnerAssignment Blueprint, AgentIdentity Auf true setzen, um die Zeile fehlschlagen zu lassen, wenn kein Besitzer zugewiesen werden kann.
RequiredPermissionJson, GrantAdminConsent Blueprint, AgentIdentity API-Berechtigungen deklarieren und optional Zustimmung gewähren.
SkipInheritablePermissions, NewClientSecret, KeyVaultName, KeyVaultSecretName, , ManagedIdentityPrincipalId Blueprint Konfiguriere Blueprint-Berechtigungen und Zugangsdaten.
Tag, CustomSecurityAttributeJson, SkipCustomSecurityAttributeValidation AgentIdentity Trennen Sie Tags mit Semikolons. Benutzerdefinierte Sicherheitsattribute erfordern die entsprechenden Graph-Berechtigungen und Verzeichnis-Rollen.
PrincipalName, MailNickname AgentUser PrincipalName ist erforderlich und muss eine verifizierte Tenant-Domain verwenden.
ManagerUserId, ManagerUpn AgentUser Verwende ein Managerfeld, nicht beide Felder.
AssignLicense, UsageLocation, LicenseSkuId, LicenseSkuPartNumber AgentUser Wenn AssignLicensetrue ist, geben Sie einen zweibuchstabigen Nutzungsstandort und ein Lizenz-SKU-Feld an.
OwnerId, Auth AgentRegistration OwnerId akzeptiert eine Benutzerobjekt-ID. Auth akzeptiert Interactive oder Same; verwenden Sie Same für unbeaufsichtigtes App-Only-Onboarding.
ParameterJson Alle Objekttypen Optionales JSON-Objekt für die in die Zulassungsliste aufgenommenen erweiterten Parameter des Skripts. Vollständige Parameternamen sind erforderlich. Authentifizierungs-, Mandanten-, Aktions-, übergeordnete, Ausgabe- und Protokollierungsparameter werden abgelehnt.

Von Bedeutung

Ein Wert in einer Spalte, der nicht auf den ObjectType der Zeile zutrifft, ist ein Fehler. Der Validator ignoriert fehlplatzierte Werte nicht stillschweigend.

Validiere den Onboarding-Plan

Bevor Sie Tenant-Objekte erstellen, verarbeiten Sie die vollständige CSV mit -WhatIf:

.\A365-BulkOnboarding.ps1 `
    -CsvPath .\sample-bulk-onboarding.csv `
    @authParameters `
    -WhatIf

Das Skript validiert die gesamte CSV, bevor es eine Microsoft Graph-Anfrage stellt. Es meldet alle erkannten strukturellen Fehler zusammen, darunter:

  • Fehlende oder unbekannte Header.
  • Fehlende erforderliche Werte.
  • Doppelte Schlüssel.
  • Nicht unterstützte Objekttypen.
  • Ungültige GUID-, UPN-, Boolean- oder JSON-Werte.
  • Ungültige ParentKey- oder ExistingId-Kombinationen.
  • Ein übergeordnetes Objekt des falschen Typs.
  • Abhängigkeitszyklen.
  • Werte in Spalten, die nicht auf den Objekttyp der Zeile zutreffen.

Wenn die Validierung erfolgreich ist, druckt der Befehl den Abhängigkeitsplan. Bei -WhatIf sendet das Skript keine Onboarding-Zeile an Microsoft Graph.

Eine erfolgreiche Validierung bestätigt, dass die CSV die strukturellen Überprüfungen besteht. Es bestätigt nicht, dass Tenant-Objekte aufgelöst werden können oder dass die Anwendung die nötigen Berechtigungen zur Erstellung dieser Objekte hat.

Note

Für die interaktive Authentifizierung erfordert eine CSV, die eine Zeile AgentUser enthält, die vom Anrufer gesteuerte Anwendung ClientId, die im vorherigen Beispiel gezeigt wird. Der angemeldete Nutzer muss außerdem die erforderliche delegierte Einwilligung und Verzeichnisrolle besitzen.

Massen-Onboarding ausführen

Wenn der -WhatIf Plan korrekt aussieht, führen Sie das Onboarding durch und speichern Sie die Protokolle und den aggregierten Bericht:

.\A365-BulkOnboarding.ps1 `
    -CsvPath .\sample-bulk-onboarding.csv `
    @authParameters `
    -LogPath .\logs `
    -OutputJsonPath .\bulk-onboarding-result.json

Das Skript verarbeitet die Eltern vor ihren Kindern und bewahrt dabei die CSV-Reihenfolge zwischen nicht verwandten Zeilen. Wenn eine Zeile fehlschlägt:

  • Das Skript markiert seine untergeordneten Elemente als SkippedDependency und sendet sie nicht an Microsoft Graph.
  • Unabhängige Abhängigkeitsbäume werden fortgesetzt.
  • Der Befehl schreibt die Konsolenzusammenfassung und den aggregierten Bericht, bevor er beendet wird.
  • Der Befehl gibt einen von null verschiedenen Ausgangscode zurück, wenn eine Zeile SkippedDependency oder Failed ist.

Überprüfen der Ergebnisse

Die Status der letzten Zeile lauten:

Status Dies bedeutet
Existing Die Zeile bezieht sich auf eine bestehende Blueprint- oder Agentenidentität und wurde nicht geändert.
Succeeded Das Objekt wurde erfolgreich erstellt.
Failed Das Skript versuchte, die Zeile zu verarbeiten, konnte sie aber nicht erfolgreich abschließen.
SkippedDependency Das Skript hat die Zeile nicht verarbeitet, weil sein Elternteil keine nutzbare ID erzeugt hat.

Der Parameter -OutputJsonPath erzeugt einen A365BulkProvisioningRunReport für den gesamten Durchlauf. Überprüfen Sie den Bericht für:

  • Der Status und die aufgelöste ID für jede Zeile.
  • Fehlgeschlagene Schritte und Fehlerdetails.
  • Ausstehende Zustimmungsaktionen des Administrators.
  • Erstellte Blueprint-, Identitäts-, Benutzer- und Registrierungskennungen.

Logs vom Bulk-Skript, Orchestrator und Child Scripts teilen sich eine Korrelations-ID, wenn sie dieselbe -LogPathverwenden.

Der Bericht lässt Blueprint-Client-Geheimnisse weg, es sei denn, Sie verwenden -IncludeBlueprintSecretsInOutputexplizit . Der Bericht enthält niemals Authentifizierungseingaben, Zugriffstoken oder Zertifikatspasswörter.

Warning

Aktiviere keine geheime Ausgabe oder geheime Protokollierung in der regulären Automatisierung. Wenn Zugangsdaten in einem Konsolentranskript, Protokoll, Bericht, Ticket, Chat oder Screenshot erscheinen, erneuern Sie sie sofort.

Onboarding überprüfen

Nach dem Lauf:

  • Überprüfen Sie den Status jeder Zeile und die resultierende Objekt-ID.
  • Überprüfen Sie, ob die erwarteten Registrierungen in der Verwaltung von Agent 365 angezeigt werden.
  • Überprüfe die zugewiesenen Sponsoren und Besitzer.
  • Wenn du Agentenbenutzer oder Lizenzen angefordert hast, verifiziere diese Zuweisungen.
  • Überprüfen und führen Sie ausstehende Aktionen zur Administratorzustimmung aus.

Nach einem unvollständigen Lauf wiederherstellen

Warning

Bevor Sie es erneut versuchen, prüfen Sie den Bericht und die Mandantenobjekte, um festzustellen, was bereits vorhanden ist. Gehe nicht davon aus, dass abgeschlossene Arbeit rückgängig gemacht wurde oder dass das erneute Durchführen der gesamten CSV Duplikate vermeidet.

Du kannst bestehende Baupläne und Agentenidentitäten über ExistingId Ankerzeilen referenzieren. Diese Option wird für Agent-User- oder Registrierungszeilen nicht unterstützt.

Korrigieren Sie den Fehlschlag und bereiten Sie einen überprüften Retry-Batch basierend auf dem beobachteten Tenant-Zustand vor, anstatt erfolgreiche Zeilen blind zu wiederholen.

Troubleshooting

Verwenden Sie die folgende Tabelle, um häufige Onboarding-Probleme zu lösen.

Symptom Resolution
Die Einrichtung der Automatisierungsanwendung liefert einen Autorisierungsfehler. Melden Sie sich als globaler Administrator oder Administrator für privilegierte Rollen an. Die Gewährung von Microsoft Graph-Anwendungsberechtigungen erfordert die Zustimmung des Administrators.
Eine Bereitstellungszeile gibt HTTP 403 zurück. Bestätigen Sie, dass Sie die Automatisierungsanwendung mit -Scenario All erstellt, deren Anwendungsrollen zugewiesen und nach der Zustimmung ein neues Token erhalten haben.
Eine Agent-Benutzerzeile wird vor der Ausführung abgelehnt. Verwenden Sie die Nur-App-Authentifizierung. Bestätigen Sie, dass die UPN eine verifizierte Domain verwendet. Wenn eine Lizenz zugewiesen wird, geben Sie UsageLocation und entweder LicenseSkuId oder LicenseSkuPartNumber an.
Ein Eigentümer, Sponsor oder Manager kann nicht ermittelt werden. Verwenden Sie eine eindeutige UPN, E-Mail-Adresse oder Objekt-ID. Registrierungsinhaber müssen Benutzern zugeordnet werden.
Eine untergeordnete Zeile ist SkippedDependency. Beheben Sie die fehlerhafte oder ungelöste übergeordnete Zeile. Das untergeordnete Element wurde nicht an Microsoft Graph gesendet.
Eine Identität existiert in Microsoft Entra, ist aber in der Agent-365-Administration nicht sichtbar. Füge eine Zeile AgentRegistration für die Identität hinzu. Allein die Erstellung einer Identität erzeugt nicht den Agent 365 Inventareintrag.
Der CSV-Validator meldet einen Wert in einer nicht unterstützten Spalte. Verschieben Sie den Wert in eine Spalte, die von dieser ObjectTypeunterstützt wird, oder lassen Sie die Zelle leer.
Die benutzerdefinierte Sicherheitsattributzuweisung gibt HTTP 403 zurück. Die Automatisierungsanwendung benötigt CustomSecAttributeAssignment.ReadWrite.All und CustomSecAttributeDefinition.Read.All. Interaktive Zuweisung erfordert außerdem, dass der angemeldete Benutzer die Rolle des Attributzuweisungsadministrators innehat.

Allgemeine Produkt- und CLI-Probleme finden Sie im Agent 365 Troubleshooting-Leitfaden. Um ein Problem mit diesen Skripten zu melden, verwende Agent 365 DevTools Issues.

Nächste Schritte

Nach der Einarbeitung Ihrer Agenten: