我正在创建一个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)
因此,显然我需要更改某些内容。但是呢?
答案 0 :(得分:2)
即使仅显示False
的输出,它也不是字符串"true"
/ "false"
(请注意引号),而是boolean $true
/ { {1}}
要检查$false
,而不是使用IsShared
(也需要Select-Object
才能正常工作),可以使用ExpandProperty
来引用该属性。如果您以后希望在代码中使用其他对象的任何其他属性,则将保留原始对象不变。
(关于对象属性和值的blog post小。)
哪个放在一起会给出:
$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
答案 1 :(得分:0)
您必须将Get-Mailbox -identity $user | select-object IsShared
替换为Get-Mailbox -identity $user | select -ExpandProperty IsShared
前者并非完全返回false,而后者则返回false。