gpt4 book ai didi

powershell - Powershell @ {}管道错误

转载 作者:行者123 更新时间:2023-12-03 00:26:50 26 4
gpt4 key购买 nike

我有两个自定义的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
}
}

最佳答案

问题在于,您的函数期望将string -object作为loginname输入,并且要发送的pscustomobject(由select创建)具有属性,称为loginname。要解决此问题,请使用select-object-ExpandProperty参数发送loginname的值,而不是具有该属性的对象。像这样:

Get-Users | Select -ExpandProperty LoginName |
Get-UserJobStatus -StartDate 2013-02-19 -EndDate 2013-02-21

关于powershell - Powershell @ {}管道错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15005624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com