Не существует маршрута OData, соответствующего шаблону ~/singleton/navigation с HTTP-командой POST для запроса /DeviceEnrollmentFE/StatelessDeviceEnrollmentFEService/deviceManagement/windowsAutopilotDeviceIdentities."} Microsoft.Graph.Models.ODataErrors .ODataError
Прежде всего, можно зарегистрировать устройства в Intune, когда я использую сценарий PowerShell с тем же идентификатором клиента/идентификатором приложения/секретом приложения, который я использую. в моем приложении C#.
Проблема также не должна быть вызвана недостаточными разрешениями приложения. В Azure AD приложение имеет следующие разрешения, все с согласия администратора:
- DeviceManagementManagedDevices.ReadWrite.All
- DeviceManagementServiceConfig.ReadWrite.All
- DeviceManagementApps.ReadWrite. Все
Когда я исследовал связь с сервером MS, мое приложение правильно звонит и получает Токен доступа с сервера. Но после вызова метода регистрации пакет не отправляется:
graphClient.DeviceManagement.WindowsAutopilotDeviceIdentities.PostAsync(newDevice);
и это просто вызывает исключение, упомянутое выше.
Кто-нибудь знает, как заставить приложение C# взаимодействовать с MS Intune через Graph API?
Вот упрощенный пример кода, который я использую:
Код: Выделить всё
namespace IntuneTest
{
public partial class MainWindow : Window
{
private GraphServiceClient graphClient;
public MainWindow()
{
InitializeComponent();
InitializeGraphClient();
}
// Initialize Graph Client with ClientSecretCredential for authentication
private async void InitializeGraphClient()
{
var credential = new ClientSecretCredential(
"TenantID", // Replace with your Tenant ID
"AppID", // Replace with your App ID
"ClientSecret" // Replace with your Client Secret
);
graphClient = new GraphServiceClient(credential, new[] { "https://graph.microsoft.com/.default" });
var token = await credential.GetTokenAsync(new TokenRequestContext(new[] { "https://graph.microsoft.com/.default" }), CancellationToken.None);
Debug.WriteLine($"Access Token: {token.Token}");
}
// Register a Windows Autopilot device
private async Task RegisterDeviceAsync()
{
try
{
var newDevice = new WindowsAutopilotDeviceIdentity
{
SerialNumber = "6WX8WT2", // Required: Serial number
Manufacturer = "Dell Inc.", // Optional
Model = "Latitude 5590", // Optional
EnrollmentState = EnrollmentState.Enrolled
};
await graphClient.DeviceManagement.WindowsAutopilotDeviceIdentities.PostAsync(newDevice);
Debug.WriteLine("Device registered.");
MessageBox.Show("Device registered successfully!", "Success");
}
catch (ServiceException ex)
{
Debug.WriteLine($"Error: {ex.Message}");
MessageBox.Show($"Error registering device: {ex.Message}", "Error");
}
}
// Triggered by button click to register the device
private async void Button_Click(object sender, RoutedEventArgs e)
{
await RegisterDeviceAsync();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-graph-ap
Мобильная версия