我需要验证以下文件共享是否存在,并且帐户具有如下特定的访问权限。
文件共享-ADMIN $,Abc_Projects2 $,Xyz_Projects $
SYSTEM和管理员必须具有完全访问权限, 用户必须具有读取权限,谢谢
例如:
Name ScopeName AccountName AccessControlType AccessRight
---- --------- ----------- ----------------- -----------
ADMIN$ * BUILTIN\Administrators Allow Full
ADMIN$ * SYSTEM Allow Full
ADMIN$ * Users Allow Read
我编写了以下代码以验证共享是否存在
$fileShares = @("ADMIN$", "Abc_Projects2$", "Xyz_Projects$")
function VerifyFileShares {
param (
[Parameter (Mandatory = $true)]$fileShares
)
ForEach ($fileShare in $fileShares) {
If (Get-SMBShare | Where-Object NAME -EQ $fileShare) {
"$fileShare is mapped"
}
else {
"$fileShare is not mapped"
}
}
}
VerifyFileShares -fileShares $fileShares
答案 0 :(得分:0)
您应该查看NTFS module,这很容易验证权限。一个简单的例子:
Get-NTFSAccess -Path <PathToShare> -Account <UserOrGroup>
这将输出如下内容:
Account Access Rights Applies to Type IsInherited InheritedFrom
------- ------------- ---------- ---- ----------- -------------
BUILTIN\Administrators FullControl ThisFolderSubfoldersAn... Allow True c:
NT AUTHORITY\SYSTEM FullControl ThisFolderSubfoldersAn... Allow True c:
当然,要在文件共享检查中嵌套等等需要一些工作。但是,有很多选择。
试一下,让我知道它的进展。