New-PsDrive 从 DFS 共享进行远程复制错误:指定的登录会话不存在

1Bi*_*ars 6 powershell dictionary drive

因此,回顾一下情况:我在一台计算机上尝试使用运行 powershell enter-pssession computername,然后从远程会话运行以下逻辑:

$DFSPath = "\\DFSpath.com"
$RDL1 = [char](1+[char](gdr ?)[-1].name)
New-PSDrive -Name $RDL1 -PSProvider FileSystem -Root $DFSPath -Persist -credential domain\UN
Run Code Online (Sandbox Code Playgroud)

get-variable 正确显示变量。但是当我尝试使用 创建时New-PSDrive,它给出:

New-PSDrive : A specified logon session does not exist. It may already have
been terminated
Run Code Online (Sandbox Code Playgroud)

我确实看过这个:PowerShell 2.0:在远程会话期间访问Windows共享,但无法让它工作。另外,我不知道如何在上面的脚本中设计它(它将在多台计算机上运行)。有更新的吗?我正在使用 v3 powershell。非常感谢!

E.V*_*.L. 5

从表面上看,你似乎正在经历可怕的“双跳”。如果您只想远程到几台计算机,那么为“双跳”设置“修复”非常容易。在要远程连接的计算机上,您需要运行以下命令:

\n\n
Enable-PSRemoting\n\nEnable-WSManCredSSP Server\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在您想要远程的计算机上运行以下命令:

\n\n
Enable-WSManCredSSP Client \xe2\x80\x93DelegateComputer [<FQDN of the server>][*]\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以用 * 代替完全限定的域名。这将允许您将凭据发送到任何计算机(这可能很危险)。

\n\n

现在您将如何将其写入脚本中?有一个命令叫做Invoke-Command. 如果您查看 的参数Get-Help Invoke-Command -Parameter *,您会发现它需要CredentialAuthentication。以下是在多台计算机上运行命令的方法。

\n\n
$MyCred = Get-Credential\nInvoke-Command -ComputerName Computer1,Computer2 -Credential $MyCred -Authentication Credssp -ScriptBlock {Get-ChildItem $args[0]} -ArgumentList \'\\\\Server\\Share\' -ErrorAction SilentlyContinue\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,如果您将远程连接到许多计算机,并且您知道如何使用组策略。我建议使用组策略设置 PSRemoting 并启用 WSManCred

\n