Namespace: microsoft.graph
Restaurar um objeto de diretório excluído recentemente de itens excluídos. Os seguintes tipos são suportados:
Se um item for excluído acidentalmente, você poderá restaurá-lo totalmente. Além disso, restaurar um aplicativo não restaura automaticamente a entidade de serviço associada. Você deve chamar essa API para restaurar explicitamente a entidade de serviço excluída.
Um item excluído recentemente permanece disponível por até 30 dias. Após 30 dias, esse item será excluído permanentemente.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global |
Governo dos EUA L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
A tabela a seguir mostra a permissão ou permissões menos privilegiadas necessárias para chamar essa API em cada tipo de recurso com suporte. Siga as práticas recomendadas para solicitar permissões com privilégios mínimos. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
| Recurso com suporte |
Delegada (conta corporativa ou de estudante) |
Delegada (conta pessoal da Microsoft) |
Application |
|
administrativeUnit |
AdministrativeUnit.ReadWrite.All |
Sem suporte. |
AdministrativeUnit.ReadWrite.All |
|
application |
Application.ReadWrite.All |
Sem suporte. |
Application.ReadWrite.OwnedBy |
|
agentIdentity |
AgentIdentity.DeleteRestore.All |
Sem suporte. |
AgentIdentity.DeleteRestore.All |
|
agentIdentityBlueprint |
AgentIdentityBlueprint.DeleteRestore.All |
Sem suporte. |
AgentIdentityBlueprint.DeleteRestore.All |
|
agentIdentityBlueprintPrincipal |
AgentIdentityBlueprintPrincipal.DeleteRestore.All |
Sem suporte. |
AgentIdentityBlueprintPrincipal.DeleteRestore.All |
|
agentUser |
AgentIdUser.ReadWrite.IdentityParentedBy |
Sem suporte. |
AgentIdUser.ReadWrite.IdentityParentedBy |
|
certificateBasedAuthPki |
PublicKeyInfrastructure.Read.All |
Sem suporte. |
PublicKeyInfrastructure.Read.All |
|
certificateAuthorityDetail |
PublicKeyInfrastructure.Read.All |
Sem suporte. |
PublicKeyInfrastructure.Read.All |
|
grupo |
Group.ReadWrite.All |
Sem suporte. |
Group.ReadWrite.All |
|
servicePrincipal |
Application.ReadWrite.All |
Sem suporte. |
Application.ReadWrite.OwnedBy |
|
user |
User.DeleteRestore.All |
Sem suporte. |
User.DeleteRestore.All |
Importante
Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. Esta operação dá suporte às seguintes funções internas, que fornecem apenas o menor privilégio necessário:
- Identidades do agente, blueprints de identidade do agente e entidades de segurança do blueprint de identidade do agente: ID do agente Administrador
- Unidades administrativas: Leitores de Diretório (somente leitura), Leitores Globais (somente leitura), Administrador de Função Privilegiada
- Aplicativos: Administrador de Identidade Híbrida, Administrador de Aplicativos de Nuvem, Administrador de Aplicativos
- Perfis de usuário externo: Leitor Global (somente leitura), Administrador do Skype for Business, Administrador do Teams
- Grupos: Administrador de Grupos (exceto para grupos atribuíveis a funções), Administrador de Usuários (exceto para grupos com atribuições de funções), Administrador de Funções com Privilégios Especiais (função com privilégios mínimos para grupos com atribuições de funções)
- Perfis de usuários externos pendentes: Leitor Global (somente leitura), Administrador do Skype for Business, Administrador do Teams
- Entidades de serviço: Administrador de Identidade Híbrida, Administrador de Aplicativos de Nuvem, Administrador de Aplicativos
- Usuários: Administrador de autenticação, Administrador de autenticação privilegiada, Administrador de usuários. No entanto, para restaurar usuários com funções de administrador privilegiado:
- Em cenários delegados, o aplicativo deve receber a permissão delegada Directory.AccessAsUser.All , e o usuário que está chamando também deve receber uma função de administrador privilegiado superior, conforme indicado em Quem pode realizar ações confidenciais?.
- Em cenários somente de aplicativo e além de receber a permissão de aplicativo User.ReadWrite.All , o aplicativo deve receber uma função de administrador privilegiado superior, conforme indicado em Quem pode executar ações confidenciais?.
Solicitação HTTP
POST /directory/deletedItems/{id}/restore
| Nome |
Descrição |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-type |
application/json |
Corpo da solicitação
No corpo da solicitação, forneça uma representação JSON dos parâmetros.
A tabela a seguir lista os parâmetros necessários quando você chama essa ação.
| Parâmetro |
Tipo |
Descrição |
| autoReconcileProxyConflict |
Booliano |
Parâmetro opcional. Indica se o Microsoft Entra ID deve remover quaisquer endereços de proxy conflitantes enquanto restaura um usuário excluído temporariamente cujo um ou mais endereços de proxy são usados atualmente para um usuário ativo. Usado somente para restaurar o usuário excluído temporariamente. O valor padrão para este parâmetro é false. |
| novoNome_PrincipalDoUsuário |
Cadeia de caracteres |
O novo userPrincipalName a ser adicionado ao usuário restaurado. Opcional. |
Resposta
Se bem-sucedido, este método retorna um código de resposta 200 OK e um objeto directoryObject no corpo da resposta.
Exemplos
Exemplo 1: Restaurar um objeto de diretório excluído
Solicitação
POST https://graph.microsoft.com/v1.0/directory/deletedItems/46cc6179-19d0-473e-97ad-6ff84347bbbb/restore
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.DeletedItems["{directoryObject-id}"].Restore.PostAsync();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
restore, err := graphClient.Directory().DeletedItems().ByDirectoryObjectId("directoryObject-id").Restore().Post(context.Background(), nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post()->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post()
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects/$entity",
"@odata.type":"#microsoft.graph.group",
"id":"46cc6179-19d0-473e-97ad-6ff84347bbbb",
"displayName":"SampleGroup",
"groupTypes":["Unified"],
"mail":"example@contoso.com",
"mailEnabled":true,
"mailNickname":"Example",
"securityEnabled":false,
"visibility":"Public"
}
Exemplo 2: Restaurar um usuário excluído e remover endereços proxy conflitantes
Solicitação
POST https://graph.microsoft.com/v1.0/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore
Content-Type: application/json
{
"autoReconcileProxyConflict": true
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.DirectoryNamespace.DeletedItems.Item.Restore;
var requestBody = new RestorePostRequestBody
{
AdditionalData = new Dictionary<string, object>
{
{
"autoReconcileProxyConflict" , true
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.DeletedItems["{directoryObject-id}"].Restore.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphdirectory "github.com/microsoftgraph/msgraph-sdk-go/directory"
//other-imports
)
requestBody := graphdirectory.NewRestorePostRequestBody()
additionalData := map[string]interface{}{
autoReconcileProxyConflict := true
requestBody.SetAutoReconcileProxyConflict(&autoReconcileProxyConflict)
}
requestBody.SetAdditionalData(additionalData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
restore, err := graphClient.Directory().DeletedItems().ByDirectoryObjectId("directoryObject-id").Restore().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody restorePostRequestBody = new com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("autoReconcileProxyConflict", true);
restorePostRequestBody.setAdditionalData(additionalData);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post(restorePostRequestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
autoReconcileProxyConflict: true
};
await client.api('/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore')
.post(directoryObject);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Directory\DeletedItems\Item\Restore\RestorePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RestorePostRequestBody();
$additionalData = [
'autoReconcileProxyConflict' => true,
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
autoReconcileProxyConflict = $true
}
Restore-MgDirectoryDeletedItem -DirectoryObjectId $directoryObjectId -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.directory.deleteditems.item.restore.restore_post_request_body import RestorePostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RestorePostRequestBody(
additional_data = {
"auto_reconcile_proxy_conflict" : True,
}
)
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"@odata.type": "#microsoft.graph.user",
"id": "78bf875b-9343-4edc-9130-0d3958113563",
"businessPhones": [],
"displayName": "SampleUser",
"givenName": "Sample",
"jobTitle": "Product Marketing Manager",
"mail": "sampleuser@contoso.com",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "sampleuser@contoso.com"
}
Exemplo 3: restaurar um usuário excluído e atribuir a ele um novo userPrincipalName
Solicitação
POST https://graph.microsoft.com/v1.0/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore
Content-Type: application/json
{
"newUserPrincipalName": "johndoe@contoso.com"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.DirectoryNamespace.DeletedItems.Item.Restore;
var requestBody = new RestorePostRequestBody
{
AdditionalData = new Dictionary<string, object>
{
{
"newUserPrincipalName" , "johndoe@contoso.com"
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.DeletedItems["{directoryObject-id}"].Restore.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphdirectory "github.com/microsoftgraph/msgraph-sdk-go/directory"
//other-imports
)
requestBody := graphdirectory.NewRestorePostRequestBody()
additionalData := map[string]interface{}{
"newUserPrincipalName" : "johndoe@contoso.com",
}
requestBody.SetAdditionalData(additionalData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
restore, err := graphClient.Directory().DeletedItems().ByDirectoryObjectId("directoryObject-id").Restore().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody restorePostRequestBody = new com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("newUserPrincipalName", "johndoe@contoso.com");
restorePostRequestBody.setAdditionalData(additionalData);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post(restorePostRequestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
newUserPrincipalName: 'johndoe@contoso.com'
};
await client.api('/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore')
.post(directoryObject);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Directory\DeletedItems\Item\Restore\RestorePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RestorePostRequestBody();
$additionalData = [
'newUserPrincipalName' => 'johndoe@contoso.com',
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
newUserPrincipalName = "johndoe@contoso.com"
}
Restore-MgDirectoryDeletedItem -DirectoryObjectId $directoryObjectId -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.directory.deleteditems.item.restore.restore_post_request_body import RestorePostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RestorePostRequestBody(
additional_data = {
"new_user_principal_name" : "johndoe@contoso.com",
}
)
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects/$entity",
"@odata.type": "#microsoft.graph.user",
"id": "78bf875b-9343-4edc-9130-0d3958113563",
"businessPhones": [],
"displayName": "SampleUser",
"givenName": "Sample",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "johndoe@contoso.com"
}