Powershell:从远程服务器访问共享驱动器

时间:2015-05-08 11:32:14

标签: powershell

我正在尝试在我的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

2 个答案:

答案 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

http://blogs.technet.com/b/heyscriptingguy/archive/2012/11/14/enable-powershell-quot-second-hop-quot-functionality-with-credssp.aspx