powershell 这个powershell脚本从顶级目录获取ACl,然后将其与所有子目录和输出的ACL进行比较。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell 这个powershell脚本从顶级目录获取ACl,然后将其与所有子目录和输出的ACL进行比较。相关的知识,希望对你有一定的参考价值。

#Set variables
$path = "D:\cin-shares\IT"
$Resultsfilename = "D:\Installs\results.txt"
$date = Get-Date

#Place Headers on out-put file
$list = "Permissions for directories in: $Path"
$list | format-table | Out-File $Resultsfilename
$datelist = "Report Run Time: $date"
$datelist | format-table | Out-File -append $Resultsfilename
$spacelist = " "
$spacelist | format-table | Out-File -append $Resultsfilename

#get the master file
$path | format-table | Out-File -append $Resultsfilename
Get-Acl -path $path | Format-List -property AccessToString | Out-File -append $Resultsfilename

$acl = Get-Acl -path $path
$acx = @()
ForEach ($ac in $acl.Access)
{
	$acx += $ac.IdentityReference.Value
}
#Populate Folders Array
$folders = Get-ChildItem -path $path -force -recurse | Where {$_.PSIsContainer}

#Process data in array
ForEach ($folder in $folders)
{
	try{
		#Convert Powershell Provider Folder Path to standard folder path
		$PSPath = (Convert-Path $folder.pspath)
		$list = ("Path: $PSPath")

		$aclF = Get-Acl -path $PSPath
		$intFound = 0
		ForEach ($acF in $aclF.Access)
		{
			if($acx -notcontains $acf.IdentityReference.Value){
				$intFound = 1
				$PSPath | Out-File -append $Resultsfilename
				$acf.IdentityReference.Value | Out-File -append $Resultsfilename 
				$acf.FileSystemRights | Out-File -append $Resultsfilename
			}
		}
		if($intFound -eq 1){
			Get-Acl -path $PSPath | Format-List -property AccessToString | Out-File -append $Resultsfilename
			"-----------------------------------------------------" | Out-File -append $Resultsfilename
		} 
	}#end try
	catch{
		$folder.FullName
	}
} #end ForEach

以上是关于powershell 这个powershell脚本从顶级目录获取ACl,然后将其与所有子目录和输出的ACL进行比较。的主要内容,如果未能解决你的问题,请参考以下文章

powershell 这个powershell脚本从顶级目录获取ACl,然后将其与所有子目录和输出的ACL进行比较。

可以在这个 PowerShell 脚本中使用正则表达式吗?

为啥 PowerShell 不处理这个 $?正确退出代码?

windows主机开启winrm端口powershell脚本

windows主机开启winrm端口powershell脚本

查看隐藏的powershell /即窗口