add-content:输入对象不能绑定到命令的任何参数,因为

时间:2019-01-29 08:57:52

标签: powershell

我正在尝试生成带有输出的文本文件,我需要为每个语句构建一个,但出现此错误:

  

add-content:输入对象不能绑定到任何参数   该命令不是因为该命令不接受管道输入,要么是   输入及其属性与以下任何参数都不匹配   接受管道输入。

我在这里想念什么?

foreach($item in $filteredItems)
{
    $user = $web.EnsureUser($item)
    if (-Not $profileManager.UserExists($user.LoginName))
    {
        $loginName = $user.LoginName.Substring(13)
        #Write-Host $loginName
        $userFromAD = Get-ADUser -Filter {SAMAccountName -eq $loginName}
        $concatenatedUser = $user.ID.ToString() + ";#" + $userFromAd.Name
        #Write-Host  $concatenatedUser
        $query = [String]::Format("<Where><Contains><FieldRef Name='Persons_PDB' LookupId='True'/><Value Type='LookupMulti'>{0}</Value></Contains></Where>",$user.ID)
        $userItemsQuery = New-Object Microsoft.SharePoint.SPQuery
        $userItemsQuery.Query = $query
        $userItemsQuery.ViewAttributes = 'Scope="Recursive"'
        $userItems = $list.GetItems($userItemsQuery)
        #Write-Host "Numer of items found: " $userItems.Count
        foreach($item in $userItems)
        {
            #Write-Host $userFromAd.Name
            if([string]::IsNullOrEmpty($userFromAd.Name)){
                $output = "Person not in AD, file will be deleted:"+ $item.File.Name 
                write-output $output | add-content D:\Installers\PictureDB\R 1.0\Scripts\Add-ArtifactsToWeb\usernotinAD.txt
            }

1 个答案:

答案 0 :(得分:2)

您的路径中有空间,PS无法拾取它。同样,写输出将直接在终端中显示输出,并且不会将其传递给管道对象。我已经对其进行了相应的修改。由于您仅在输出的问题上遇到问题,因此我不会讨论您汇总的逻辑。

更改此内容:

write-output $output | add-content D:\Installers\PictureDB\R 1.0\Scripts\Add-ArtifactsToWeb\usernotinAD.txt

收件人:

$output | add-content "D:\Installers\PictureDB\R 1.0\Scripts\Add-ArtifactsToWeb\usernotinAD.txt" -Force

希望有帮助。