Как использовать значение в качестве переменной? - PullRequest
0 голосов
/ 12 февраля 2019

Я создаю сценарий Powershell, который можно использовать для преобразования почтового ящика в общий почтовый ящик в Office 365. Но сначала я хочу проверить, имеет ли почтовый ящик статус Общий или нет.

Если яЗапустив эту команду, я получаю ответ:

Get-Mailbox -identity $user | select-object IsShared

IsShared
--------
   False

Поэтому я хочу использовать это значение, которое в данном случае равно False.

$user = Read-Host -Prompt "What mailbox to check?"
$status = Get-Mailbox -identity $user | select-object IsShared 

If ($status -eq "false") 
    {Write-Host "$user status is NOT shared"}
Else 
    {write-host "$user status is shared"}

Проблема в том, что я получаю только последнее сообщение ввернуть.Даже если я изменю этот код:

If ($status -eq true) 

Так что, очевидно, что-то мне нужно изменить.Но что?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Вам придется заменить Get-Mailbox -identity $user | select-object IsShared на Get-Mailbox -identity $user | select -ExpandProperty IsShared Первый не совсем возвращает false, а последний возвращает false.

0 голосов
/ 12 февраля 2019

Несмотря на то, что он просто показывает вывод False, это не строка "true" / "false" (примечание кавычки), это логическое значение $true / $false

Для проверки IsShared вместо использования Select-Object (для правильной работы также потребуется ExpandProperty), вы можете использовать $status.IsShared для ссылки только на это свойство.Это оставляет исходный объект нетронутым, если вы захотите использовать любое из его других свойств позже в вашем коде.

(Небольшое сообщение в блоге о свойствах и значениях объекта.)

Что при объединении дает:

$user = Read-Host -Prompt "What mailbox to check?"
$status = Get-Mailbox -identity $user

if ($status.IsShared -eq $false) { Write-Host "$user status is NOT shared" }
else { Write-Host "$user status is shared" }

Вы также можете перевернуть if, так как он по умолчанию проверяет $true:

if ($status.IsShared) { Write-Host "$user status is shared" }
else { Write-Host "$user status is NOT shared" }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...