如何列出位于其他服务器上的文件夹权限

Cof*_*der 4 powershell acl

我是PowerShell的新手,遇到了问题.

我想做以下事情:

获取与运行PowerShell窗口的服务器不同的服务器上的单个文件夹上的权限/用户列表.

当前命令失败:

Get-acl -path "\\servername\folder" 
Run Code Online (Sandbox Code Playgroud)

错误信息:

Get-acl:找不到路径'\\ servername\folder',因为它不存在

此命令仅适用于本地计算机吗?

Cof*_*der 5

事实证明,在我的环境中设置权限/身份验证的方式阻止了我的代码工作.

以下是我验证是否可以连接到服务器的步骤:

Test-Path \\server\folder
Run Code Online (Sandbox Code Playgroud)

这返回"False",这就是我的代码破坏的原因.我使用的工作是这样的:

#Step 1: remotely connect to server
Enter-PSSession -ComputerName servernamegoeshere

#Step 2: get list of permissions on folder and save to csv
get-acl E:\foldernamehere | 
select -expand access |
export-csv C:\Users\usernamegoeshere\Documents\listofperms.csv |
#Step 3: close remote connection
Exit-PSSession
Run Code Online (Sandbox Code Playgroud)

我仍然需要远程进入服务器并将csv复制到我想要的位置,因为再次,由于权限/身份验证问题,对PowerShell中的另一个服务器/共享的任何复制命令都不起作用.

本文解释身份验证/权限比我能更好:

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


第二种方法是使用更少的代码执行此操作,而不必使用用户Ansgar Wiechers创建远程会话:

Invoke-Command -Computer server -ScriptBlock {get-acl E:\folder | 
select -expand access } |
export-csv \\server\folder\accesslist.csv 
Run Code Online (Sandbox Code Playgroud)

使用PowerShell,有很多方法可以做一件事...我认为这种方式最好/最简单!谢谢!