检查用户是否有 Read/Write 权限

Check if user has Read/Write permissions

我得到了用户 domain\name、密码和路径,我想显示给定用户是否在给定目录中具有写入 or/and 读取权限。

总体思路:

function Has-Read-Access {
    param(
        [Parameter(Mandatory=$true)][string]$userLogin
        [Parameter(Mandatory=$true)][string]$userPwd
        [Parameter(Mandatory=$true)][string]$directory
    )
    $hasReadAccess = 0
    #insert magic here
    return $hasReadAccess
}

Has-Read-Access -userLogin 'DOMAIN\user' -userPwd 'Passw0rd' -directory 'C:\FolderName\'

我已经尝试 运行 另一个用户的 powershell.exe

Start-Process powershell.exe -Credential "TestDomain\Me"

但这似乎是一种错误的做法。

查看谁对文件夹使用 有效 的简单方法 (PowerShellAccessControl Module 3.0/4.0

一些代码如:

Get-Item $directory | Get-EffectiveAccess -Principal $UserName

要获取有权访问文件夹的用户列表,请使用 Get-ACL (TechNet Article)

Get-ACL $Directory

注意:您无需知道某人的密码即可获得他们的访问权限。