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

标签 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\'

我试过由不同的用户运行 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

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

关于windows - 检查用户是否有读/写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34859477/

相关文章:

java - Jar 可在 Windows 中运行,但不能在 Linux 中运行

windows - 如何在iis中添加新的应用程序映射

regex - 仅将文件的基本名称(不带扩展名的文件)与正则表达式匹配

Linux - 不同组对文件的权限

linux - 如何让 Gradle 停止在 NTFS 驱动器上尝试 chmod MANIFEST.MF

windows - Delphi:系统菜单打开了吗?

windows - VBScript - 相对路径不起作用

sql-server - 如何安装 SQL ASCMDLETS 模块?

visual-studio-2010 - nUnit 测试寻找 {assembly-name}.dll.config

security - 我是否错误地使用了 SetNamedSecurityInfo?我的文件的 ACL 似乎没有被正确修改