Powershell 如何将值用作变量?
我正在创建一个Powershell脚本,可用于在Office 365中将邮箱转换为共享邮箱。但首先我想检查邮箱是否处于共享状态 如果我运行此命令,我会得到一个答案:Powershell 如何将值用作变量?,powershell,office365,Powershell,Office365,我正在创建一个Powershell脚本,可用于在Office 365中将邮箱转换为共享邮箱。但首先我想检查邮箱是否处于共享状态 如果我运行此命令,我会得到一个答案: Get-Mailbox -identity $user | select-object IsShared IsShared -------- False 所以我想用这个值,在这个例子中是False $user = Read-Host -Prompt "What mailbox to check?" $status = Ge
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)
显然,我需要改变一些事情。但是什么呢?即使它只是显示一个
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" }
如果,您也可以翻转,因为默认情况下它会检查$true
:
if ($status.IsShared) { Write-Host "$user status is shared" }
else { Write-Host "$user status is NOT shared" }
尽管它只是显示了一个输出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" }
如果
,您也可以翻转,因为默认情况下它会检查$true
:
if ($status.IsShared) { Write-Host "$user status is shared" }
else { Write-Host "$user status is NOT shared" }
您必须将Get Mailbox-identity$user | select object IsShared
替换为Get Mailbox-identity$user | select-ExpandProperty IsShared
前者并不完全返回false,而后者返回false。您必须将Get Mailbox-identity$user | select object IsShared
替换为Get Mailbox-identity$user | select-ExpandProperty IsShared
前者不完全返回false,而后者返回false。它不是字符串“true”
/“false”
(注意引号)它是一个布尔值$true
/$false
,所以您需要这样检查:$status-eq$false
好的,谢谢您的输入。我改变了它,现在删除了引号,并在前面添加了$-符号:If($status-eq$false),但我仍然得到相同的输出。而不是正确的输出你会有另一个问题。在进行比较之前,需要首先从对象展开值.| select object-ExpandProperty是共享的
@Matt谢谢,这似乎完成了trickIt不是字符串“true”
/“false”
(注意引号)它是一个布尔值$true
/$false
,所以你需要这样检查:$status-eq$false
好的谢谢你的输入。我改变了它,现在删除了引号,并在前面添加了$-符号:If($status-eq$false),但我仍然得到相同的输出。而不是正确的输出你会有另一个问题。在进行比较之前,需要首先从对象展开值..|选择对象-ExpandProperty共享
@Matt谢谢,这似乎成功了