PowerShell命令不工作

PowerShell命令不工作,powershell,Powershell,第一个问题: Get-Mailbox abc@win.com | FL IsLinked 它给我的结果是False,这是真的,因为我的邮箱没有链接,但当我尝试此操作时: [bool] Get-Mailbox abc@win.com | FL IsLinked 它返回True。我不明白为什么会这样 第二个问题与SSL证书验证有关: Get-ChildItem -Path Cert:\localMachine\My | Test-Certificate -Policy SSL 报告测试证书未

第一个问题:

Get-Mailbox abc@win.com | FL IsLinked
它给我的结果是
False
,这是真的,因为我的邮箱没有链接,但当我尝试此操作时:

[bool] Get-Mailbox abc@win.com | FL IsLinked 
它返回
True
。我不明白为什么会这样

第二个问题与SSL证书验证有关:

Get-ChildItem -Path Cert:\localMachine\My | Test-Certificate -Policy SSL
报告
测试证书
未被识别为cmdlet、脚本或可操作程序

第三个与
getwebconfigurationproperty
命令相关:我正在尝试获取IIS中托管的网站的身份验证模式

Get-WebConfigurationProperty -Filter //authentication/files -PSPath 'IIS:\Sites\Default Web Site'
它不返回任何内容。

点此属性:
[bool](获取邮箱)abc@win.com).IsLinked

第二个问题:对我来说很好


总的来说,最好单独创建/检查问题。还提供一些有关场景的信息。

向布尔施压

问题是您正在将
格式列表IsLinked
的结果强制转换为
bool
,而不是
IsLinked
属性的值。当强制转换到
bool
时,nothing、0或false返回
$false
,而其他任何内容返回true<代码>格式列表output
IsLinked:false
这是“任何输出”,因此转换到
bool
返回
$true

例如:

$obj = [pscustomobject]@{ IsLinked = $false }

#Show the objects in a list, but only the IsLinked-property
$obj | Format-List IsLinked
IsLinked : False

#Cast output from format-list .. to bool..
[bool]$obj | Format-List IsLinked
True
您需要的是使用以下解决方案之一读取属性

(Get-Mailbox abc@win.com).IsLinked
Get-Mailbox abc@win.com | Select-Object -ExpandProperty IsLinked
Get-Mailbox abc@win.com | Foreach-Object { $_.IsLinked }
测试证书

此cmdlet是在Windows 8的PowerShell 4.0中引入的。您需要使用Windows 8或更高版本,因为它未包含在适用于Windows 7 AFAIK的PowerShell 4.0+中

IIS身份验证模式

参见上的示例

示例1:查询身份验证设置

IIS:\>Get-WebConfiguration system.webServer/security/authentication/* 'IIS:\sites\Default Web Site' -Recurse |
where {$_.enabled -eq 'true'} |
format-list
此示例查询在下指定的所有身份验证设置 默认网站


请不要混淆问题。如果你有三个不同的问题:发布三个不同的问题。你可能想澄清第一个问题,因为不清楚你的预期和实际结果到底是什么。另外,您使用的Windows版本是什么?在执行测试证书命令之前是否有任何模块要导入?它属于PKI模块,应该在2008 R2及更新版本中可用。感谢重播。但是对于iis身份验证,给定的cmdlet不会返回任何内容