Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Brug PowerShell til at opgøre planlagte prompter, som brugere opretter i din Microsoft Copilot-organisation. Disse instruktioner hjælper dig med at oprette forbindelse til en administratorkonto og effektivt få vist, vise eller slette planlagte prompter.
Forudsætninger
Hvis du vil gøre status over planlagte prompter, som brugere opretter i din organisation, skal du bruge følgende forudsætninger:
- Tildel rollen Power Platform Administrator til din bruger på Azure Portal for den lejer, hvor du vil udføre handlinger.
- Brug PowerShell v7.0 eller nyere.
- Installer modulerne
Az.AccountsogMicrosoft.PowerApps.Administration.PowerShell. For mere information, se Install-Module. - Gem og kør alle scripts i samme mappe.
Vigtigt!
Brug roller med færrest tilladelser. Konti med færre tilladelser er med til at forbedre sikkerheden i din organisation. Global administrator er en meget privilegeret rolle. Begræns brugen til nødsituationer, hvor du ikke kan bruge en eksisterende rolle. Du kan få flere oplysninger under Om administratorroller i Microsoft 365 Administration.
Hvis du vil have rollen som systemadministrator i Copilot-miljøet med planlagte prompter, skal du følge disse trin:
- Gå til Power Platform Administration.
- Vælg Microsoft 365-miljøet . Denne værdi er standardnavnet for Copilot-miljøet til planlagte prompter. Din lejer bruger muligvis et andet navn.
- Vælg Medlemskab.
- Hvis du vil føje rollen som systemadministrator til brugeren, skal du vælge Tilføj mig. Det kan tage omkring 30 minutter, før rollen afspejles overalt.
Du kan få mere at vide under Administrere administratorroller med høje rettigheder.
Opret forbindelse til din Azure-konto
Før du kører en af følgende PowerShell-kommandoer, skal du logge på din administratorkonto. Brug Connect-AzAccount-cmdletten til at logge på.
Generelle handlinger
Hvis du vil hente miljønavnet for planlagte Copilot-prompter, skal du bruge Get-AdminPowerAppEnvironment-cmdlet'en . Hvis du bliver bedt om det, skal du oprette forbindelse til administratorkontoen.
Get-AdminPowerAppEnvironment 'Microsoft 365'Angiv dit viste navn. Det viste navn er som standard .
Microsoft 365Du kan også bruge parameterenEnvironmentNametil at angive dit miljønavn.Du kan også identificere et bruger-id med følgende Microsoft Entra-cmdletter:
Connect-Entra Get-EntraUser -UserId 'user@domain.com'Brug det korrekte bruger-id, f.eks
user@domain.com. . BemærkIdværdien i outputtet, som angiver brugerens id.
Gem PowerShell-scripts
Følgende scripts hjælper dig med at opgøre planlagte prompter for Copilot. De angivne scriptnavne svarer til de scripts, der refereres til i resten af denne artikel. Gem og kør scriptene i den samme mappe.
Get-CopilotActions.ps1
Param(
[Parameter(Mandatory=$true)]
[string]$EnvironmentId,
[Parameter(Mandatory=$false)]
[string]$UserId
)
Begin {
$ErrorActionPreference = "Stop"
# Retrieve the environment URL using the environment ID
$environment = Get-AdminPowerAppEnvironment -EnvironmentName $EnvironmentId
if (-not $environment) {
throw "Environment with ID '$EnvironmentId' not found."
}
$environmentUrl = $environment.Internal.properties.linkedEnvironmentMetadata.instanceUrl
# Retrieve the access token
$secureToken = (Get-AzAccessToken -AsSecureString -ResourceUrl $environmentUrl).Token
$plainTextToken = ConvertFrom-SecureString -SecureString $secureToken -AsPlainText
$headers = @{
"Authorization" = "Bearer $plainTextToken"
"OData-MaxVersion" = "4.0"
"OData-Version" = "4.0"
"Accept" = "application/json"
"Content-Type" = "application/json; charset=utf-8"
"Prefer" = 'odata.include-annotations="*"'
}
}
Process {
# Convert UserId to systemuserid if UserId is provided
if ($UserId) {
$userQueryUri = "${environmentUrl}api/data/v9.1/systemusers?`$filter=azureactivedirectoryobjectid eq '$UserId'"
try {
Write-Verbose "Retrieving systemuserid for UserId $UserId from $userQueryUri"
$userResponse = Invoke-RestMethod -Uri $userQueryUri -Headers $headers -Method Get
if ($userResponse.value.Count -eq 0) {
throw "No system user found for UserId '$UserId'."
}
$systemUserId = $userResponse.value[0].systemuserid
Write-Verbose "Successfully retrieved systemuserid: $systemUserId"
}
catch {
Write-Error "Failed to retrieve systemuserid for UserId '$UserId': $_"
throw
}
$requestUri = "${environmentUrl}api/data/v9.1/crb73_copilotactions?`$filter=_createdby_value eq $systemUserId"
} else {
$requestUri = "${environmentUrl}api/data/v9.1/crb73_copilotactions"
}
try {
Write-Verbose "Retrieving Copilot Actions from $requestUri"
$response = Invoke-RestMethod -Uri $requestUri -Headers $headers -Method Get
$records = $response.value | ForEach-Object {
[PSCustomObject]@{
DataverseId = $_.crb73_copilotactionid
Name = $_.crb73_name
CreatedOn = $_.createdon
ModifiedOn = $_.modifiedon
BotType = $_.crb73_bottype
CreatedById = $_._createdby_value
CreatedByFullName = $_.'_createdby_value@OData.Community.Display.V1.FormattedValue'
Status = $_.crb73_status
EnvironmentId = $EnvironmentId
}
}
# Ensure $records is treated as an array
if ($null -ne $records) {
if ($records -isnot [System.Collections.IEnumerable]) {
$records = @($records)
}
} else {
$records = @()
}
Write-Verbose "Successfully retrieved $($records.Count) Copilot Actions"
$records | Write-Output
}
catch {
Write-Error "Failed to retrieve records from Dataverse: $_"
throw
}
}
Remove-CopilotActions.ps1
Param(
[Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)]
[string]$EnvironmentId,
[Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)]
[string]$DataverseId
)
Begin {
$ErrorActionPreference = "Stop"
$environmentInformation = @{}
}
Process {
# Retrieve the environment URL using the EnvironmentId
if (-not $environmentInformation.ContainsKey($EnvironmentId)) {
$environment = Get-AdminPowerAppEnvironment -EnvironmentName $EnvironmentId
if (-not $environment) {
Write-Error "Environment with ID '$EnvironmentId' not found."
return
}
$environmentUrl = $environment.Internal.properties.linkedEnvironmentMetadata.instanceUrl
# Retrieve and store the access token for the environment
$secureToken = (Get-AzAccessToken -AsSecureString -ResourceUrl $environmentUrl).Token
$plainTextToken = ConvertFrom-SecureString -SecureString $secureToken -AsPlainText
$environmentInformation[$EnvironmentId] = @{
Url = $environmentUrl
Token = $plainTextToken
}
}
$environmentUrl = $environmentInformation[$EnvironmentId].Url
$plainTextToken = $environmentInformation[$EnvironmentId].Token
$headers = @{
"Authorization" = "Bearer $plainTextToken"
"OData-MaxVersion" = "4.0"
"OData-Version" = "4.0"
"Accept" = "application/json"
"Content-Type" = "application/json; charset=utf-8"
}
# Construct the delete URI
$deleteUri = "${environmentUrl}api/data/v9.1/crb73_copilotactions($DataverseId)"
try {
Write-Verbose "Deleting Copilot Action with DataverseId: $DataverseId using URI: $deleteUri"
Invoke-RestMethod -Uri $deleteUri -Headers $headers -Method Delete
Write-Host "Successfully deleted Copilot Action with DataverseId: $DataverseId"
}
catch {
Write-Error "Failed to delete Copilot Action with DataverseId: $DataverseId. Error: $_"
}
}
Clear-CopilotActions.ps1
Param(
[Parameter(Mandatory=$true)]
[string]$EnvironmentId,
[Parameter(Mandatory=$true)]
[string]$UserId
)
Process {
# Retrieve and pipe Copilot Actions for the specified user into Remove-CopilotAction.ps1
Write-Verbose "Retrieving and deleting Copilot Actions for UserId: $UserId"
./Get-CopilotActions.ps1 -EnvironmentId $EnvironmentId -UserId $UserId | ./Remove-CopilotAction.ps1
}
Vis planlagte prompter til Copilot
Du kan køre et script på forskellige måder for at få vist planlagte prompter, du har oprettet i din lejer.
Få en liste over planlagte Copilot-prompter for hele lejeren
Brug cmdlet'en Get-AdminPowerAppEnvironment til at få .
EnvironmentIdDu kan finde flere oplysninger i Generelle handlinger.Kør scriptet,
Get-CopilotActions.ps1og angiv dinEnvironmentId. Hvis du bliver bedt om det, skal du logge på med administratorkontoen. Det kan f.eks. være:.\Get-CopilotActions.ps1 -EnvironmentId abc123-a100-xyz000-12345Konsoloutputtet viser listen over planlagte Copilot-prompter.
Få en liste over planlagte Copilot-prompter for en enkelt bruger
Brug cmdlet'erne Get-AdminPowerAppEnvironment og Get-EntraUser til at få
EnvironmentIdogUserId. Du kan finde flere oplysninger i Generelle handlinger.Kør scriptet
Get-CopilotActions.ps1med dinEnvironmentIdogUserId. Hvis du bliver bedt om det, skal du logge på med administratorkontoen. Det kan f.eks. være:.\Get-CopilotActions.ps1 -EnvironmentId abc123-a100-xyz000-12345 -UserId abc123-a100-xyz000-12345Konsoloutputtet viser listen over planlagte Copilot-prompter, der tilhører den angivne bruger.
Eksportér listen
Hvis du vil eksportere listen til en CSV-fil, skal du starte med en af de tidligere indstillinger for at få en liste. Rør derefter outputtet til Export-Csv-cmdlet'en . Det kan f.eks. være:
.\Get-CopilotActions.ps1 -EnvironmentId abc123-a100-xyz000-12345 | Export-Csv -Path C:\temp\resultFile.csv
Slet planlagte Copilot-prompter
Slet en enkelt planlagt Copilot-prompt
Brug en af de forrige indstillinger til at få en liste over planlagte prompter. I outputtet skal du notere den
DataverseIdplanlagte prompt, du vil slette.Brug cmdlet'en Get-AdminPowerAppEnvironment til at få .
EnvironmentIdDu kan finde flere oplysninger i Generelle handlinger.Kør scriptet
Remove-CopilotActions.ps1med de relevanteEnvironmentIdværdierDataverseId. Hvis du bliver bedt om det, skal du logge på med administratorkontoen. Det kan f.eks. være:.\Remove-CopilotAction.ps1 -EnvironmentId abc123-a100-xyz000-12345 -DataverseId abc123-a100-xyz000-12345
Slet flere planlagte Copilot-prompter fra en enkelt bruger
Hent værdierne
EnvironmentIdogUserIdsom beskrevet i Generelle handlinger.Kør scriptet
Clear-CopilotActions.ps1med de relevanteEnvironmentIdværdierUserId. Hvis du bliver bedt om det, skal du logge på med administratorkontoen. Det kan f.eks. være:.\Clear-CopilotActions.ps1 -EnvironmentId abc123-a100-xyz000-12345 -UserId abc123-a100-xyz000-12345