电源外壳输出到共享



我正在编写一个脚本,该脚本将在多个服务器上测试路径,结果应存储在共享驱动器上的文本文件中。

我的问题是,当启动目标服务器的遥控器时,他们无法访问文本文件。

使用相同的凭据登录到服务器时,脚本工作正常。

错误消息是:

访问被拒绝 + 类别信息: 权限被拒绝: (\\服务器\文件夹\结果\结果.txt:字符串( [添加内容], UnauthorizedAccessException

脚本本身:

Invoke-Command -ComputerName $server -ScriptBlock {
$Location = "\serverfolderresultresult.txt"
$path = Get-ChildItem -Path "C:Program Files*StartUpTool.exe" -Recurse -Force | %{$_.FullName}
$serv = $env:COMPUTERNAME
Out-File -FilePath $Location -Encoding unicode -InputObject $serv -Append
Add-Content -Path $Location -Value  $path -Encoding Unicode
}

如果您知道可以访问执行 Invoke-Command 的计算机上的共享,则解决方法如下:

$output = Invoke-Command -ComputerName $server -ScriptBlock {
[pscustomobject]@{
path = (Get-ChildItem -Path 'C:Program Files*StartUpTool.exe' -Recurse -Force | ForEach-Object {$_.FullName})
serv = $env:COMPUTERNAME
}
}
$Location = '\serverfolderresultresult.txt'
Out-File -FilePath $Location -Encoding Unicode -InputObject $output.serv -Append
Add-Content -Path $Location -Value $output.path -Encoding Unicode

基本上,我们所做的只是从远程服务器输出一个对象到$output,其中包含您正在收集的所有信息。然后,我们使用所述对象写入共享。

很难说这是否会完全按照您想要的方式工作 - 但您需要以这种方式解决问题以绕过双跳问题。

相关内容

最新更新