[玩转系统] 检查 Azure AD 用户是否存在 PowerShell 函数
作者:精品下载站 日期:2024-12-14 07:13:23 浏览:13 分类:玩电脑
检查 Azure AD 用户是否存在 PowerShell 函数
在 AzureAD 中使用云用户编写脚本时,有些人可能会问如何检查 Azure AD 用户是否可用。在为客户编写脚本时,我还必须挑战这个场景。之后我想这可能是很多人需要的东西。这是我的解决方案,并提供了一些在您自己的脚本中使用它的解释。
检查正常的 Azure AD 用户
Function Check-AzureUser()
{
param(
[Parameter(Mandatory=$true)][string]$UserPrincipalName
)
## check if azure AD connection is already established (if not quit function)
try {
Write-Host "Checking if Azure AD Connection is established..." -ForegroundColor Yellow
$azconnect = Get-AzureADTenantDetail -ErrorAction Stop
$displayname = ($azconnect).DisplayName
write-host "Azure AD connection established to Tenant: $displayname " -ForegroundColor Green
}
catch {
write-host "No connection to Azure AD was found. Please use Connect-AzureAD command" -ForegroundColor Red
break
}
## check if user exists in azure ad
#check if upn is not empty
if($UserPrincipalName){
$UserPrincipalName = $UserPrincipalName.ToString()
$azureaduser = Get-AzureADUser -All $true | Where-Object {$_.Userprincipalname -eq "$UserPrincipalName"}
#check if something found
if($azureaduser){
Write-Host "User: $UserPrincipalName was found in $displayname AzureAD." -ForegroundColor Green
return $true
}
else{
Write-Host "User $UserPrincipalName was not found in $displayname Azure AD " -ForegroundColor Red
return $false
}
}
}
这个小东西有什么作用呢?
- 它检查是否有到 azure AD 的连接,如果没有,则取消功能(第 8 -17 行)
- 获取所有 Azure AD 用户并搜索作为参数给出的用户主体名称
- 如果找到用户,则返回“TRUE”,否则返回“FALSE”
那么如何使用这个呢?嗯,这很容易。执行完整的函数然后输入;
检查-AzureUser [email protected]
$user = "[email protected]"
if(Check-AzureUser $user){
Write-Host "Do something with this user $user.." -ForegroundColor Green
}
else{
Write-Host "Break the script" -ForegroundColor Red
}
如果用户存在,该函数返回“TRUE”,因此可以在 IF 情况下使用。如示例所示。
检查 Azure AD 来宾用户
有时,人们想要检查是否存在特殊来宾用户以及他们的一些东西(可能会邀请 M365 租户内的其他任何东西加入团队),所以我编写了另一个函数来管理此类需求。
Function Check-AzureGuestUser(){
param(
[Parameter(Mandatory=$true)][string]$Mailaddress
)
try {
Write-Host "Checking if Azure AD Connection is established..." -ForegroundColor Yellow
$azconnect = Get-AzureADTenantDetail -ErrorAction Stop
$displayname = ($azconnect).DisplayName
write-host "Azure AD connection established to Tenant: $displayname " -ForegroundColor Green
}
catch {
write-host "No connection to Azure AD was found. Please use Connect-AzureAD command" -ForegroundColor Red
break
}
$guestuser = Get-AzureADUser -Filter "userType eq 'Guest'" -All $true | Where-Object {$_.Mail -eq "$Mailaddress"}
if($guestuser){
$guestemail = ($guestuser).Mail
$guestupn = ($guestuser).Userprincipalname
#check if something found
Write-Host "GuestUser: $guestupn was found in $displayname AzureAD." -ForegroundColor Green
return $true
}
else{
Write-Host "User $UserPrincipalName was not found in $displayname Azure AD " -ForegroundColor Red
return $false
}
}
这个函数有什么作用?和第一个几乎一样。
- 检查 Azure AD 连接
- 检查所有访客用户以及参数中的用户是否存在
- 查找访客的用户主体名称(及其邮件地址)
- 如果访客存在则返回“TRUE”,如果访客不存在则返回“FALSE”
这里的程序相同:
检查-AzureGuestUser [email protected]
另一个小用例。
$user = "[email protected]"
if(Check-AzureGuestUser $user){
Write-Host "Do something with this user $user.." -ForegroundColor Green
}
else{
Write-Host "Break the script" -ForegroundColor Red
}
我认为这根本没有那么复杂。
将所有组合在一起
有时您需要知道用户是否存在并且是 azure 广告用户还是来宾(特别是如果您集成了多个域)
您可以使用这两个函数并将其放在一起来检查用户是否(无论是来宾还是 azure)用户存在)。看看魔术。
$azusers = "[email protected]","[email protected]","[email protected]","[email protected]"
foreach($azuser in $azusers ){
if(Check-AzureUser -UserPrincipalName "$azuser"){
Write-Host "$azuser is an AzureAD User" -ForegroundColor Green
}
else{
if(Check-AzureGuestUser -Mailaddress "$azuser"){
Write-Host "$azuser is a guest user"
}
else{
Write-Host "User $azuser was not found in azure ad, checked azure ad user and guest user" -ForegroundColor Gray
}
}
}
这段小代码检查它是否是 azure AD 用户,如果不是,它会检查来宾用户的邮件地址。在来宾或天蓝色广告用户中找不到用户,它表示找不到用户。这两个功能并不困难,但可以帮助最大限度地减少用户创建时的错误。
如果您喜欢这篇文章,请点击“有帮助”,否则请使用评论部分告诉我。
请继续关注并继续使用 Azure 脚本。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag