the*_*olf 1 windows powershell active-directory
我正在尝试确定C:\ Users中的哪些用户文件夹在Active Directory中具有活动用户.
我目前有以下内容:
$userProfile = Get-ChildItem -Path "C:\Users"
$unknownList = @()
foreach($user in $userProfile){
try{
Get-ADUser -Identity $user.Name | Out-Null
}
catch{
$unknownList += $user.Name
}
}
Write-Host $unknownList
Run Code Online (Sandbox Code Playgroud)
我的问题是所有用户名似乎都不存在并被捕获.任何人都可以为PowerShell第一次计时器提供一些建议吗?我在这里和其他地方尝试了许多其他的东西,但没有一个能够工作.谢谢!
我想要做类似的事情,并且感到震惊的是,看起来AD中是否存在用户的唯一方法是野蛮地让Get-ADUser抛出错误,然后你抓住它.经过大量研究后,我发现-Identity如果您使用-Filter实际返回的参数,则不是使用参数,而是使用与filter参数匹配的用户对象,或$ Null对象(因为没有与-Filter参数匹配).一旦你在变量中有了这个,你就可以做一个"正确的"if/else语句评估而不会抛出任何错误.
这是你的代码:
$userProfile = Get-ChildItem #-Path "C:\Users"
$unknownList = @()
foreach($user in $userProfile){
#Try getting the user
$ADUser = Get-ADUser -Filter {SamAccountName -eq $User.Name}
#Test to see if the user exists
If($ADUser)
{
#User Exists
#Write-host "$($User.Name) Exists"
}
Else
{
#User does not Exist
#Write-host "$($User.Name) Does not Exist"
Write-host "$($User.Name)"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14655 次 |
| 最近记录: |