How-To: Anlegen eines Windows-Benutzers mit SUPER-Rechten in Dynamics NAV / Business Central OnPrem

Author

Daniel Gorski

CEO

2 Min. Lesezeit

Windows-Benutzer mit SUPER-Rechten in NAV/BC anlegen

Wer kennt es nicht? Wenn eine Kopie einer Kundendatenbank aufgebaut wird, ist der Zugriff aufgrund fehlender Zugriffsrechte unter Umständen nicht erlaubt.
In der Vergangenheit mussten wir die benutzerbezogenen Tabellen über das SQL Server Management Studio löschen, damit NAV uns bei der ersten Anmeldung den Zugriff gewährt.

DELETE FROM [dbo].[User]
DELETE FROM [dbo].[Access Control]
DELETE FROM [dbo].[User Property]
DELETE FROM [dbo].[Page Data Personalization]
DELETE FROM [dbo].[User Default Style Sheet]
DELETE FROM [dbo].[User Metadata]
DELETE FROM [dbo].[User Personalization]

🧰 Benutzer mit PowerShell anlegen

Alternativ können Sie mit PowerShell sehr einfach Ihren eigenen Benutzer $(whoami) hinzufügen.

Hinweis: In diesem Beitrag geht es um die OnPrem Installation von Business Central oder Dynamics NAV und Sie brauchen lokale Administratorrechte! Starten Sie somit die Powershell ISE Anwendung als Administrator und tauschen nach Belieben "navversion" und "instance" aus. Hier "90" für Dynamics NAV 2016.

Beispiel für NAV 2016:

$navversion = "90"
$instance = "dynamicsnav90"
Import-Module "C:\Program Files (x86)\Microsoft Dynamics NAV\$NAVVersion\RoleTailored Client\Microsoft.Dynamics.Nav.Management.dll"

New-NAVServerUser $instance -WindowsAccount $(whoami)
New-NAVServerUserPermissionSet $instance -WindowsAccount $(whoami) -PermissionSetId SUPER

Beispiel für BC 14:

Import-Module "C:\Program Files (x86)\Microsoft Dynamics 365 Business Central\140\RoleTailored Client\Microsoft.Dynamics.Nav.Management.dll"

⚠️ Typische Fehlermeldungen

Wenn Administratorrechte fehlen:

New-NAVServerUser : Access is denied. You need to be a member of the local Administrators group on the NAV Server to run this cmdlet

Natürlich muss dieser Windows-Benutzer auch existieren ;-)

New-NAVServerUser : The windows account could not be mapped to a valid security identifier (SID).
In Zeile:5 Zeichen:1

👥 Alle lokalen Benutzer automatisch anlegen

$users = Get-LocalUser | Select *
foreach ($user in $users) {
    $enabled = "$($user.Enabled)"
    if ($enabled -ieq "true") {
        $name = "$($user.Name)"
        New-NAVServerUser $instance -WindowsAccount $name
        New-NAVServerUserPermissionSet $instance -WindowsAccount $name -PermissionSetId SUPER
    }
}