Powershell 附加到文件问题

Powershell 附加到文件问题,powershell,Powershell,我正在运行一个脚本,该脚本将计算机名附加到文件中,出于某种原因,它开始像这样附加计算机名: C O M p U T R 1 C O M p U T R 2 C O M p U T R 3 它过去没有像这样附加它们。脚本所做的是抓取我所有的工作站(不包括服务器),读取成功更改的计算机列表,将其用作对完整的工作站列表的筛选,在剩余的工作站上更改密码,将成功添加到成功更改的计算机列表中,最后,它将读取已成功更改的列表,将其用作工作站完整列表的过滤器,并写出剩余工作站的更新列表。它还用所有错误填充一个文

我正在运行一个脚本,该脚本将计算机名附加到文件中,出于某种原因,它开始像这样附加计算机名:

C O M p U T R 1

C O M p U T R 2

C O M p U T R 3

它过去没有像这样附加它们。脚本所做的是抓取我所有的工作站(不包括服务器),读取成功更改的计算机列表,将其用作对完整的工作站列表的筛选,在剩余的工作站上更改密码,将成功添加到成功更改的计算机列表中,最后,它将读取已成功更改的列表,将其用作工作站完整列表的过滤器,并写出剩余工作站的更新列表。它还用所有错误填充一个文件。唯一一个奇怪的是成功的追加。其他人都很好

这是我的剧本:

$time = [datetime]::Today.AddDays(-30)
$AllComputers = Get-adcomputer -filter "OperatingSystem -notlike '*server*'" -properties * |Where-Object {$_.LastLogonDate -gt $time -and ($_.Enabled -eq $true)} |Select -ExpandProperty Name

$PWChanged = @(Get-Content C:\Successful-Administrator.txt)
$RemainingUsers = $AllComputers | Where-Object { $PWChanged -notcontains $_ }

Foreach ($RemainingUser in $RemainingUsers){
Try {
$user = [adsi]"WinNT://$RemainingUser/Administrator,user"
$user.SetPassword("password")
$user.SetInfo()
Write-Host "$RemainingUser Administrator password reset"
$RemainingUser |Out-File C:\Successful-Administrator.txt -Append
}
Catch{
$ErrorMessage = $_.Exception.Message
Write-Host "$RemainingUser received error: $ErrorMessage"
$RemainingUser |Out-File C:\Errors-Administrator.txt -Append
#Write-Output "$computer received error: $ErrorMessage" +$Errors
}
}

$PWChanged = @(Get-Content C:\Successful-Administrator.txt)
$AllComputers | Where-Object { $PWChanged -notcontains $_ } |Out-File C:\Remaining-Administrator.txt

您需要添加编码来解决此问题


$RemainingUser | Out文件C:\Successful-Administrator.txt-Append-Encoding utf8

我尝试了前面的建议,添加了-Encoding utf8,它在我的文档中添加了奇怪的汉字,而不是计算机名,因此我尝试将行更改为:

Add-Content -path C:\Successful-Administrator.txt -Value $Remaininguser

这就成功了,它添加了没有空格的计算机名,并且添加正确,没有额外字符或其他奇怪之处。

您有3个输出文件,前两个使用
$RemainingUser | Out File
。您确定这两个文件中只有第一个显示“错误”吗?是的。我刚刚运行了脚本,它将计算机名和空格放在了成功的文件中,但没有放在错误文件中,我运行了另一个相同的脚本,其中我唯一更改的是更改密码的帐户,所有文件都正确地附加在该脚本上。arg!我没有主意了。。。我在您的代码中没有看到与差异相关的内容。我会回到潜伏。。。祝你好运[咧嘴笑]呵呵,看看下面的评论,我想可能就是这样。我现在正在阅读他提供的链接。你可以在这个问题的答案中添加你自己的答案。[grin]然后,您可以将您的
已接受的
更改为适合您的答案。这有什么作用?它使用窗帘字符集和布局保存文件。这篇博文详细解释了哇,那是。。。很多我从来不知道BOM和ASCII之类的东西。好消息,谢谢!我在结尾添加了语句,现在它添加了如下名称:䅃䡔剅义ⵅ則䡁਍䥒䭃䜭䅒䕃਍䅃卓乁剄ⵁ䅗協਍䅄䥖ⵄ䅒䥍ㅁ਍呓噅ⵅ䥈