检查用户是否具有读/写权限

Sky*_*rdw 2 windows powershell file-permissions

我给了用户域\名称,密码和路径,我想显示给定用户是否在给定目录中具有写入和/或读取访问权限.

大概的概念:

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\'
Run Code Online (Sandbox Code Playgroud)

我尝试过powershell.exe不同的用户运行:

Start-Process powershell.exe -Credential "TestDomain\Me"
Run Code Online (Sandbox Code Playgroud)

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

HAL*_*256 6

查看谁有效访问文件夹的简便方法(PowerShellAccessControl Module 3.0/4.0

一些代码如:

Get-Item $directory | Get-EffectiveAccess -Principal $UserName
Run Code Online (Sandbox Code Playgroud)

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

Get-ACL $Directory
Run Code Online (Sandbox Code Playgroud)

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