我正在尝试生成带有输出的文本文件,我需要为每个语句构建一个,但出现此错误:
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
}
答案 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
希望有帮助。