Udostępnij za pośrednictwem


NET.EXE /ADD polecenie nie obsługuje nazw dłuższych niż 20 znaków

Ten artykuł zawiera rozwiązanie błędu występującego w przypadku używania NET.EXE /ADD polecenia z nazwami użytkowników lub grup dłuższymi niż 20 znaków.

Oryginalny numer KB: 324639

Symptomy

Gdy używasz NET.EXE polecenia razem z przełącznikiem /ADD i długimi nazwami użytkowników lub grup, to tylko redisplays składni net. Nie zostanie wyświetlony komunikat o błędzie.

Przykład:

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]

Ta sama akcja działa z graficznym interfejsem użytkownika zarządzaniem komputerem, użytkownikami lokalnymi i grupami Microsoft Management Console (MMC).

Przyczyna

Polecenie NET.EXE nie obsługuje nazw dłuższych niż 20 znaków ze względu na zgodność z poprzednimi wersjami programu LAN Manager 2.0.

Rozwiązanie

Jeśli nie można użyć metody graficznego interfejsu użytkownika (GUI), a metoda skryptów jest wymagana, użyj narzędzia zestawu Resource Kit systemu Windows 2000 Cusrmgr.exe. Możesz też użyć języka VBScript przy użyciu interfejsu programowania aplikacji (API), który obsługuje nazwy dłuższe niż 20 znaków.

Stan

Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w części "Ma zastosowanie do:".

Więcej informacji

W przykładzie w sekcji "Objawy" tego artykułu użyj następującej składni Cusrmgr.exe:

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

Ten problem może również wystąpić w przypadku zlokalizowanych wersji, w których wbudowane grupy przekraczają limit nazw 20 znaków. Na przykład z niemiecką nazwą "Uwierzytelnieni użytkownicy" (19 znaków): "Authentifizierte Benutzer" (25 znaków).

Poniższy przykładowy skrypt VBScript można dostosować i użyć jako dodatkowego obejścia. Dodaje "Uwierzytelnieni użytkownicy" do wersji "Power Users" dla wersji angielskiej i niemieckiej:

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

Rozwiązanie

Aby obejść ten problem w systemie Windows Server 2008 lub nowszym, użyj polecenia Add-ADGroupMember programu PowerShell zgodnie z opisem w następującym artykule TechNet:
Add-ADGroupMember

Jeśli używasz programu PowerShell 5.1, użyj polecenia Add-LocalGroupMember -Group Programu PowerShell, zgodnie z opisem w następującym artykule:
Add-LocalGroupMember