我都意味着兩個自定義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