Я пытаюсь определить, какие пользовательские папки в C: \ Users имеют активных пользователей в Active Directory.Определить, находятся ли пользователи в Active Directory с помощью PowerShell
я в настоящее время следующие:
$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
Моя проблема заключается в том, что все имена пользователей, по всей видимости, не существует и пойманы. Может ли кто-нибудь предложить некоторые предложения для первого таймера PowerShell? Я попробовал несколько других вещей, найденных здесь и в других местах, но никто не смог работать. Спасибо!
имя папки, в 'C: \ Users' не nesessarly совпадает с именем пользователя в AD. Это может быть 'username.DomainName. ###', если профиль пользователя уже существует. –
Ваш код выглядит правильно, насколько я могу судить. Единственное, что может быть проблемой, заключается в том, что ваш блок 'Catch {}' никогда не будет достигнут, потому что Get-ADUser создает ошибки, не связанные с завершением. Чтобы обойти это, используйте '-ErrorAction Stop' в' Get-ADUser'. Это изменяет ошибки на завершающие ошибки. –
@TrevorSullivan Его проблема заключается в том, что * все * имена выдают ошибку и, следовательно, заканчиваются в '$ unknownList'. –