我有以下内容:
$test = Test-CsWebScheduler -TargetFqdn "pool.int.contoso.com"
Write-Output $test
Target Fqdn : pool.int.contoso.com
Target Uri : https://pool.int.contoso.com/Scheduler/
Result : Failure
Latency : 00:00:00
Error Message : Scheduling conference at
https://pool.int.contoso.com/Scheduler/Handler/WebSchedulerHandler.ashx failed
with status Failure.
Diagnosis :
现在的问题是:
如何访问“错误消息”,“目标Uri”或“目标Fqdn”?我可以通过以下方式访问结果:
Write-Output $test.result
Failure
没有问题,但由于其他人在其中有空间,我还没有找到一种方法来访问它们。我尝试了以下(找到here):
Write-Output $test."Target Uri"
或
Write-Output $test.{Target Uri}
我也尝试了以下内容:
$test | Select-Object -Property "Target Uri"
或
Write-Output ($test."Target Uri")
或非常简单:
$test."Target Uri"
但是这不起作用,我没有得到一个值(也没有错误)。我得到的唯一错误信息是我使用时:
$test | select -ExpandProperty "Target Uri"
select : Property "Target Uri" cannot be found.
At line:1 char:9
+ $test | select -ExpandProperty "Target Uri"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Microsoft.Rtc.S...s.WebTaskOutput:PSObject) [Selec
t-Object], PSArgumentException
+ FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCom
mand
有没有人知道我如何访问它(没有将其转储到临时文件并解析它)?
更新01:
这里要求的是$ test |的输出克
$test | gm
TypeName: Microsoft.Rtc.SyntheticTransactions.WebTaskOutput
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Diagnosis Property string Diagnosis {get;}
Error Property string Error {get;}
Latency Property timespan Latency {get;}
Result Property Microsoft.Rtc.SyntheticTransactions.ResultStatus Result {get;}
TargetFqdn Property string TargetFqdn {get;}
TargetUri Property string TargetUri {get;}
WorkflowLogger Property Microsoft.Rtc.SyntheticTransactions.Logging.SyntheticTransactionsWorkf...
答案 0 :(得分:0)
将$ test变量传递给get-member
时看到$test | gm
提供的输出显示Target URI属性实际上是一个单词,因此只需使用以下内容即可在您的脚本中使用。
$test.TargetUri
答案 1 :(得分:0)
正如评论中所提到的:使用输出中看到的“名称”并不意味着它们与实际属性名称相同。但是,使用Get-Member (or the short abbreviation GM)可以检查存储在变量中的实际属性名称。
所以使用
$test | gm
或
$test | Get-Member
表明“目标Uri”是“TargetUri”:
[...]
TargetUri Property string TargetUri {get;}
[...]
所以使用:
$test.TargetUri
在这里解决了这个问题。
答案 2 :(得分:0)
尝试访问这样的值:
$test.PSObject.Properties["Target Uri"].Value