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

Daniel Gorski
CEO
2 Min. Lesezeit

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