我正在尝试在我的Powershell脚本中访问共享驱动器vai远程服务器。我的代码如下:
$bypass1 = "config"
$bypass2 = "web.config"
$Username = "test\newtest"
$Password = "xxxxxxxxx"
$srv = "xxx.xxx.xxx.xxx"
$securePassword = ConvertTo-SecureString -AsPlainText -Force $Password
$cred = New-Object System.Management.Automation.PSCredential $Username, $securePassword
$session = New-PSSession -ComputerName $srv -port 22 -Credential $cred
Invoke-Command -Session $session -ScriptBlock {
$computer = "xxx.xxx.xxx.xxx"
test-path \\$computer\netlog\php
Get-ChildItem \\$computer\netlog\
}
Remove-PSSession -Session $session
当我尝试从服务器上的远程桌面连接访问共享时,它正在运行,但是通过powershell,它会引发以下错误。
False
Cannot find path '\\xxx.xxx.xxx.xxx\netlog\' because it does not exist.
+ CategoryInfo : ObjectNotFound: (\\xxx.xxx.xxx.xxx\netlog\:String) [Get-Ch
ildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCom
mand
+ PSComputerName : xxx.xxx.xxx.xxx
我有Powershell 4,远程服务器是Windows 2008 R2。
此致 VJ
答案 0 :(得分:2)
您是否尝试在本地访问以下路径\\xxx.xxx.xxx.xxx\netlog\
?您有信心访问服务器。而且你也说驱动器是共享的。尝试在本地访问路径。不是通过power-shell。但尝试老式的方式。使用Run
。如果系统提示您输入任何凭据。您可以删除与权限相关的任何问题。如果不是......您尝试访问的文件夹根本没有共享。尝试给它所需的权限。如果不是这样,请发表评论。
答案 1 :(得分:1)
从远程计算机访问共享并使用CredSSP时,可能需要启用Multihop Remoting。
默认情况下,用于创建远程会话的凭据不会传递给共享访问操作。我想每个人都至少遇到过这个问题一次。 :)
http://blogs.technet.com/b/heyscriptingguy/archive/2013/04/04/enabling-multihop-remoting.aspx