直接运行脚本
 
 
 
 
#requires -Version 3.0 -Modules AzureRM.Resources
param(
    [switch]
    $GroupRolesByUser
)
$ErrorActionPreference = 'Stop'
Login-AzureRmAccount -ErrorVariable loginerror -Environment AzureChinaCloud
If ($loginerror -ne $null)
{
Throw {"Error: An error occured during the login process, please correct the error and try again."}
}
Function Select-Subs
{
    $ErrorActionPreference = 'SilentlyContinue'
    $Menu = 0
    $Subs = @(Get-AzureRmSubscription | select Name,ID,TenantId)
    Write-Host "Please select the subscription you want to use" -ForegroundColor Green;
    $Subs | %{Write-Host "[$($Menu)]" -ForegroundColor Cyan -NoNewline ;Write-host ". $($_.Name)";$Menu++;}
    $selection = Read-Host "Please select the Subscription Number - Valid numbers are 0 - $($Subs.count -1)"
    If ($Subs.item($selection) -ne $null)
    { Return @{name = $subs[$selection].Name;ID = $subs[$selection].ID} }
}
$SubscriptionSelection = Select-Subs
Select-AzureRmSubscription -SubscriptionName $SubscriptionSelection.Name -ErrorAction Stop
$ADUser = Get-AzureRmADUser
function Resolve-AzureAdUsers {
param(
        [string]$Displayname
    )
    ForEach($i in $ADUser){
        if( $i.displayName -eq $Displayname){return $i.UserPrincipalName}
       
    }
}
function Resolve-AzureAdGroupMembers
{
    param(
        [guid]
        $GroupObjectId,
        $GroupList = (Get-AzureRmADGroup)
    )
   
    $VerbosePreference = 'continue'
    Write-Verbose -Message ('Resolving {0}' -f $GroupObjectId)
    $group = $GroupList | Where-Object -Property Id -EQ -Value $GroupObjectId
    $groupMembers = Get-AzureRmADGroupMember -GroupObjectId $GroupObjectId
    Write-Verbose -Message ('Found members {0}' -f ($groupMembers.DisplayName -join ', '))
    $parentGroup = @{
        Id          = $group.Id
        DisplayName = $group.DisplayName
        #UserPrincipalName = $group.UserPrincipalName
    }
    $groupMembers |
    Where-Object -Property Type -NE -Value Group |
    Select-Object -Property Id, DisplayName,UserPrincipalName, @{
        Name       = 'ParentGroup'
        Expression = { $parentGroup }
    }
    $groupMembers |
    Where-Object -Property type -EQ -Value Group |
    ForEach-Object -Process {
        Resolve-AzureAdGroupMembers -GroupObjectId $_.Id -GroupList $GroupList
    }
}
$roleAssignments = Get-AzureRmRoleAssignment -IncludeClassicAdministrators
$members = $roleAssignments | ForEach-Object -Process {
    Write-Verbose -Message ('Processing Assignment {0}' -f $_.RoleDefinitionName)
    $roleAssignment = $_
   
    if($roleAssignment.ObjectType -eq 'Group')
    {
        Resolve-AzureAdGroupMembers -GroupObjectId $roleAssignment.ObjectId `
        | Select-Object -Property Id,
            SignInName,DisplayName,UserPrincipalName,
            ParentGroup, @{
                Name       = 'RoleDefinitionName'
                Expression = { $roleAssignment.RoleDefinitionName }
            }, @{
                Name       = 'Scope'
                Expression = { $roleAssignment.Scope }
            }, @{
                Name       = 'CanDelegate'
                Expression = { $roleAssignment.CanDelegate }
            }
    }
    else
    {
        $roleAssignment | Select-Object -Property @{
                Name       = 'Id'
                Expression = { $_.ObjectId }
            },
            SignInName, DisplayName,UserPrincipalName,
            @{
                Name       = 'RoleDefinitionName'
                Expression = { $roleAssignment.RoleDefinitionName }
            },
            Scope,
            CanDelegate
    }
}
if($GroupRolesByUser)
{
    $members |
    Sort-Object -Property DisplayName, RoleDefinitionName `
    |
    Group-Object -Property DisplayName `
    |
    Select-Object -Property Count,
        Name,
        @{
            Name       = 'RoleDefinitions'
            Expression = { $_.Group.RoleDefinitionName -join ', ' }
        },
        ParentGroup
}
else
{
    $members|Select-Object -Property Scope,Displayname,
    @{
            Name = 'LoginName'
            Expression = {$(Resolve-AzureAdUsers -Displayname $_.DisplayName)}
    },RoleDefinitionName|Out-GridView
}

Azure导出所有用户权限---powershell命令的更多相关文章

  1. 如何创建一个有System用户权限的命令行

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何创建一个有System用户权限的命令行.

  2. Linux - 用户权限相关命令

    用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...

  3. No-6.用户权限相关命令

    用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...

  4. 1.5linux用户权限相关命令

    用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...

  5. linux中如何修改文件夹的用户权限 chown命令

    linux中,可以使用chown命令来修改文件夹的用户权限. 1.  以普通用户 A 登录linux,利用su -切换到root用户 2. 在root用户下,可以看到文件夹内容 3. 但通过文件系统, ...

  6. Ubuntu 用户权限相关命令

    目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要的一环,用户管理包 ...

  7. Linux用户权限常见命令

    01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 与 组 管理 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须 ...

  8. MySQL 用户权限相关命令

    ##1.创建用户: create user test identified by '123456';##identified后面跟密码 ##2.查询所有用户: select user from mys ...

  9. 适用于 Azure 虚拟网络的常见 PowerShell 命令

    如果想要创建虚拟机,需要创建虚拟网络或了解可在其中添加 VM 的现有虚拟网络. 通常情况下,创建 VM 时,还需考虑创建本文所述资源. 有关安装最新版 Azure PowerShell.选择订阅和登录 ...

随机推荐

  1. WinServer设置多用户登录

    1.运行 gpedit.msc →computer configuration→administrative templates→windows componets→Remote Desktop→Re ...

  2. 教程二 网页和lua交互修改openwrt

    硬件 http://zhan.renren.com/h5/entry/3602888498044209332 GL-iNet 1 首先安装 webserver之lighttpd  ,openwrt自带 ...

  3. Abp通用配置模块的设计

    引言 约定优于配置,配置趋于灵活 约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处, ...

  4. ASP.NET Core 共享第三方依赖库部署的Bug(*.deps.json on 2.2.0 or 4.6.0 版本)

    背景: I try to put the Microsoft.*.dll and System.*.dll togather to a new folder.以便把(第三方或)系统的和应用的dll分开 ...

  5. 《Python黑客编程之极速入门》正式开课

    玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...

  6. Linux 桌面玩家指南:16. 使用 CUDA 发挥显卡的计算性能

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  7. Activity 关于生命周期一些问题的实践验证

    Activity 关于生命周期一些问题的实践验证 本文内容 1. 如何验证问题 2. 正常情况下的生命周期 3. 由活动 A 启动活动 B 时,活动 A 的 onpause() 和 B 的 onRes ...

  8. Python基础(max,min方法)

    max函数(min函数使用方法一致): #-----------------max函数----------------- #max之简单层次的使用 li=[1,0,2,45,12,-2,7,9] re ...

  9. 微信小程序初体验,入门练手项目--通讯录,部署上线(二)

    接上一篇<微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器>:https://www.cnblogs.com/chengxs/p/9898670.html 开发微信小程序最尴尬 ...

  10. CentOS 7 最小化安装配置以及网络服务器搭建、配置与管理

    一.环境介绍: 运行软件:VMware Workstation Pro 系统环境:CentOS-7-x86_64-1810 系统网络运行模式:NAT模式 二.操作配置: 1.配置动态获取IP 1) 修 ...