远程 Powershell:从远程计算机检查时,映射的网络设备显示状态不可用
Remote Powershell: Mappped Network device shows status unavailable when checked from remote machine
我使用 运行 这些 PowerShell 命令的机器是 Ubuntu 18.04 机器,但是当 运行 来自另一台 windows 机器时,这种行为仍然存在。
我试图通过 Invoke-Command cmdlet 远程执行命令以将文件从 C:\ 复制到映射的网络设备 \\name\share\,但我不断收到此错误:
PS /home/appadmin> Invoke-Command -ComputerName x.x.x.x -ScriptBlock {Copy-Item -Path C:\Directory -Destination \name\share\ -Recurse -Force} -Credential $cred -Authentication Negotiate
The path is not of a legal form.
+ CategoryInfo : InvalidArgument: (\name\share\:String) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.CopyItemCommand
+ PSComputerName : x.x.x.x
The handle is invalid.
+ CategoryInfo : WriteError: (File.vhdx:FileInfo) [Copy-Item], IOException
+ FullyQualifiedErrorId : CopyDirectoryInfoItemIOError,Microsoft.PowerShell.Commands.CopyItemCommand
+ PSComputerName : x.x.x.x
PS /home/username>
但是 windows 主机本身的相同复制(使用 Copy-Item 命令)是成功的。
然后进一步调试,得知远程Ubuntu机器的网络设备状态为不可用
PS /home/username> Invoke-Command -ComputerName x.x.x.x -ScriptBlock { net use } -Credential $cred -Authentication Negotiate
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable Y: \name\share Microsoft Windows Network
The command completed successfully.
PS /home/appadmin>
但是 windows 主机本身的网络设备状态显示 OK
PS C:\Users\Administrator> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK Y: \name\share Microsoft Windows Network
The command completed successfully.
PS C:\Users\Administrator>
我已经看过网络设备的权限,那里没有问题。
而且这也不是双跳问题。
我应该怎么做才能使远程机器的网络设备状态为OK,以便我可以访问映射的网络设备\name\share?
任何帮助表示赞赏
您 运行 遇到了 here 描述的双跳问题。当您在远程计算机上执行 运行 命令时,它需要凭据才能连接到 Copy-Item
命令中的 -Destination
共享。远程 PowerShell 会话没有您用于通过 Invoke-Command
创建第一个远程连接的身份副本,因此您基本上没有 -Destination
远程共享的权限。
记录了多种解决方法here
不知道有没有人遇到过这个问题。但经过大量搜索后,在我给出完全限定域名 (FQDN)“\\name.name2.local\share\”而不是“\\name\share\”后终于解决了这个问题。
远程 Powershell 命令似乎喜欢使用 FQDN,否则它将无法按要求工作。
希望这有帮助
我使用 运行 这些 PowerShell 命令的机器是 Ubuntu 18.04 机器,但是当 运行 来自另一台 windows 机器时,这种行为仍然存在。 我试图通过 Invoke-Command cmdlet 远程执行命令以将文件从 C:\ 复制到映射的网络设备 \\name\share\,但我不断收到此错误:
PS /home/appadmin> Invoke-Command -ComputerName x.x.x.x -ScriptBlock {Copy-Item -Path C:\Directory -Destination \name\share\ -Recurse -Force} -Credential $cred -Authentication Negotiate
The path is not of a legal form.
+ CategoryInfo : InvalidArgument: (\name\share\:String) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.CopyItemCommand
+ PSComputerName : x.x.x.x
The handle is invalid.
+ CategoryInfo : WriteError: (File.vhdx:FileInfo) [Copy-Item], IOException
+ FullyQualifiedErrorId : CopyDirectoryInfoItemIOError,Microsoft.PowerShell.Commands.CopyItemCommand
+ PSComputerName : x.x.x.x
PS /home/username>
但是 windows 主机本身的相同复制(使用 Copy-Item 命令)是成功的。
然后进一步调试,得知远程Ubuntu机器的网络设备状态为不可用
PS /home/username> Invoke-Command -ComputerName x.x.x.x -ScriptBlock { net use } -Credential $cred -Authentication Negotiate
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable Y: \name\share Microsoft Windows Network
The command completed successfully.
PS /home/appadmin>
但是 windows 主机本身的网络设备状态显示 OK
PS C:\Users\Administrator> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK Y: \name\share Microsoft Windows Network
The command completed successfully.
PS C:\Users\Administrator>
我已经看过网络设备的权限,那里没有问题。 而且这也不是双跳问题。
我应该怎么做才能使远程机器的网络设备状态为OK,以便我可以访问映射的网络设备\name\share? 任何帮助表示赞赏
您 运行 遇到了 here 描述的双跳问题。当您在远程计算机上执行 运行 命令时,它需要凭据才能连接到 Copy-Item
命令中的 -Destination
共享。远程 PowerShell 会话没有您用于通过 Invoke-Command
创建第一个远程连接的身份副本,因此您基本上没有 -Destination
远程共享的权限。
记录了多种解决方法here
不知道有没有人遇到过这个问题。但经过大量搜索后,在我给出完全限定域名 (FQDN)“\\name.name2.local\share\”而不是“\\name\share\”后终于解决了这个问题。 远程 Powershell 命令似乎喜欢使用 FQDN,否则它将无法按要求工作。 希望这有帮助