Azure active directory AzureAD-按EmployeeID阻止访问

Azure active directory AzureAD-按EmployeeID阻止访问,azure-active-directory,azure-powershell,Azure Active Directory,Azure Powershell,通过AzureAD中的EmployeeID阻止用户 CSV文件的列EmployeeID设置为: EmployeID --------- 9999 12345 23452 24354 234234 这是我到目前为止所拥有的 $TermedUsers = Import-csv "C:\temp\testtermed1.csv" foreach ($Termed in $TermedUsers){ Set-AzureADUser -ObjectID (Get-AzureADUser | whe

通过AzureAD中的EmployeeID阻止用户

CSV文件的列EmployeeID设置为:

EmployeID
---------

9999
12345
23452
24354
234234
这是我到目前为止所拥有的

$TermedUsers = Import-csv "C:\temp\testtermed1.csv"

foreach ($Termed in $TermedUsers){

Set-AzureADUser -ObjectID (Get-AzureADUser | where-object {$_.ExtensionProperty.employeeId -eq $Termed}).EmployeeID -AccountEnabled $false

}
我收到的错误消息是:

Set-AzureADUser : Cannot bind argument to parameter 'ObjectId' because it is null.
At line:5 char:27
我试图使用在Microsoft上找到的脚本,该脚本将通过.txt中的UPN阻止:

Get-Content "C:\My Documents\Accounts.txt" | ForEach { Set-AzureADUSer -ObjectID $_ -AccountEnabled $true }
感谢您的帮助


谢谢,

根据您提供的脚本,我们不能使用属性EmployeeId作为ObjectId。它们是用户的不同属性

EmployeeId:组织分配给用户的员工标识符 ObjectId:用户的唯一标识符。从目录继承

关于如何设置Azure AD用户,请参考以下脚本:

CSV文件 剧本 更新

根据我的测试,如果我们直接通过$Termed来过滤Azure广告用户,这是错误的。它是一个对象,类似于@{EmployeeID=666}。所以我们需要传递$Termed.EmployeeID来过滤Azure广告用户。

我在您的文本文件中看到EmployeeID 1个e,但在代码中看到EmployeeID 2个e。太棒了,谢谢您快速回复,并向我解释我的错误所在。我试图运行脚本,但收到错误消息“Set-AzureADUser:无法将参数绑定到参数“ObjectId”,因为它为null。在第7行char:28'中,我验证了EmployeeID是否存在,它确实存在。我验证了即使在收到错误消息后…如果它确实阻止了用户,但它没有。知道我为什么会出现这个-objectid错误吗?我拥有azureadi所需的所有模块,我意识到如果我将“Get AzureADUser |”更改为“Get AzureADUser-all$true |”,那么它将成功运行。为什么?@LarryDavid我已经更新了我的答案。您需要传递$Termed.EmployeeID以筛选Azure广告用户。
Connect-AzureAD

$r = Import-csv E:\test.csv

$r.EmployeeID

foreach($id in $r.EmployeeID ){

 Set-AzureADUser -ObjectId (Get-AzureADUser | where-object {$_.ExtensionProperty.employeeId -eq $id}).ObjectId -AccountEnabled $false
 (Get-AzureADUser | where-object {$_.ExtensionProperty.employeeId -eq $id}) | Select-Object ObjectId , AccountEnabled

}