我是PowerShell的新手,遇到了问题.
我想做以下事情:
获取与运行PowerShell窗口的服务器不同的服务器上的单个文件夹上的权限/用户列表.
当前命令失败:
Get-acl -path "\\servername\folder"
Run Code Online (Sandbox Code Playgroud)
错误信息:
Get-acl:找不到路径'\\ servername\folder',因为它不存在
此命令仅适用于本地计算机吗?
事实证明,在我的环境中设置权限/身份验证的方式阻止了我的代码工作.
以下是我验证是否可以连接到服务器的步骤:
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中的另一个服务器/共享的任何复制命令都不起作用.
本文解释身份验证/权限比我能更好:
第二种方法是使用更少的代码执行此操作,而不必使用用户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,有很多方法可以做一件事...我认为这种方式最好/最简单!谢谢!
| 归档时间: |
|
| 查看次数: |
68371 次 |
| 最近记录: |