NET.EXE comando /ADD não dá suporte a nomes com mais de 20 caracteres

Este artigo fornece uma solução para um erro que ocorre quando você usa o NET.EXE /ADD comando com nomes de usuário ou grupo com mais de 20 caracteres.

Aplica-se ao: Windows 10 - todas as edições, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Número de KB original: 324639

Sintomas

Quando você usa o NET.EXE comando junto com a opção /ADD e nomes de usuário ou grupo longos, isso apenas redimensiciona a sintaxe NET. Você não recebe nenhuma mensagem de erro.

Exemplo:

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]

A mesma ação funciona com o MMC (Gerenciamento de Computadores, Usuários Locais e Grupos) da Gui.

Motivo

O comando NET.EXE não dá suporte a nomes com mais de 20 caracteres por motivos de compatibilidade com o LAN Manager 2.0.

Resolução

Se o método GUI (interface do usuário gráfico) não puder ser usado e um método de script for necessário, use o utilitário kit de recursos do Windows 2000 Cusrmgr.exe. Ou use o VBScript, usando uma API (interface de programação de aplicativo) que dá suporte a nomes com mais de 20 caracteres.

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Mais informações

No exemplo na seção "Sintomas" deste artigo, use a seguinte sintaxe Cusrmgr.exe:

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

Esse problema também pode ocorrer com versões localizadas nas quais grupos internos excedem o limite de nome de 20 caracteres. Por exemplo, com o nome alemão para "Usuários Autenticados" (19 caracteres): "Authentifizierte Benutzer" (25 caracteres).

O VBScript de exemplo a seguir pode ser adaptado e usado como uma solução alternativa adicional. Ele adiciona "Usuários Autenticados" a "Usuários do Power" para a versão em inglês e alemão:

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

Solução alternativa

Para contornar esse problema no Windows Server 2008 e posterior, use o comando Add-ADGroupMember PowerShell, conforme descrito no seguinte artigo do TechNet:
Add-ADGroupMember

Se você estiver usando o PowerShell 5.1, use o comando Add-LocalGroupMember -Group PowerShell, conforme descrito no seguinte artigo:
Add-LocalGroupMember