vNext解决非域计算机上的第二跳问题

时间:2019-10-25 22:29:40

标签: powershell powershell-remoting

我已经问过Microsoft开发者社区这个问题,但是我没有取得太大的成功。

我正在尝试使用vNext构建定义创建一些自动化测试,在该定义中,将构建代理RemotePSSession插入非域虚拟机(测试计算机)并运行可以接受多个参数的批处理文件。该批处理文件可以读取(安装程序文件)或写入(报告)域中的网络共享。我遇到的问题是第二跳问题。这是一篇有关它的文章:https://blogs.technet.microsoft.com/ashleymcglone/2016/08/30/powershell-remoting-kerberos-double-hop-solved-securely/

在我的实例中,PowerShell远程会话无法通过我们先前在测试计算机中进行身份验证的凭据来访问网络共享的资源。我们尝试在代理和测试计算机上都使用CredSSP身份验证来启用访问,但这失败了。网络使用和调用域资源的其他命令也失败了。我们甚至尝试修改目标计算机上的自定义任务PowerShell任务,但运气不佳。

我们发现,无法使用具有以下拓扑的RemotePSSession访问域网络共享:服务器A(位于域或工作组中)⇒RemotePSSession + CredSSP进入服务器B(非-域),使用本地admin服务器B帐户⇒调用网络共享,并使用某个域帐户使用网络使用。

第二跳似乎仅适用于加入域的计算机(我们也在使用CredSSP对其进行测试)。

让我们知道是否存在可以实施的解决方案或解决方法。

他们的答复是>> 如果您可以确保该方法正确并且问题是由DevOps引起的,我们将很乐意为您解决有关DevOps的问题。以下一些文档可能会有所帮助:https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ps-remoting-second-hop?view=powershell-6

我以前看过本文档,但收效甚微,其他人有什么建议吗?

这是一个代码段:

#serverA - local machine
#serverB - $remoteServer
#serverC - DFS namespace server

$session = New-PSSession -ComputerName $remoteServer -Credential $credential -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck) -Authentication Credssp

$scriptBlock_runFile = {
    #Scenario 0 which works:
    #ipconfig

    #Scenario 1 which doesn't work:
    #& dir \\contoso.com\departments\folder"

    #Scenario 2 which doesn't work:
    #& net use x: \\contoso.com\departments\folder /user:CONTOSO\user "password"
}

Invoke-Command -Session $session -ScriptBlock $scriptBlock_runFile

0 个答案:

没有答案