使用 PowerShell 将数据附加到 FTP 服务器上的 CSV 文件

Append data to a CSV file on an FTP server using PowerShell

我正在尝试使用 PowerShell 将数据附加到 FTP 服务器上的 CSV 文件。 目前我的脚本工作正常,但它正在覆盖数据。

这是我的代码的主要部分:

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass) 

$UserInfo = [pscustomobject]@{
    UserName = $env:UserName
    ComputerName = $env:computername
}
    
$contents =
   (($UserInfo | ConvertTo-Csv -NoTypeInformation) -join [Environment]::NewLine) + 
   [Environment]::NewLine
$webclient.UploadString(($ftp + "/Installed.csv"), $contents)

理想情况下,我想在没有任何本机插件或库的情况下执行此操作。我唯一能想到的另一件事是使用 get-content 之类的东西从文件中获取当前数据,然后新数据将是 getcontent myfile.csv + 来自 $UserInfo

的新数据

基本上,我是通过组策略安装 VPN,并想记录谁成功安装了客户端。不幸的是,我们没有任何软件分发平台,所以我们正在尝试使用 GP 和 FTP 来执行此任务。

如有任何建议,我们将不胜感激。提前谢谢你。

WebClient 不可能。但是可以用 FtpWebRequest and WebRequestMethods.Ftp.AppendFile.

来完成
$request = [System.Net.WebRequest]::Create("ftp://example.com/remote/path/file.txt")
$request.Credentials = New-Object System.Net.NetworkCredential("username", "password")
$request.Method = [System.Net.WebRequestMethods+Ftp]::AppendFile 

$ftpStream = $request.GetRequestStream()

$writer = New-Object System.IO.StreamWriter($ftpStream)
$writer.Write($contents)
$writer.Close()

$ftpStream.Dispose()