Команда Connect-MSGraph не может выполняться в Azure функциях powershell core 6 - PullRequest
1 голос
/ 13 июля 2020

У меня есть функция azure с созданием среды Powershell core 6,

Требуется запустить некоторые из модулей PowerShell MS graph, например Get-IntuneManagedDevice | Get-MSGraphAllPages, но для этого требуется токен, который я пробовал использовать «Connect-MSGraph», но при запуске возникла следующая ошибка Ошибка: не удалось загрузить тип «System.Security.Cryptography.SHA256Cng» из сборки «System.Core, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089» .): Не удалось загрузить тип System.Security.Cryptography.SHA256Cng из сборки System.Core, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 '.

может ли кто-нибудь помочь мне в исправьте или исправьте меня, если я делаю что-то неправильно в любой момент.

Ответы [ 3 ]

0 голосов
/ 13 июля 2020

Как насчет следующего:

  1. Загрузите последний выпуск Intune Power Shell SDK из следующего репозитория GitHub https://github.com/Microsoft/Intune-PowerShell-SDK/releases

  2. Разблокировать код

  3. Импортировать модуль в PowerShell

    Import-Module. \ Microsoft.Graph.Intune.psd1Import -Module. \ Microsoft.Graph.Intune.psd1

  4. Подключить MS Grpah

    Connect-MSGraph -AdminConsent

  5. Попробуйте подключение управляемых устройств In-Tune (Get-IntuneManagedDevice | Get-MSGraphAllPages)

Спасибо, Ману

0 голосов
/ 13 июля 2020

Для этой проблемы я не знаю, как запустить Get-IntuneManagedDevice с токеном в функции azure powershell. Но я могу предоставить обходной путь ниже для вашей справки (используйте rest api, чтобы получить тот же результат в функции azure powershell, который вы ожидали).

1. Откройте fildder и запустите команду Get-IntuneManagedDevice в PowerShell мы можем видеть команду, запрашивающую api графа Microsoft в бэкэнде. API - это https://graph.microsoft.com/v1.0/deviceManagement/managedDevices, а эта страница является его документом ( вам не нужно делать этот шаг ).

2. Мы необходимо добавить разрешение для вашего приложения, зарегистрированного в azure объявление.

enter image description here After add the permission, don't forget grant admin consent for it.

3. We can find the graph api just support Delegated permission type but not support Application permission type according to the документ . введите описание изображения здесь Таким образом, мы не можем использовать учетные данные клиента в качестве типа предоставления для получения токена доступа (мы не можем просто использовать секретный ключ для получения токена доступа), как вы упомянули в комментариях выше . Нам нужно запросить токен доступа по типу предоставления пароля, поэтому используйте команду ниже, чтобы получить токен доступа:

$AppId = 'xxx'
$AppSecret = 'xxx'
$Scope = "https://graph.microsoft.com/.default"
$TenantName = "xxx"
$username = "xxx"
$password = "xxx"
$Url = "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token"
Add-Type -AssemblyName System.Web
$Body = @{
    client_id = $AppId
    client_secret = $AppSecret
    scope = $Scope
    username = $username
    password = $password
    grant_type = 'password'
}
$PostSplat = @{
    ContentType = 'application/x-www-form-urlencoded'
    Method = 'POST'
    Body = $Body
    Uri = $Url
}
$Request = Invoke-RestMethod @PostSplat
$Request.access_token

4. На шаге 1 мы знаем команду Get-IntuneManagedDevice request api графика в бэкэнде, поэтому нам просто нужно запросить api графика, и тогда мы сможем получить результат.

$Uri = "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices"
$Header = @{
    Authorization = "$($Request.token_type) $($Request.access_token)"
}
$result = Invoke-RestMethod -Uri $Uri -Headers $Header -Method Get -ContentType "application/json"
$result.value

Надеюсь, это поможет ~

0 голосов
/ 13 июля 2020

Не могли бы вы сообщить, если вы уже создали приложение, секретный ключ и т. Д. c. которые необходимо создать до доступа к Graph API? Я создал блог, в котором объясняется «Как создавать папки почтовых ящиков в почтовых ящиках Exchange Online с помощью Graph API и PowerShell». В первой части я объясняю процедуру создания приложения в Azure тенанте. Пожалуйста, проверьте это. Надеюсь, это поможет вам

Создание настраиваемой папки в почтовых ящиках Exchange Online с помощью Graph API с помощью Windows PowerShell

Спасибо, Ману

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...