Dela via


NET.EXE /ADD-kommandot stöder inte namn som är längre än 20 tecken

Den här artikeln innehåller en lösning på ett fel som uppstår när du använder NET.EXE /ADD kommandot med användar- eller gruppnamn som är längre än 20 tecken.

Ursprungligt KB-nummer: 324639

Symptom

När du använder NET.EXE kommandot tillsammans med växeln /ADD och långa användar- eller gruppnamn visas endast NET-syntaxen. Du får inget felmeddelande.

Exempel:

C:\>NET.EXE localgroup MyRemoteUsers "REMOTE INTERACTIVE LOGON" /ADD

The syntax of this command is:

NET LOCALGROUP [groupname [/COMMENT:"text"]] [/DOMAIN]
groupname {/ADD [/COMMENT:"text"] | /DELETE} [/DOMAIN]
groupname name [...] {/ADD | /DELETE} [/DOMAIN]

Samma åtgärd fungerar med GUI-datorhantering, lokala användare och grupper Microsoft Management Console (MMC).

Orsak

Kommandot NET.EXE stöder inte namn som är längre än 20 tecken på grund av bakåtkompatibilitet med LAN Manager 2.0.

Åtgärd

Om den grafiska användargränssnittsmetoden (GUI) inte kan användas och en skriptmetod krävs använder du verktyget Windows 2000 Resource Kit Cusrmgr.exe. Du kan också använda VBScript med hjälp av ett API (Application Programming Interface) som stöder namn som är längre än 20 tecken.

Status

Microsoft har bekräftat att det är ett problem i de Microsoft-produkter som listas i avsnittet "Gäller för".

Mer information

I exemplet i avsnittet "Symptom" i den här artikeln använder du följande Cusrmgr.exe syntax:

C:\>CUSRMGR.EXE -u "REMOTE INTERACTIVE LOGON" -alg "MyRemoteUsers"

Det här problemet kan också uppstå med lokaliserade versioner där inbyggda grupper överskrider gränsen på 20 tecken. Till exempel med det tyska namnet för "Autentiserade användare" (19 tecken): "Authentifizierte Benutzer" (25 tecken).

Följande exempel på VBScript kan anpassas och användas som ytterligare en lösning. Den lägger till "Autentiserade användare" till "Power Users" för den engelska och tyska versionen:

##### VBScript ADDGRP.VBS #####

On Error Resume Next  

Dim oContainer  
Dim oGroup  
Dim oIADs  

Dim oComputerInformation  
Dim bolGroupSet  
bolGroupSet = False  

Set oComputerInformation = CreateObject("WScript.Network")  

Set oContainer = GetObject("WinNT://" +  
oComputerInformation.ComputerName)'get the IADsContainer object for the local computer  

oContainer.Filter = Array("Group")'We only need to enumerate groups,
therefore the filter  
For Each oIADs In oContainer 'for each IADs object we find there  
If oIADs.Name = "Hauptbenutzer" Or oIADs.Name = "Power Users" Then  
'check if it has the name "Power Users" or "Hauptbenutzer"  

Set oGroup = oIADs 'If so put it into the IADsGroup object  
oGroup.Add ("WinNT://S-1-5-11")'add the group "Authenticated Users"  
oGroup.SetInfo 'and save the info  

If Err <> 0 Then 'if error number is not 0 (Error occurred)  
MsgBox Err.Number, vbCritical, "AddGroup" 'print out the error message  
Else 'if everything seems to be ok  
bolGroupSet = True 'set the boolean value to True so we know the group was added  
End If  

End If  
Next  

If bolGroupSet = True Then 'if bolGroupSet is False there was nothing done  
MsgBox "Group added successfully", vbInformation, "AddGroup"  
Else  
MsgBox "No action has taken place!", vbExclamation, "AddGroup"  
End If  
##### script end #####

Lösning

Om du vill undvika det här problemet i Windows Server 2008 och senare använder du PowerShell-kommandot Add-ADGroupMember enligt beskrivningen i följande TechNet-artikel:
Add-ADGroupMember

Om du använder PowerShell 5.1 använder du kommandot Add-LocalGroupMember -Group PowerShell enligt beskrivningen i följande artikel:
Add-LocalGroupMember