我使用Powershell提取有关用户帐户的数据,其中一些数据包含有关用户主文件夹的详细信息。
我一直在对文件夹使用get-item来获取ACL,以确保用户可以正确访问其主文件夹。 我的代码示例是:
((get-item C:\exampleFolder).GetAccessControl('access')).Access
这为我提供了我需要的列表,并且效果很好。但是,如果用户的用户名更改了,即使查看文件夹的属性几乎立即即可反映出更改,Powershell仍需要一些时间(例如5至10分钟)才能看到更改。
我只是在查看是否有更好的方法来提取ACL数据,以便在文件夹属性页面中看到的内容就是Powershell所得到的。
对我来说,真的是第一世界问题,只是试图使我的代码更有效率。
编辑:这是通过Active Directory在域中更改用户名,而不是在本地计算机上更改用户名。
答案 0 :(得分:0)
有一个Get-ACL Cmdlet。这将输出一个具有Access属性的对象,该对象列出了所有具有Access及其访问级别的用户。
如果愿意,可以使用此函数来获取更明确的数据,如下所示:
gcc ``gnustep-config --objc-flags --gui-libs`` -o main main.m -L /usr/include/GNUstep/ -lobjc -lgnustep-base -lgnustep-gui
您可以轻松地将其传输到 function Get-Permissions ($folder) {
(get-acl $folder).access | select `
@{Label="Identity";Expression={$_.IdentityReference}}, `
@{Label="Right";Expression={$_.FileSystemRights}}, `
@{Label="Access";Expression={$_.AccessControlType}}, `
@{Label="Inherited";Expression={$_.IsInherited}}, `
@{Label="Inheritance Flags";Expression={$_.InheritanceFlags}}, `
@{Label="Propagation Flags";Expression={$_.PropagationFlags}}
}
上,也可以通过视觉方式消耗您的输出。