"访问被拒绝" " New-Item"中的错误打电话给PS

时间:2017-02-24 12:55:46

标签: powershell

我正在尝试使用PowerShell在服务器上创建一个文件夹。脚本如下所示:

$pass = ConvertTo-SecureString "myPW" -AsPlainText -Force
$cred = new-object System.Management.Automation.PSCredential("myUser", $pass)
$session = New-PSSession -ComputerName "localhost" -Credential $cred
Invoke-Command -session $session -ScriptBlock {
        New-Item -Path "\\myServer\myShare\" -Name "myFolder" -ItemType directory -Force
    }

我收到以下错误:

Access is denied
    + CategoryInfo          : PermissionDenied: (\\myServer\myShare:String) [New-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand
    + PSComputerName        : localhost 

Access to the path 'myShare' is denied.
    + CategoryInfo          : PermissionDenied: (\\myServer\myShare:String) [New-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : CreateDirectoryUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand
    + PSComputerName        : localhost

Access to the path 'myFolder' is denied.
    + CategoryInfo          : PermissionDenied: (\\myServer\myShare\myFolder:String) [New-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : CreateDirectoryUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand
    + PSComputerName        : localhost

起初我认为该消息非常清楚,我使用的用户缺少权限。但事情就是这样:如果我在资源管理器中转到共享并使用同一个用户登录,我可以创建一个没有任何问题的文件夹。除此之外,用户是域管理员。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这是一个双跳,您正在连接到PSSession,然后尝试访问该文件夹。

作为安全措施,PowerShell不允许您远程连接到一台计算机,然后从那里远程连接到另一台计算机(即使其中两台是同一台计算机)。确切的推理是复杂的,并且在会话中如何使用凭证,我自己并不完全理解,所以我不会尝试解释,但基本上是为了防止凭证被盗。

你可以对它进行一些阅读(this looks like a good resource)但是尝试找出另一种方法可能会更简单。您只是远程连接到本地计算机,因此您可以启动另一个PS进程。

答案 1 :(得分:0)

如果您只是使用PSSession替代凭据来访问共享,那么使用New-PSDrive可能是另一种方法:

$pass = ConvertTo-SecureString "myPW" -AsPlainText -Force
$cred = new-object System.Management.Automation.PSCredential("myUser", $pass)

New-PSDrive -Name myShare -PSProvider FileSystem -Root "\\myServer\myShare\" -Credential $cred
New-Item -Path "myShare:\" -Name "myFolder" -ItemType directory -Force