【问题标题】:Append data to a CSV file on an FTP server using PowerShell使用 PowerShell 将数据附加到 FTP 服务器上的 CSV 文件
【发布时间】:2020-11-10 05:51:15
【问题描述】:

我正在尝试使用 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 来执行此任务。

感谢任何建议。提前谢谢你。

【问题讨论】:

    标签: powershell csv ftp append webclient


    【解决方案1】:

    WebClient 不可能。但可以使用FtpWebRequestWebRequestMethods.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()
    

    【讨论】:

    • 谢谢,这正是我所需要的。一切正常。
    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多