使用用户名和密码将输出保存到远程服务器上的 txt 文件

Save output to txt file on remote server with user and password

连接到远程计算机并执行一些 powershell 作业后,我需要使用 powershell 将带有输出的文本文件保存到远程服务器。

我的文件名是根据计算机名称和日期创建的。

$filename = '' + $enddate + '' + $name + ''

输出为:

$output = "\10.0.50.8\Informatyka\Posnet_raporty"

有一个用户名和密码可以连接到文件夹 "Posnet_raporty"

$username = "user"
$password = "pass"

我使用 2 个函数来创建文件,并一直在尝试使用 NET USE 命令在远程计算机上创建光盘以将文件保存在那里,但失败了;/(已映射源来自这个地址,网络用户不喜欢它)

If ([int]$end1 -gt 30) {
    $end1, $end2 | Out-File Q:$filename'.txt'
}
else {
    $end1, $end2 | Out-File Q:\'@'$filename'.txt'
}

$end1的输出是一个数字(这不适用于问题,但我更愿意尽我所能)

编辑: net use 失败,无法使用已映射到计算机上的同一源。 PSDrive 只能在 PowerShell 会话中访问。

我不太清楚您要做什么,但如果您想映射到特定的远程文件夹,您可能需要使用 PSDrive。这些类似于传统的映射驱动器,但默认情况下只能在您的 PowerShell 会话中访问。你可以这样创建一个:

$userName = "domain\user"
$password = "Password"

$secPassword = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($userName, $secPassword)

New-PSDrive -Name Q `
            -PSProvider FileSystem `
            -Credential $cred `
            -Root \ServerName\Share\Folder1\Folder2

凭据是可选的 - 如果当前用户已经有权访问该位置,映射将正常工作。

然后您可以像使用任何其他驱动器一样使用它:

Get-ChildItem Q: -File -Recurse

之后断开连接,方法是:

Remove-PSDrive -Name Q