powershell 创建组、应用安全标签并添加到自动标签策略、无人参与,这可能吗

rqdpfwrv  于 2023-06-23  发布在  Shell
关注(0)|答案(1)|浏览(123)

我有一个工作的PowerShell脚本,可以完成所有这些,并通过交互式登录。它基于以下主要命令:

  • Connect-MgGraph
  • 新建MgGroup(创建具有适当灵敏度标签的组。)
  • New-MgTeam(将团队添加到组。)
  • 连接-IPPSS会话
  • Set-AutoSensitivityLabelPolicy(将工作组的SharePoint网站添加到现有的自动标签策略中。)

我需要这个运行无人值守的服务后,现在的请求被批准。
为了连接到MS Graph并使用存储的凭据作为用户帐户执行此操作,我遵循了this指南。该脚本能够创建组并应用标签,但New-MgTeam命令出错:

  • 缺少对请求的作用域权限。API需要“Team.Create,Group.ReadWrite.All,Directory.ReadWrite. All”之一。请求'AuditLog.Read.All,Dir ectory.AccessAsUser.All,email,openid,profile'* 上的作用域

问题是,我不是通过应用程序注册作为应用程序连接,而是具有适当角色(团队管理员和合规管理员)的用户。我假设这与我链接的指南中详细说明的令牌的使用有关。
最初,我尝试使用具有适当角色的应用注册,但New-MgGroup命令失败,错误为“不支持仅应用令牌”。

dxxyhpgq

dxxyhpgq1#

当我运行与您相同的代码来创建团队时,我得到了相同的错误,如下所示:

$cred = Get-Credential
Connect-MgGraphViaCred -credential $cred

Import-Module Microsoft.Graph.Teams

$params = @{
    "template@odata.bind" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
    displayName = "My Sample Team"
    description = "My Sample Team’s Description"
}

New-MgTeam -BodyParameter $params

回复:

或者,我注册了一个Azure AD应用程序,并授予了API权限,如下所示:

您可以使用下面的脚本,通过客户端凭据为应用生成访问令牌,并使用它创建团队,如下所示:

$tenantID = "2773f7fd-d343-xxxxxxxxxxxxxx" #your tenantID or tenant root domain
$appID = "f72491ac-f9ae-4b10-xxxxxxxxxxxxxxxxxxe" #the GUID of your app.
$client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxx" #client secret for the app

#Prepare token request
$url = 'https://login.microsoftonline.com/' + $tenantId + '/oauth2/v2.0/token'

$body = @{
    grant_type = "client_credentials"
    client_id = $appID
    client_secret = $client_secret
    scope = "https://graph.microsoft.com/.default"
}

$tokenRequest = Invoke-WebRequest -Method Post -Uri $url -ContentType "application/x-www-form-urlencoded" -Body $body -UseBasicParsing -ErrorAction Stop 

$AccessToken = ($tokenRequest.Content | ConvertFrom-Json).access_token

Connect-MgGraph -AccessToken $AccessToken

$params = @{
    "template@odata.bind" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
    displayName = "Imran Team"
    description = "Imran Team’s Description"
    members = @(
        @{
            "@odata.type" = "#microsoft.graph.aadUserConversationMember"
            roles = @(
                "owner"
            )
            "user@odata.bind" = "https://graph.microsoft.com/v1.0/users('7488bc42-6a7c-4ba2-xxxxxxxxxxx')"
        }
    )
}

New-MgTeam -BodyParameter $params

回复:

当我在Portal中检查相同时,团队成功创建如下:

相关问题