2012-03-28 11 views
0

Я хотел бы проверить $ true или $ false, если пользователь находится в определенной базе данных mailbox. Это не работает:Проверка наличия почтового ящика в базе данных specificc (ошибка синтаксиса!)

if((get-mailbox user| select Database) -eq "server\group\dbgroup") { 
    echo $true 
} else { 
    echo $false 
} 

(возвращает False)

Но

get-mailbox user | select Database  

возвращает

Database 
-------- 
server\group\dbgroup 

Как проверить это значение?

ответ

1

@Christian уже дал вам ответ, но ответить вам «ошибка синтаксиса». Когда вы подключаетесь к Select-Object, вы возвращаете объект со свойствами, которые вы указали: База данных. Чтобы получить доступ к недвижимости, которую нужно назвать, поэтому для того, чтобы ваш код для работы вы должны написать так:

if((get-mailbox user| select Database).Database -eq "server\group\dbgroup") { 
    echo $true 
} else { 
    echo $false 
} 
+0

Действительно странно, я могу сделать. этот подход для любого другого командлета, но по какой-то причине это не работает на get-mailbox .. Возврат многострочный, поэтому я не могу сделать -EQ на нем. – Sune

+1

База данных - это объект самостоятельно, поэтому вы можете получить его свойства при печати, я тестировал его на работе, и он работал для меня. Я не могу проверить его сейчас, что произойдет, если вы выполните: (...). Database.ToString() -eq «server ...» –

+0

Да, это сработало Шей! Спасибо, я использую Exchange 2007 btw .. Это может быть причина. Спасибо еще раз :) – Sune

0

Попробуйте, как это (не могу проверить его):

if((get-mailbox user).Database -eq "server\group\dbgroup") 
+0

Нах, не работает :( – Sune

Смежные вопросы