繁体   English   中英

Powershell调用命令多跳

[英]Powershell invoke-command multihopping


我对Windows环境中的多跳有疑问。
假设我有一个在服务器A上运行的调度程序(中央调度程序),该调度程序在服务器B上执行命令。此脚本包含一个调用,用于将文件保存在远程文件管理器(UNC路径,服务器C)上。 跃点1(从A到B)运作良好,跃点2(从B到C)失败。 我已经测试过将文件本地保存在服务器B上,可以正常工作。 我认为第二跳存在问题。 我记得前一阵子在论坛上读过类似的文章,但不记得有什么解决方法。
详细而言,命令如下所示:

$session = New-PSSession -computer ComputerName    
$templatepath = "\\filerpath\"
Invoke-Command -Session $session -Scriptblock { powershell ovpmutil cfg pol dnl $Using:templatepath /p \BSH }

需要说明的是:执行第二跳时,Powershell给我一个“访问被拒绝”的信息。 我已经启用凭据委派,如下所述: 启用多跳远程
任何帮助表示赞赏。
提前致谢

如果您问我,解决方案将给您带来巨大的痛苦,但这是...

在原始服务器(A)上:

Set-Item WSMAN:\localhost\client\auth\credssp -value $true

在中间服务器(B)上:

Set-Item WSMAN:\localhost\client\auth\credssp -value $true

打开服务器A上的组策略编辑器,导航至:

计算机配置>管理模板>系统>凭据委派

启用以下选项:

  • 允许委派新凭证
  • 允许通过仅NTLM服务器身份验证委派新凭据

这两个策略都需要将服务器B添加到允许列表中,并且允许使用通配符。 请注意,如果您使用服务器A的RDP,则还需要添加TERMSRV/*

从服务器A运行Invoke-Command时,请包含-Authentication CredSSP参数。

请注意,如果将SecureStrings保存在某个位置以用于凭证以连接到服务器C,则需要使用固定的加密(指定字节数组)或纯文本并将其转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM