### Change directory to Resources folder Source: https://help.migraven.com/installation-tbm-skripte/ Navigate to the migRaven Resources directory before unblocking files. ```powershell cd "C:\Program Files\migRavenDBServiceHost\Resources" ``` -------------------------------- ### Installation des migRavenDB – aikuxGraph Dienstes (bis inkl. Version 7.2.22207.1) Source: https://help.migraven.com/java-version-auf-migraven-server-updaten/ Installiert den migRavenDB – aikuxGraph Dienst wieder über die Windows Eingabeaufforderung. Gültig bis inklusive migRaven.24/7 Version 7.2.22207.1. ```bash "C:\Program Files\migRavenDB\bin\neo4j.bat" install-service ``` -------------------------------- ### Get-ExecutionPolicy -list Source: https://help.migraven.com/installation-tbm-skripte/ Verifiziert die aktuelle PowerShell Execution Policy auf dem migRaven Server. Zeigt die Richtlinien für alle Scopes an, um zu prüfen, ob LocalMachine undefined oder restricted ist. ```powershell Get-ExecutionPolicy -list ``` -------------------------------- ### Set-ExecutionPolicy -Scope LocalMachine unrestricted Source: https://help.migraven.com/installation-tbm-skripte/ Setzt die Execution Policy für LocalMachine auf unrestricted, falls sie undefined oder restricted ist. Muss in der PowerShell ISE ausgeführt werden, um Setup und operative Skripte ausführen zu können. ```powershell Set-ExecutionPolicy -Scope LocalMachine unrestricted ``` -------------------------------- ### Installation des Neo4j Graph Database – migRavenGraphDB Dienstes (ab inkl. Version 7.2.22271.1) Source: https://help.migraven.com/java-version-auf-migraven-server-updaten/ Installiert den Neo4j Graph Database – migRavenGraphDB Dienst wieder über die Windows Eingabeaufforderung. Gültig ab inklusive migRaven.24/7 Version 7.2.22271.1. ```bash "C:\Program Files\migRavenGraphDB\bin\neo4j.bat" install-service ``` -------------------------------- ### Unblock all files in Resources folder Source: https://help.migraven.com/installation-tbm-skripte/ Recursively unblocks all files in the current directory to remove the block that occurs when downloading files from external sources. ```powershell Get-ChildItem -recurse | Unblock-File ``` -------------------------------- ### Register SPN for Resource Scan Service Account Source: https://help.migraven.com/file-server-ressource-scan-service-remote/ Run this command as administrator on the target server where the service will be installed. It registers the service account as a Service Principal Name (SPN) for the remote scan server, which is required for Kerberos delegation. Replace the placeholders with your company-specific parameters. ```text setspn -s http/ ``` -------------------------------- ### Set excluded paths for resource scan (Cypher) Source: https://help.migraven.com/rn-version-7-2-22394-1/ Use this Cypher command in the Neo4j browser at http://localhost:7474 to set excluded paths for the migRavenResourceScanServiceHost. The paths are stored in the database and apply to the installed service. Note that path and directory names are case-sensitive. ```cypher match(n:Services) where n.type=“RES“ set n.excludedpaths=\[‚\\server.test.local\c$\temp\berlin‘,’\\server.test.local\c$\temp\hamburg‘\] return n ``` -------------------------------- ### Set excluded folders for resource scan (Cypher) Source: https://help.migraven.com/rn-version-7-2-22394-1/ Use this Cypher command in the Neo4j browser at http://localhost:7474 to set excluded folders for the migRavenResourceScanServiceHost. The folders are stored in the database and apply to the installed service. Note that path and directory names are case-sensitive. ```cypher match(n:Services) where n.type=“RES“ set n.excludedfolders=\[‚$recycle.bin‘,‘.snapshot‘,’system volume information‘,’~snapshot‘\] return n ``` -------------------------------- ### System herunterfahren bei Protokollierungsfehler deaktivieren Source: https://help.migraven.com/eventreader2/ Verhindern Sie, dass der Server heruntergefahren wird, wenn die Sicherheitsüberwachung nicht protokolliert werden kann. Diese Einstellung muss deaktiviert werden, um einen unerwarteten Ausfall zu vermeiden. Sie finden sie unter Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Sicherheitsoptionen. ```text Überwachung: System sofort herunterfahren, wenn Sicherheitsüberprüfungen nicht protokolliert werden können. - Deaktiviert Audit: Shut down system immediately if unable to log security audits. - Disabled ``` -------------------------------- ### Schritt 3: Neuen Explorer.exe über RunAs starten Source: https://help.migraven.com/howto-gruppenmitgliedschaften-eines-benutzer-in-windows-ohne-ab-anmelden-aktualisieren/ Starten Sie über den Task-Manager einen neuen Explorer.exe mit RunAs, um die neuen Gruppenmitgliedschaften zu aktivieren. Geben Sie das Passwort des Benutzers ein. ```text In dem geöffneten Task-Manager starten Sie über "Datei" -> "Neuen Task Ausführen" -> RunAs /user:MYDOMAIN\username explorer.exe [Enter drücken] [Passwort des Benutzers eingeben] [Enter drücken] Das Startmenü sollte jetzt wieder angezeigt werden, und dieser neue Explorer.exe wird sich der neuen Gruppenmitgliedschaft bewusst sein, so dass sie in Ordner gelangen können, die sie zuvor nicht konnten, da die Gruppenmitgliedschaftsinformationen nicht aktualisiert wurden :) Job erledigt! ``` -------------------------------- ### Überprüfen der Gruppenmitgliedschaften Source: https://help.migraven.com/howto-gruppenmitgliedschaften-eines-benutzer-in-windows-ohne-ab-anmelden-aktualisieren/ Führen Sie 'WhoAmI /groups' in einem neuen CMD-Fenster aus, um alle Gruppen des aktuellen Explorer-Prozesses anzuzeigen. Beachten Sie, dass bereits gestartete Anwendungen den neuen Token nicht nutzen können. ```text Starten Sie ein neues CMD Fenster und führen "WhoAmI /groups". In beiden Fällen werden Ihnen die jetzt alle Gruppen angezeigt, die der Token des aktuellen Explorer Prozesses enthalten. Wichtig: Applikationen, die schon vorher gestartet waren, können diesen Token nicht nutzen. Falls Word z.B. die Datei genau in dieses über die Gruppen neu berechtigte Verzeichnis legen abspeichern will, so wird das nicht funktionieren. In dem Fall muss Word neu gestartet werden. ``` -------------------------------- ### PowerShell: Alle Trustee-Daten aus XML-Dateien in eine Excel-Datei zusammenfassen Source: https://help.migraven.com/novell-trustee-database-xml-in-csv-konvertieren-migration-vorbereiten/ Dieses PowerShell-Skript liest alle XML-Dateien im übergeordneten Verzeichnis des Skripts (rekursiv) und schreibt alle Trustee-Informationen in ein einzelnes Excel-Arbeitsblatt. Es erstellt eine Excel-Datei mit Datum und Verzeichnisnamen im Dateinamen. Das Skript verarbeitet auch Dateien ohne Trustees und trägt dann nur Tiefe und Pfad ein. ```powershell #Variante 2 # in dieser Version werden alle Ergebnisse aus allen Trustee Dateien in einer Excel in einem Blatt zusammengefasst. # Das gibt noch mal eine bessere Option für die Auswertung der Daten. # Der Pfad zum übergeordneten Verzeichnis, in dem die XML-Dateien gespeichert sind $strParentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition $directoryName = Split-Path -Leaf $strParentPath $currentDate = Get-Date -Format "yyyy-MM-dd" # Erstelle den Ausgabedateinamen mit Datum und Verzeichnisname $excelFileName = "$currentDate-$directoryName-Trustees.xlsx" $excelPath = Join-Path -Path $strParentPath -ChildPath $excelFileName # Starten von Excel $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $workbook = $excel.Workbooks.Add() $sheet = $workbook.Worksheets.Add() $sheet.Name = "Alle Trustee-Informationen" # Kopfzeile hinzufügen $sheet.Cells.Item(1, 1).Value2 = "Tiefe" $sheet.Cells.Item(1, 2).Value2 = "Pfad" $sheet.Cells.Item(1, 3).Value2 = "Trustee Name" $sheet.Cells.Item(1, 4).Value2 = "Trustee ID" $sheet.Cells.Item(1, 5).Value2 = "Rechte" $sheet.Cells.Item(1, 6).Value2 = "Server" $sheet.Cells.Item(1, 7).Value2 = "Volume" $row = 2 foreach ($file in Get-ChildItem $strParentPath -Filter "*.xml" -Recurse) { $fileContent = Get-Content -Path $file.FullName -Encoding UTF8 -Raw $doc = [xml]$fileContent $serverName = Split-Path -Leaf (Split-Path -Parent $file.FullName) foreach ($fileElement in $doc.metadata.trusteeInfo.file) { $path = $fileElement.path.'#cdata-section' $strPath = [string]$path $strPath = $strPath -replace "/", "\" $arrFields = $strPath.Split('\', [System.StringSplitOptions]::RemoveEmptyEntries) $strCount = $arrFields.Count - 1 foreach ($trustee in $fileElement.trustee) { $name = $trustee.name.'#cdata-section' $id = $trustee.id $rights = $trustee.rights.value # Daten in das Arbeitsblatt eintragen $sheet.Cells.Item($row, 1).Value2 = "$strCount" $sheet.Cells.Item($row, 2).Value2 = $path $sheet.Cells.Item($row, 3).Value2 = $name $sheet.Cells.Item($row, 4).Value2 = $id $sheet.Cells.Item($row, 5).Value2 = $rights $sheet.Cells.Item($row, 6).Value2 = $serverName $sheet.Cells.Item($row, 7).Value2 = $file.Name $row++ } # Falls kein Trustee vorhanden ist, nur Tiefe und Pfad eintragen if ($fileElement.trustee -eq $null -or $fileElement.trustee.Count -eq 0) { $sheet.Cells.Item($row, 1).Value2 = "$strCount" $sheet.Cells.Item($row, 2).Value2 = $path $sheet.Cells.Item($row, 6).Value2 = $serverName $sheet.Cells.Item($row, 7).Value2 = $file.Name $row++ } } } # Speichern und Schließen $workbook.SaveAs($excelPath) $excel.Quit() # Aufräumen [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null Remove-Variable excel Write-Host "Excel-Datei wurde erstellt: $excelPath" ``` -------------------------------- ### Symlink-Evaluierung abfragen (fsutil behavior query SymlinkEvaluation) Source: https://help.migraven.com/migraven-symlink-management-konfigurieren/ Führt auf dem Benutzer-PC in der Kommandozeile (CMD) aus, um zu prüfen, ob alle notwendigen Verbindungsoptionen für die Nutzung der Symlinks aktiviert sind. Im Normalfall ist die Option 'remote zu remote' deaktiviert und muss aktiviert werden. ```cmd fsutil behavior query SymlinkEvaluation ``` -------------------------------- ### PowerShell-Skript zur Ermittlung der zu lizenzierenden AD-Konten Source: https://help.migraven.com/berechnung-der-relevanten-ad-konten-in-migraven-24-7/ Dieses PowerShell-Skript berechnet die Anzahl der zu lizenzierenden Konten für migRaven.24/7. Es zählt alle Benutzerkonten, die sich in den letzten 90 Tagen angemeldet haben, und subtrahiert HealthMailboxen. Optional kann die Suche auf eine bestimmte OU beschränkt werden. Das Skript erstellt für jeden Domaincontroller eine Textdatei mit den aktiven Benutzern. ```powershell param([Parameter(Mandatory=$False,HelpMessage="Um das Zählen auf eine OU zu beschränken, Geben Sie den Namen der OU ein: (im Format: OU=meine OU,DN=X,DN=Y)")]$SearchBase) cls $DefaultNamingContext=([ADSI]"LDAP://RootDSE").defaultNamingContext if ([string]::IsNullOrWhiteSpace($SearchBase)) { #write-host "Searchbase-Parameter nicht festgelegt, Verwendung des Standardnamenskontexts $DefaultNamingContext (Oder Übergeben Sie das Argument -searchBase, um eins im vorhand zu setzen)" if ((read-host "Wollen Sie das Zählen auf eine OU beschränken?") -match "^y$|^j$|Ja|Yes") { $searchBase=read-host "Geben Sie den Namen der OU ein: (im Format: OU=meine OU..,$(([ADSI]"LDAP://RootDSE").rootDomainNamingContext)" } else { $SearchBase=$DefaultNamingContext.toString() write-host "Rückfall auf Standardwert $SearchBase" } } if ([string]::IsNullOrWhiteSpace($SearchBase) -or (-not (($searchBase -eq ([ADSI]"LDAP://RootDSE").rootDomainNamingContext.toString() ) -or ($searchBase -eq $DefaultNamingContext.toString()) -or ([ADSI]::Exists($searchBase)) ))){ $SearchBase=$DefaultNamingContext.toString() write-warning "Ungültiger Suchbasiswert, Rückfall auf Standardwert $SearchBase" } $domain_user_all = (Get-ADUser -searchbase $SearchBase -Filter *).Count $domain_user_active = (Get-ADUser -searchbase $SearchBase -LDAPFilter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))").count $domain_user_login_90days = (Get-ADUser -searchbase $SearchBase -Filter *).Count - (Get-ADUser -searchbase $SearchBase -Filter * -Properties LastLogonTimeStamp | select @{Name="LastLogonTimeStamp";Expression={([datetime]::FromFileTime($_.LastLogonTimeStamp))}} | where {$_.LastLogonTimeStamp -lt (Get-Date).AddDays(-90)}).Count $domain_user_HealthMailbox = (Get-ADUser -searchbase $SearchBase -Filter "name -like 'HealthMailbox*' ").count Write-Host "Domaincontrollern werden abgefragt . . ." Write-Host "" Get-ADDomainController -Filter * |Select Name |% { $_.Name+": "+ ((Get-ADUser -searchbase $SearchBase -Server $_.Name -Filter *).Count - (Get-ADUser -searchbase $SearchBase -Server $_.Name -Filter * -Properties LastLogonTimeStamp | select @{Name="LastLogonTimeStamp";Expression={([datetime]::FromFileTime($_.LastLogonTimeStamp))}} | where {$_.LastLogonTimeStamp -lt (Get-Date).AddDays(-90)}).Count) } Write-Host "" Write-Host "Anzahl aller Accounts unter $searchBase : " $domain_user_all Write-Host "" Write-Host "Anzahl aller aktiven Accounts unter $searchBase : " $domain_user_active Write-Host "" Write-Host "Anzahl der Benutzeraccounts unter $searchBase, die sich in den letzten 90 Tage angemeldet haben: " $domain_user_login_90days Write-Host "" Write-Host "aktive HealthMailboxen: " $domain_user_HealthMailbox Write-Host "" Write-Host "Anzahl der Benutzeraccounts unter $searchBase (ohne aktive HealthMailboxen), die sich in den letzten 90 Tage angemeldet haben: " ($domain_user_login_90days - $domain_user_HealthMailbox) Write-Host "------------------------------------------------------------------------------------------------------------------" Write-Host "Anzahl der berechneten Konten: " ($domain_user_login_90days - $domain_user_HealthMailbox) -ForegroundColor yellow Write-Host "" Get-ADDomainController -Filter * |Select Name |% { (Get-ADUser -searchbase $SearchBase -Server $_.Name -Filter * -Properties LastLogonTimeStamp | select samAccountName,@{Name="LastLogonTimeStamp";Expression={([datetime]::FromFileTime($_.LastLogonTimeStamp))}} | where {$_.LastLogonTimeStamp -gt (Get-Date).AddDays(-90)}) | Out-File "Benutzerdatei $($_.Name).txt" ; write-Host "Benutzerdatei $($_.Name).txt ist erstellt (internen Gebrauch des Kunden)" } Write-Host "" ``` -------------------------------- ### Neo4j Backup-Befehl mit Argumenten Source: https://help.migraven.com/backup-und-restore-migraven-datenbank/ Argumente für die Backup-Aufgabe. Ersetzen Sie \\Ihr-Server\Ihre_Freigabe durch Ihre Freigabe. Die Wildcard --database=* sichert alle Datenbanken. ```batch backup --backup-dir=\\Ihr-Server\Ihre_Freigabe --verbose --database=* --fallback-to-full=true --check-consistency=true --check-graph=true --check-indexes=true --prepare-restore=true ``` -------------------------------- ### VBScript: Desktop-Verknüpfungen nach Pfadänderung reparieren Source: https://help.migraven.com/defekte-links-auf-desktop-reparieren/ Ersetzt alte Serverpfade in Desktop-Verknüpfungen (.lnk) nach einer Fileserver-Migration. Muss in ein Login-Script eingebunden werden. Vor Ausführung müssen die Variablen strFind und strReplace angepasst werden. ```vbscript ‚Define paths strFind = „\\oldserver\share1\“ strReplace = „\\newserver\share2\“ Set objWsh = CreateObject(„WScript.Shell“) Set objWshSysEnv = objWsh.Environment(„PROCESS“) strProfilePath = objWshSysEnv(„USERPROFILE“) Set objFSO = CreateObject(„Scripting.FileSystemObject“) Set objFolder = objFSO.GetFolder(strProfilePath & „\Desktop“) ‚Loop through all files on the desktop For Each file In objFolder.Files if right(file.Name,3)=„lnk“ then ‚If a shortcut is found Set objLink = objWsh.CreateShortcut(file.Path) objLink.Arguments = Replace(objLink.Arguments,strFind,strReplace,1,-1,1) objLink.TargetPath = Replace(objLink.TargetPath,strFind,strReplace,1,-1,1) objLink.WorkingDirectory = Replace(objLink.WorkingDirectory,strFind,strReplace,1,-1,1) objLink.Save end if Next ``` -------------------------------- ### Ausführung als CMD Source: https://help.migraven.com/howto-gruppenmitgliedschaften-eines-benutzer-in-windows-ohne-ab-anmelden-aktualisieren/ Vereinfachen Sie die Aktion für Benutzer, indem Sie diese CMD auf den Desktop legen. Für Remotebenutzer sollte sie unmittelbar nach dem Verbindungsaufbau ausgeführt werden. ```cmd taskKill /F /IM explorer.exe RunAs /user:Domain\%username% explorer.exe ``` -------------------------------- ### Maximale Protokolldateigröße angeben Source: https://help.migraven.com/eventreader2/ Konfigurieren Sie die maximale Größe der Sicherheitsprotokolldatei, um die erhöhte Anzahl von Ereignissen (ID 5145) zu speichern. Der Standardwert ist 20 MB, empfohlen werden mindestens 10 GB, besser 25 GB. Die Einstellung finden Sie unter Computerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Ereignisprotokolldienst > Sicherheit. ```text Maximale Protokolldateigröße (KB) angeben Maximale Protokollgröße (KB) (Der Standardwert ist 20 MB) Specify the maximum log file size (KB) (default value is 20 MB) ``` -------------------------------- ### Flatten-Konfiguration ohne Ausschluss (migraven.exe.config) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Konfigurationseintrag für migRaven, um alle personenbezogenen aktiven Konten zu flatten. Wird in der migraven.exe.config unter dem Key 'Flatten' gesetzt. ```xml ``` -------------------------------- ### Java Version prüfen mit 'Java -version' Source: https://help.migraven.com/java-version-auf-migraven-server-updaten/ Führt die Befehlszeile in der Windows Eingabeaufforderung aus, um die aktuell installierte Java Version zu verifizieren. Das Ergebnis der Abfrage wird angezeigt. ```bash Java -version ``` -------------------------------- ### Schritt 1: Verbindung zum Domänencontroller herstellen Source: https://help.migraven.com/howto-gruppenmitgliedschaften-eines-benutzer-in-windows-ohne-ab-anmelden-aktualisieren/ Stellen Sie zuerst eine Verbindung zum Domänencontroller her, z.B. über VPN, bevor Sie andere Schritte ausführen. ```text Wenn wir es mit Remote-Benutzern in einem VPN zu tun haben, lassen Sie sie sich zuerst mit dem VPN verbinden, bevor Sie etwas anderes tun. ``` -------------------------------- ### Flatten-Konfiguration mit Ausschluss bestimmter Gruppen (migraven.exe.config) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Konfigurationseintrag für migRaven, um personenbezogene aktive Konten zu flatten, aber Gruppen mit bestimmten userprincipalname-Mustern auszuschließen. Der Key 'Flatten' wird entsprechend angepasst. ```xml ``` -------------------------------- ### TRUSTEE.NLM Konsolenbefehl zum Auslesen von Berechtigungen Source: https://help.migraven.com/von-novell-auf-microsoft/ Novell Netware Konsolenbefehl zum Sichern von Trustee-Informationen in eine CSV-Datei. /ET exportiert Berechtigungen ohne Eigentümer, /D nur Verzeichnisse ohne Dateien. SAVE vol1:\\ sichert das Volume vol1, SAVE ALL alle Volumes; die Ausgabedatei wird mit sys:\\trustee-vol1.csv angegeben. ```console TRUSTEE /ET /D SAVE vol1:\\ sys:\\trustee-vol1.csv ``` -------------------------------- ### PowerShell: Novell trustee_database.xml in Excel konvertieren Source: https://help.migraven.com/novell-trustee-database-xml-in-csv-konvertieren-migration-vorbereiten/ Konvertiert alle XML-Dateien im Skriptverzeichnis in eine Excel-Arbeitsmappe. Liest jede Datei mit UTF-8-Codierung, erstellt pro XML-Datei ein Arbeitsblatt mit Trustee-Informationen (Tiefe, Pfad, Name, ID, Rechte) und speichert die Arbeitsmappe als 'yyyy-MM-dd-Verzeichnisname-Trustees.xlsx'. Benötigt Excel COM-Objekt und PowerShell. ```powershell # Der Pfad zum übergeordneten Verzeichnis, in dem die XML-Dateien gespeichert sind $strParentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition $directoryName = Split-Path -Leaf $strParentPath $currentDate = Get-Date -Format "yyyy-MM-dd" # Erstelle den Ausgabedateinamen mit Datum und Verzeichnisname $excelFileName = "$currentDate-$directoryName-Trustees.xlsx" $excelPath = Join-Path -Path $strParentPath -ChildPath $excelFileName # Starten von Excel $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $workbook = $excel.Workbooks.Add() foreach ($file in Get-ChildItem $strParentPath -Filter "*.xml") { # Lesen der Datei mit expliziter UTF-8-Codierung $fileContent = Get-Content -Path $file.FullName -Encoding UTF8 -Raw $doc = [xml]$fileContent $sheetName = "$directoryName-$($file.BaseName)" # Begrenze die Länge des Blattnamens auf 31 Zeichen if ($sheetName.Length -gt 31) { $sheetName = $sheetName.Substring(0, 31) } $sheet = $workbook.Worksheets.Add() $sheet.Name = $sheetName # Kopfzeile hinzufügen $sheet.Cells.Item(1, 1).Value2 = "Tiefe" $sheet.Cells.Item(1, 2).Value2 = "Pfad" $sheet.Cells.Item(1, 3).Value2 = "Trustee Name" $sheet.Cells.Item(1, 4).Value2 = "Trustee ID" $sheet.Cells.Item(1, 5).Value2 = "Rechte" $row = 2 foreach ($fileElement in $doc.metadata.trusteeInfo.file) { $path = $fileElement.path.'#cdata-section' $strPath = [string]$path $strPath = $strPath -replace "/", "\" $arrFields = $strPath.Split('\', [System.StringSplitOptions]::RemoveEmptyEntries) $strCount = $arrFields.Count - 1 foreach ($trustee in $fileElement.trustee) { $name = $trustee.name.'#cdata-section' $id = $trustee.id $rights = $trustee.rights.value # Daten in das Arbeitsblatt eintragen $sheet.Cells.Item($row, 1).Value2 = "$strCount" $sheet.Cells.Item($row, 2).Value2 = $path $sheet.Cells.Item($row, 3).Value2 = $name $sheet.Cells.Item($row, 4).Value2 = $id $sheet.Cells.Item($row, 5).Value2 = $rights $row++ } # Falls kein Trustee vorhanden ist, nur Tiefe und Pfad eintragen if ($fileElement.trustee -eq $null -or $fileElement.trustee.Count -eq 0) { $sheet.Cells.Item($row, 1).Value2 = "$strCount" $sheet.Cells.Item($row, 2).Value2 = $path $row++ } } } # Speichern und Schließen $workbook.SaveAs($excelPath) $excel.Quit() # Aufräumen [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null Remove-Variable excel Write-Host "Excel-Datei wurde erstellt: $excelPath" ``` -------------------------------- ### Neo4j-admin.bat Pfad für Backup-Aufgabe Source: https://help.migraven.com/backup-und-restore-migraven-datenbank/ Befehlszeile für das Programm/Skript in der Windows Aufgabenplanung. Bezieht sich auf Neo4j Datenbankversion 4.4. ```batch "C:\Program Files\migRavenGraphDB\bin\neo4j-admin.bat" ``` -------------------------------- ### Schritt 2: Kill Explorer.exe Source: https://help.migraven.com/howto-gruppenmitgliedschaften-eines-benutzer-in-windows-ohne-ab-anmelden-aktualisieren/ Beenden Sie explorer.exe über den Task-Manager, um das Startmenü und geöffnete Ordner auszublenden. ```text Öffnen Sie den Task-Manager und beenden Sie explorer.exe. Das Startmenü des Benutzers und alle geöffneten Ordner sollten nun ausgeblendet werden. ``` -------------------------------- ### Deinstallation des migRavenDB – aikuxGraph Dienstes (bis inkl. Version 7.2.22207.1) Source: https://help.migraven.com/java-version-auf-migraven-server-updaten/ Deinstalliert den migRavenDB – aikuxGraph Dienst über die Windows Eingabeaufforderung. Gültig bis inklusive migRaven.24/7 der Version 7.2.22207.1. Nach Ausführung wird ggf. die UAC bestätigt und der Dienst ist deinstalliert. ```bash "C:\Program Files\migRavenDB\bin\neo4j.bat" uninstall-service ``` -------------------------------- ### IISReset nach Lizenzaktualisierung Source: https://help.migraven.com/lizenzaktualisierung/ Führen Sie diesen Befehl als Administrator in der Kommandozeile aus, nachdem Sie die Lizenz aktualisiert haben. Er startet den IIS-Dienst neu, um die neue Lizenz zu aktivieren. ```bash iisreset ``` -------------------------------- ### Neo4j stoppen und Konsistenzprüfung ausführen Source: https://help.migraven.com/konsistenz-check-der-migraven-datenbank/ Führt die Konsistenzprüfung der migRaven Datenbank (graph.db) durch. Stoppt zuerst den Neo4j-Dienst und führt dann den Check aus, wobei die Ausgabe in eine TXT-Datei umgeleitet wird. Bei Fehlern in der Datei soll diese dem Support zur Verfügung gestellt werden. ```bash C:\Program Files\migRavenDB\bin\neo4j stop C:\Program Files\migRavenDB\bin\neo4j-admin check-consistency --database=graph.db >> output_consistency_check.txt ``` -------------------------------- ### Deinstallation des Neo4j Graph Database – migRavenGraphDB Dienstes (ab inkl. Version 7.2.22271.1) Source: https://help.migraven.com/java-version-auf-migraven-server-updaten/ Deinstalliert den Neo4j Graph Database – migRavenGraphDB Dienst über die Windows Eingabeaufforderung. Gültig ab inklusive migRaven.24/7 der Version 7.2.22271.1. Nach Ausführung wird ggf. die UAC bestätigt und der Dienst ist deinstalliert. ```bash "C:\Program Files\migRavenGraphDB\bin\neo4j.bat" uninstall-service ``` -------------------------------- ### FQDN der Domäne mit set userDNSdomain anzeigen Source: https://help.migraven.com/fqdn-meiner-domaine/ Alternativer Befehl, um den Inhalt der Umgebungsvariable %userDNSdomain% in der Windows-Kommandozeile (CMD) anzuzeigen. ```batch set userDNSdomain ``` -------------------------------- ### Unterkategorieeinstellungen der Überwachungsrichtlinie erzwingen Source: https://help.migraven.com/eventreader2/ Erzwingen Sie, dass die Einstellungen der Überwachungsrichtlinien bis in die untersten Kategorien durchgesetzt werden. Diese Option muss aktiviert werden, um die Kategorieeinstellungen zu überschreiben. Sie finden sie unter Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Sicherheitsoptionen. ```text Überwachung: Unterkategorieeinstellungen der Überwachungsrichtlinie erzwingen ..., um Kategorieeinstellungen der Überwachungsrichtlinie außer Kraft zu setzen. - Aktiviert Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings. - Enabled ``` -------------------------------- ### Option 'remote zu remote' manuell aktivieren (fsutil behavior set SymlinkEvaluation R2R:1) Source: https://help.migraven.com/migraven-symlink-management-konfigurieren/ Aktiviert manuell die Option 'remote zu remote' für die Symlink-Evaluierung auf dem jeweiligen Benutzer-PC. Führen Sie diesen Befehl in der Kommandozeile (CMD) aus, um das gewünschte Ergebnis zu erreichen. ```cmd fsutil behavior set SymlinkEvaluation R2R:1 ``` -------------------------------- ### FQDN der Domäne mit echo %userDNSdomain% anzeigen Source: https://help.migraven.com/fqdn-meiner-domaine/ Zeigt den FQDN der Domäne über die Umgebungsvariable %userDNSdomain% in der Windows-Kommandozeile (CMD) an. ```batch echo %userDNSdomain% ``` -------------------------------- ### Cypher query: Measure data size for first-level child projects Source: https://help.migraven.com/neo4j-datenmenge-fuer-die-erste-ebene-abwaerts-zb-homeverzeichnisse-messen/ Use this Cypher query to calculate the total file count and folder size for each first-level child project (e.g., home directories) under a given project ID. Replace the id(n)=5006787 with your target project ID. The query returns distinct source paths with aggregated filecount and Menge (folder size in bytes), ordered by Menge descending. ```cypher MATCH (n:Project)-[:rel_child_ini]->(v)-[:rel_child0]->(u) where id(n)=5006787 with u match(u)- [:rel_child0*0..]->(x) RETURN distinct u.sourcepath, sum(toInteger(x.filecount)) as filecount, sum(toInteger(x.foldersize)) as Menge order by Menge desc ``` -------------------------------- ### Cypher: ACE mit AD Account verbinden (optional) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Cypher-Import, der ACE-Knoten mit ADAccount-Knoten über eine rel_ace-Beziehung verbindet, basierend auf der CSV-Datei 'lokaleGruppen.csv'. Optional, wenn Rechte nach dem Scan nicht angezeigt werden. ```cypher USING PERIODIC COMMIT 1000 LOAD CSV FROM ‚file:///c:/temp/lokaleGruppen.csv‚ AS line FIELDTERMINATOR ‚\t‘ match (a:ACE)-[:rel_right0]->(o:ResourceSearch) where a.sid=line[1] with distinct a, line match (b:ADAccount) where b.objectSID=line[1] merge (a)-[:rel_ace]->(b) ``` -------------------------------- ### Cypher: Import lokaler Gruppen aus CSV (lokaleGruppen.csv) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Cypher-Import, der die CSV-Datei 'lokaleGruppen.csv' lädt und für jede Zeile einen ADAccount-Knoten mit den angegebenen Eigenschaften erstellt oder aktualisiert. Verwendet apoc.cypher.doIt. ```cypher LOAD CSV FROM ‚file:///C:/temp/lokaleGruppen.csv‚ AS line FIELDTERMINATOR ‚\t‘ with line,  ‚merge (l:ADAccount {objectGUID:“‚ +  line[0] + ‚“ }) on create set l.objectSID=“‚ + line[1] +'“ set l.name=“‚+ line[2] + ‚“ set l.domain=“‚ + line[3] + ‚“ set l.commonsid=“0″ set l.type=“group“ set l.sAMAccountName=“‚ + line[2] + ‚“ set l.cn=“‚+ line[2] +'“ set l.distinguishedname=““ set l.isactive=“True“ set l.department=““ set l.description=“‚+ line[4] + ‚“ set l.displayname=““ set l.givenName=““ set l.grouptype=““ set l.sn=““ set l.sAMAccountType=“SAM_NON_SECURITY_GROUP_OBJECT“ set l.ad=“1″ set l.grouptype=“Universal_Security_Group“ set l.adspath=“LDAP://‘ + line[3] + ‚/CN=‘ + line[2]  + ‚,CN=Users,DC=‘ + line[3] + ‚“‚  as cypher  CALL apoc.cypher.doIt(cypher,{}) yield value return value ``` -------------------------------- ### Freigabeüberwachung konfigurieren Source: https://help.migraven.com/eventreader2/ Aktivieren Sie die Überwachung auf den Freigabeordnern des Fileservers. Dazu müssen Sie in den Eigenschaften des Ordners unter System > Erweitert > Überwachung die folgenden Einstellungen vornehmen: Prinzipal 'Jeder', Zugriff 'Vollzugriff', Anwenden auf 'Diesen Ordner, Unterordner und Dateien'. ```text Prinzipal: Jeder zugriff: Vollzugriff Anwenden auf: Diesen Ordner, Unterordner und Dateien ``` -------------------------------- ### Cypher: Datenmenge für erste Ebene abwärts messen Source: https://help.migraven.com/category/knowledge-base/graphen-datenbank-neo4j/ Ermittelt die Datenmenge (filecount und foldersize) für Projekte der ersten Ebene abwärts, z.B. für Homeverzeichnisse. Die Abfrage startet bei einem Projekt mit id(n)=5006787, folgt den Beziehungen rel_child_ini und rel_child0 und summiert die Werte aller untergeordneten Knoten. Das Ergebnis zeigt u.sourcepath, die Summe von filecount und foldersize (Menge) absteigend sortiert. ```cypher MATCH (n:Project)-[:rel_child_ini]->(v)-[:rel_child0]->(u) where id(n)=5006787 with u match(u)- [:rel_child0*0..]->(x) RETURN distinct u.sourcepath, sum(toInteger(x.filecount)) as filecount, sum(toInteger(x.foldersize)) as Menge order by Menge desc ``` -------------------------------- ### PowerShell-Script zum Export serverlokaler Gruppen und Member Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ PowerShell-Script, das alle serverlokalen Gruppen auf einem Windows-Server ausliest und deren Mitglieder ermittelt. Erzeugt zwei CSV-Dateien: 'lokaleGruppen.csv' und 'MemberGruppen.csv' im Verzeichnis c:\temp. ```powershell $Computer = "SERVER" $gruppen = get-wmiobject win32_group -filter "LocalAccount='True'" -ComputerName $Computer foreach($groupName in $gruppen){ $Gname = $groupName.Name #$Gname $Group= [ADSI]"WinNT://$Computer/$Gname,group" #$Group $members = $Group.psbase.Invoke("Members") $name = $members | ForEach-Object { $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) } if($groupName.Description -eq "" ) {$groupName.Description = "leer" } [System.Guid]::NewGuid().ToString() + "t" + $groupName.SID + "t" + $groupName.Name + "t" + $Computer + "t" + $groupName.Description | out-file -filePath "c:\temp\lokaleGruppen.csv" -Append #$name #$members foreach ($n in $name){ if ( $n.ToString() -notcontains "System." ) { write-host $n $memb = (New-Object System.Security.Principal.NTAccount($n)).Translate([System.Security.Principal.SecurityIdentifier]).value $groupName.SID + "," + $memb | out-file -filePath "c:\temp\MemberGruppen.csv" -Append } } } ``` -------------------------------- ### Ausschluss von Pfaden mit Ressourcen Scan Services Source: https://help.migraven.com/ressourcen-scan-ausschluesse-definieren-pfade-ordner/ Setzt die excludedpaths-Eigenschaft für einen Ressourcen Scan Service, um einen bestimmten Pfad auszuschließen. Backslashes müssen maskiert werden, mehrere Pfade werden kommasepariert und in Anführungszeichen gesetzt. Nach einem erneuten Scan wird die Ressource nicht mehr unter My Folders angezeigt und ist nicht mehr Bestandteil von Analysen. ```cypher MATCH (n:Services) where n.type="RES" set n.excludedpaths=['\\Testdom.local\Docu-Data\Docu-Data\Organisation\Finance'] RETURN n ``` -------------------------------- ### Cypher: Entfernen verwaister ACEs (ohne rel_ace-Beziehung) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Cypher-Abfrage zum Löschen aller ACE-Knoten, die keine rel_ace-Beziehung zu einem anderen Knoten haben. Wird für alle in der Datenbank ausgeführt. ```cypher MATCH (n:ACE) where not (n)-[:rel_ace]->() detach delete n ``` -------------------------------- ### HTML E-Mail Inhalt für migRaven Web Client Source: https://help.migraven.com/anpassung-der-mail-und-excel-templates/ Verwenden Sie diesen HTML-Code als Vorlage für E-Mail-Inhalte im migRaven Web Client HTML Editor. Der Platzhalter {recipient} wird durch den Empfängernamen ersetzt. Der Code enthält HTML-Tags wie
und Links, die im Editor direkt eingegeben werden müssen. ```html Hallo {recipient},

auf einigen Ihrer Ordner wurden soeben Aufgaben erstellt. Ich bitte Sie, diese so schnell wie möglich abzuarbeiten.

Bitte verifizieren Sie dringend die Berechtigungen auf den von Ihnen verantworteten Verzeichnissen, um die Sicherheit und die Compliance zu gewährleisten.

Berechtigungsverwaltung

Hier können Sie auf die Aufgabenübersicht zugreifen.

Mit freundlichen Grüßen,
Ihr Administrator ``` -------------------------------- ### Fehlermeldung bei fehlenden Rechten (Get-Acl) Source: https://help.migraven.com/get-acl-oder-set-acl-als-backup-operator-powershell-cmdlets-zur-verwaltung-von-berechtigungen-sicherungs-administratoren-ohne-vollzugriffsrechte-ausfuehren/ Ausgabe der Fehlermeldung, wenn Get-Acl ohne ausreichende Rechte ausgeführt wird. Enthält die UnauthorizedAccessException und den vollständigen Fehlerpfad. ```text get-acl : Es wurde versucht, einen nicht autorisierten Vorgang auszuführen. In Zeile:1 Zeichen:2 + (get-acl \\srv-fs-01\home\uwe\testPrivUAADMIN).Access + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-Acl], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetAclCommand ``` -------------------------------- ### PowerShell-Skript zum Erstellen einer ablaufenden Sicherheitsgruppe Source: https://help.migraven.com/erstellen-temporaerer-berechtigungsgruppen/ Erstellt eine dynamische Sicherheitsgruppe mit einer Lebensdauer (entryTTL) und fügt sie einer Organisationseinheit hinzu. Die Gruppe wird nach Ablauf der TTL automatisch gelöscht. Voraussetzungen: Administratorzugriff auf den Domänencontroller, installierter ADSI-Editor und ausführbare PowerShell. ```powershell [INT]$TTLminutes=60 $TTLSeconds = [int](New-TimeSpan -minutes $TTLminutes).TotalSeconds $destinationOu="OU=Groups,DC=Testdom,DC=local" $destinationOuObject = [ADSI]("LDAP://test-dc1-2016.testdom.local/" + $destinationOu) $GroupName="TempClientAdminRights" $TempGroup = $destinationOuObject.Create("group","CN=$GroupName") $TempGroup.PutEx(2,"objectClass",@("dynamicObject","Group")) $TempGroup.Put("entryTTL",$TTLSeconds) $TempGroup.Put("sAMAccountName", $GroupName) $TempGroup.Put("displayName", $GroupName) $TempGroup.SetInfo() ``` -------------------------------- ### FIND-Befehl zum Filtern von Trustee-Zeilen Source: https://help.migraven.com/von-novell-auf-microsoft/ Filtert die Ausgabedatei auf Zeilen mit dem Text 'TRUSTEE' und erzeugt eine reduzierte Datei only_trustee.csv. Nützlich, wenn die Ausgabedatei andere Informationen enthält. ```console FIND "TRUSTEE" trustee.csv > only_trustee.csv ``` -------------------------------- ### Remote Berechtigungen setzen mit Invoke-Command Source: https://help.migraven.com/get-acl-oder-set-acl-als-backup-operator-powershell-cmdlets-zur-verwaltung-von-berechtigungen-sicherungs-administratoren-ohne-vollzugriffsrechte-ausfuehren/ Setzt Berechtigungen remote über Invoke-Command auf einem Server. Der Befehl wird lokal auf dem Zielserver ausgeführt. Geeignet für NAS-Systeme und NetApp, wenn kein direkter Login möglich ist. Muss mit Adminrechten gestartet werden. ```powershell !!!!! Powershell als Admin starten!!!!! Invoke-Command -ComputerName srv-fs-01 -ScriptBlock { $acl=(get-acl "c:\Docs") ; $ace=new-object Security.AccessControl.FileSystemAccessRule ("Domain\Ihr_Adminaccount", "FullControl", "ContainerInherit,ObjectInherit", "InheritOnly", "Allow") $acl.AddAccessRule($ace) } ``` -------------------------------- ### Cypher: Entfernen verwaister ACEs (objectSID endet mit -1009) Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Cypher-Abfrage zum Löschen von ADAccount-Knoten, deren objectSID mit '-1009' endet. Wird vor den abschließenden Scripts ausgeführt, um verwaiste ACEs zu entfernen. ```cypher MATCH (n:ADAccount) where n.objectSID ends with ‚-1009‘  detach delete n ``` -------------------------------- ### Cypher-Abfrage zum Ändern des adspath Source: https://help.migraven.com/neo4j-serverlokale-gruppen-importieren/ Führt eine Cypher-Abfrage aus, um den adspath-Wert für ADAccount-Knoten zu setzen, wenn die Domain eine IP-Adresse ist. Ersetzt die Domain durch die IP-Adresse im adspath-Feld. ```cypher match (n:ADAccount) where n.domain=“10.116.9.38″ set n.adspath=“10.116.9.38″ return n ``` -------------------------------- ### Excel-Formel zum Entfernen des Volume-Namens Source: https://help.migraven.com/von-novell-auf-microsoft/ Excel-Formel zum Entfernen des Volume-Namens (z.B. VOL1:) aus dem Pfad in Zelle B1. Der Volume-Name muss angepasst werden. ```excel-formula =WECHSELN(B1;"VOL1:";"";1) ```