В моем скрипте powershell мне нужно определить, существует ли учетная запись, и я хочу построить одну функцию, чтобы возвращать логическое значение.Определить, существует ли учетная запись
Вот моя текущая функция - проблема с этим заключается в том, что мне нужно знать, перед каким видом учетной записи это нужно. Вы не можете запустить get-mailuser
против лицензированной учетной записи, и вы не можете запустить get-mailbox
против объекта Mail-User или Mail-Contact. Я понимаю, что это два разных модуля, взаимодействующих с двумя разными объектами.
Итак, как я могу исправить эту функцию, чтобы я мог просто проверить наличие учетной записи, не зная, что это за учетная запись?
#test for existing account
function accountexists($whatusertype, $whatusername){
$itexists = $false
switch($usertype){ #you can't use get-mailbox for mail-users or mail-contacts
("mail-user"){$itexists = [bool](get-mailuser -identity $whatusername -ErrorAction SilentlyContinue) }
("mail-contact"){ $itexists = [bool](get-mailuser -identity $whatusername -ErrorAction SilentlyContinue)}
("licensed"){ $itexists = [bool](get-mailbox -identity $whatusername -ErrorAction SilentlyContinue) }
}
return $itexists
}
Или, может быть, право собственности на этот вопрос должен быть How to determine account type?
Как использовать Get-AdObject? технически, если есть вероятность, что ПК или группа существует с именем, это может дать ложное положительное значение, но если ваше соглашение об именах отличается для пользователей и групп, это не должно быть проблемой. –
@MikeGaruccio: Mail-пользователь не будет частью объекта Ad. Он просто находится на сервере Exchange. Но да, вы можете вытащить объект других пользователей, за исключением нескольких случаев. –