top of page

Sage 100 Ordner-Berechtigungen (Ntfs) prüfen / Check directory permissions (Ntfs)

(alle Versionen/all versions)

Mittwoch, 25. Oktober 2023

Deutsch

Powershell Script für Prüfung der Rechte

Powershell Script für Übernehmen von Basis-Ordner-Rechten auf alle untergeordneten Elemente

Weitere wichtige Ordner

Microsoft Tool "AccessEnum"



Deutsch


Powershell Script für Prüfung der Rechte

Mit nachfolgendem Powershell Script können die NTFS Rechte auf das Sage Installationsverzeichnis ausgewertet werde

Man speichert das Script in einem Ordner z.B. als "PowershellRights.ps1" und startet dann die PowerShell im Administrator-Modus.


Dann das Script aufrufen. Das Script erzeugt die Datei "C:\Permissions_Ntfs_Sage100.csv" mit den entsprechenden Informationen.


Script:


$OutFile = "C:\Permissions_Ntfs_Sage100.csv"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags"
Del $OutFile
Add-Content -Value $Header -Path $OutFile 

$RootPath = "c:\Program Files (x86)\Sage\"

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}

foreach ($Folder in $Folders){
	$ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access  }
	Foreach ($ACL in $ACLs){
	$OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference  + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags
	Add-Content -Value $OutInfo -Path $OutFile
	}}

Powershell Script für Übernehmen von Basis-Ordner-Rechten auf alle untergeordneten Elemente

Mit nachfolgendem Powershell Script können die NTFS Rechte , die auf einem Haupt-Ordner gesetzt sind , vollautomatisch rekursiv auf alle untergeordneten Verzeichnisse und Dateien übertragen werden.

Dies ist besonders nützlich , da somit lediglich auf einem übergeordneten Ordner alles eingestellt werden muss.

Das Script protokolliert alle Probleme in einer Textdatei.

Vorbereitet ist das Script für den Roaming-Ordner eines Users , in dem Fall Username "SAG". Dieser Roaming-Ordner macht regelmäßig in der Sage 100 Probleme , wenn die Rechte für einen Benutzer nicht vorliegen.

# This script applies all rights of a main folder to all children in the folder recursively. All errors are reported into a log file.
# Just set the rights you need on the main level , like on the folder "C:\Users\SAG\AppData\Roaming" , for all required users.
# Then execute this script with admin rights!

param (
  [string]$TargetPath = "C:\Users\SAG\AppData\Roaming",   
  [string]$LogFile = "C:\SAGRights_problems.txt"
)

if (Test-Path -LiteralPath $LogFile) {
  Clear-Content -LiteralPath $LogFile -ErrorAction SilentlyContinue
}

$items = Get-ChildItem -LiteralPath $TargetPath -Recurse -Force

foreach ($item in $items) {

  try {

    $acl = Get-Acl -LiteralPath $item.FullName -ErrorAction Stop

    $acl.SetAccessRuleProtection($false, $false)

    $explicitRules = $acl.Access | Where-Object { $_.IsInherited -eq $false }

    foreach ($rule in $explicitRules) {
      $acl.RemoveAccessRule($rule) | Out-Null
    }

    Set-Acl -LiteralPath $item.FullName -AclObject $acl -ErrorAction Stop

  }
  catch {

    $errorMessage = "Failed to update rights for: '$($item.FullName)' - Error: $($_.Exception.Message)"

    Add-Content -LiteralPath $LogFile -Value $errorMessage

  }
}

Write-Host "Process completed. Please check $LogFile for any errors."

Weitere wichtige Ordner

Es sollte beachtet werden , dass der im Script genannte Ordner lediglich einer der wichtigsten Ordner der Sage Installation ist.

Es gibt jedoch noch jede Menge weitere Ordner , die man ebenfalls prüfen sollte.



Microsoft Tool "AccessEnum"


Alternativ kann man das Microsoft Tool "AccessEnum" aus den "Sysinternals" verwenden.











bottom of page