Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.AuthenticationPowerShell-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.CreateAgentIdentityBlueprint.Read.AllAgentIdentityBlueprint.ReadWrite.AllAgentIdentityBlueprint.AddRemoveCreds.AllAgentIdentityBlueprintPrincipal.CreateAgentIdentityBlueprintPrincipal.Read.AllAgentIdentityBlueprintPrincipal.ReadWrite.All |
| Agentidentität | AgentIdentity.Create.AllAgentIdentity.Read.AllAgentIdentity.ReadWrite.AllCustomSecAttributeAssignment.ReadWrite.AllCustomSecAttributeDefinition.Read.All |
| Registration | AgentRegistration.ReadWrite.AllAgentInstance.ReadWrite.All |
| Agent-Benutzer | AgentIdUser.ReadWrite.AllUser.ReadWrite.AllOrganization.Read.All |
| Gemeinsame Verzeichnissuche und Eigentum | Application.Read.AllApplication.ReadWrite.AllDirectory.Read.AllUser.Read.AllGroup.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- oderExistingId-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
SkippedDependencyund 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
SkippedDependencyoderFailedist.
Ü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: