这个脚本的目的是让应用程序的权限更容易一个新的服务器。 目前没有这样做:(
出于某种原因,在我的Win 8机器上工作得很好。 当我在目标机器上运行一个2008 R2服务器时,它只是挂在第一个目录上。
不知道PS版本之间的v3和V4之间太重要了 – 脚本是相当简单的: – Windows Server 2008 R2的框是PowerShell的V3 – Windows 8的框是PowerShell的V4
任何人都知道这可能是为什么?
$csvFile = Read-Host "path to the CSV file with permissions" $csv = Import-Csv $csvFile Write-Host "Imported CSV File" function applyPermissions { Param( [string]$Permission, [string]$Group, [string]$Dir, [bool]$Enclosed ) if ($Enclosed) { $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($Group,$Permission,"ObjectInherit, ContainerInherit","None","Allow") $Dir = $Dir.Replace("\*","") $acl = Get-Acl $Dir $acl.SetAccessRule($rule) Set-Acl $Dir $acl } else { $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($Group,$Permission,"ObjectInherit","NoPropagateInherit","Allow") $acl = Get-Acl $Dir $acl.SetAccessRule($rule) Set-Acl $Dir $acl } } foreach ($r in $csv) { Write-Host "Processing: $r" $perm = $r.Permission $grp = $r.Group $dr = $r.Path # enclosed needs to apply recursively $enc = $false if($dr -match "\*") { $enc = $true } else { $enc = $false } if ($perm -eq "ReadWrite") { applyPermissions -Permission "ReadAndExecute, Write" -Group $grp -Dir $dr -Enclosed $enc } else { applyPermissions -Permission $perm -Group $grp -Dir $dr -Enclosed $enc } }
编辑:
在ISE中添加一些断点后,我可以看到它在applyPermissions函数中的Set-Acl部分被捕获
eventvwr中似乎没有任何与此命令挂在任何PowerShell问题/原因有关的输出