我都意味着两个自定义PowerShell函数中使用,如:PowerShell的@ {}管道错误
Get-Users | Select LoginName | Get-UserJobStatus -StartDate 2013-02-19 -EndDate 2013-02-21
当这是跑,我收到来自Web服务的错误:
@{LoginName=UserName} not found
哪这是有道理的,因为传递给Web服务函数的用户名应该只是UserName而不是@ {LoginName = username}。我如何正确格式化?
function Global:Get-BackupJobStatus
{
[cmdletBinding()]
Param(
[Parameter(
Mandatory=$True,
HelpMessage='Specific account name.',
ParameterSetName='LoginName',
ValueFromPipeline=$True
)]
[System.String[]]$LoginName = $null,
[Parameter(
Mandatory=$false,
HelpMessage='Start date for report.'
)]
[System.DateTime]$startDate,
[Parameter(
Mandatory=$false,
HelpMessage='Ending date for report.'
)]
[System.DateTime]$EndDate
)
Begin {
$tempXml = New-Object System.Xml.XmlDocument
Write-Output $StartDate.toString("yyyy-MM-dd")
}
Process{
$tempXml.Load("https://webservicecall/info.do?LoginName="+$LoginName+"&Date="+$startDate.toString("yyyy-MM-dd"))
}
End {
Write-Output $tempXml.Users.User
}
}
我不承认获取用户。它从哪里来,它输出什么?无论如何,我怀疑你需要将select改为:| Select -ExpandProperty LoginName | – EBGreen 2013-02-21 15:16:56
Get-Users是我写的一个自定义函数。 – 2013-02-21 15:47:14