6

因此,回顾一下情况:我在一台计算机上尝试使用 运行 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

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

New-PSDrive : A specified logon session does not exist. It may already have
been terminated

我确实看过这个:PowerShell 2.0: Accessing Windows Shares during a Remote Session但无法让它工作。另外我不知道如何在上面的脚本中设计它(它将在多台计算机上运行)。有什么更新的吗?我正在使用 v3 powershell。非常感谢!

4

1 回答 1

4

从表面上看,您似乎正在经历可怕的“双跳”。如果您只远程控制几台计算机,则很容易为“双跳”设置“修复”。在要远程访问的计算机上,您需要运行以下命令:

Enable-PSRemoting

Enable-WSManCredSSP Server

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

Enable-WSManCredSSP Client –DelegateComputer [<FQDN of the server>][*]

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

现在你将如何把它变成一个脚本?有一个命令叫Invoke-Command. 如果您查看 的参数Get-Help Invoke-Command -Parameter *,您会发现它需要一个Credential和一个Authentication。这是在多台计算机上运行命令的方法。

$MyCred = Get-Credential
Invoke-Command -ComputerName Computer1,Computer2 -Credential $MyCred -Authentication Credssp -ScriptBlock {Get-ChildItem $args[0]} -ArgumentList '\\Server\Share' -ErrorAction SilentlyContinue

现在,如果您要在多台机器上进行远程处理,并且您知道如何使用组策略。我建议设置PSRemoting 并使用 Group Policy 启用 WSManCred

于 2013-09-11T19:19:36.377 回答