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

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]

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.

$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

Für Business Central 14 lautet der Pfad:

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

Bei fehlenden Administratorrechten erscheint folgende Fehlermeldung:

New-NAVServerUser : Access is denied. You need to be a member of the local Administrators group on the NAV Server to run this cmdlet
In Zeile:2 Zeichen:1
+ New-NAVServerUser dynamicsnav90 -WindowsAccount $(whoami)

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
+ New-NAVServerUser $instance -WindowsAccount "test2"

Oder Sie legen gleich alle an:

$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
    }
}

196 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen