无法通过 powershell 将用户添加到本地组

无法通过 powershell 将用户添加到本地组

尝试导入大量用户列表以进行 mac 身份验证。我可以创建用户,但无论我如何尝试,都无法将他们添加到本地组。我不断收到“传递了无效的目录路径名”的添加函数提示。

实际的错误如下:

Method invocation failed because [System.DirectoryServices.DirectoryEntry] does not contain a method named
'op_Addition'.
At C:\Users\Administrator\Desktop\Import Script\Import1.ps1:12 char:2
+     $objuser = [ADSI]"WinNT://RadiusSVR/" + $_.MAC
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (op_Addition:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Exception calling "Add" with "1" argument(s): "An invalid directory pathname was passed



$Computername = $env:COMPUTERNAME
$objgroup = [ADSI]"WinNT://./TEST" 
$target = [ADSI]"WinNT://$Computername"

Import-Csv testlist1.csv | ForEach-Object { 
    $newuser = $target.Create("user", $_.MAC) 
    $newuser.SetPassword($_.MAC) 
    $newuser.SetInfo() 
    $newuser.FullName = ($_.NAME)
    $newuser.SetInfo()
    $newuser.psbase.InvokeSet('AccountDisabled', $false) 
    $newuser.SetInfo() 
    $objuser = [ADSI]"WinNT://./" + $_.MAC
    $objgroup.Add($objuser) 
}

我尝试用 WinNT://RadiusSVR 替换 WinNT://.,但出现同样的问题,如果我尝试 WinNT://$Computername,也会出现同样的问题。

在有人问之前,是的,我的意思是将用户名和密码设置为 mac 地址。用户创建得很好,但问题是让他们进入该组。

答案1

请尝试以下操作:

$objuser = [ADSI]"WinNT://./$($_.MAC)"
$objgroup.Add($objuser) 

答案2

您不使用 New-ADUser 和 Add-ADGroupMember cmdlet 的原因是什么?

尝试改变这个

[ADSI]"WinNT://./" + $_.MAC

对此

[ADSI]("WinNT://./" + $_.MAC)

您已将其转换"WinNT://./"为 ADSI 对象,然后尝试添加,$_.Mac但这样做不起作用。创建整个字符串,然后将其转换为 ADSI 对象。

答案3

最后,在对包含 $objuser 的行进行多次迭代后,有人在另一个论坛上建议这样做。它毫不费力地就成功了。

无论我尝试什么其他方法,它都会抛出类型不匹配错误。

$Info = Import-CSV -Path "C:\Users\Administrator\Desktop\Import Script\testlist1.csv"

foreach ($user in $Info)

{
#Create the user using the property from the CSV called Name
net user $user.MAC /add;

#Set the user's password to the property from the CSV called MAC
 net user $user.MAC $user.MAC

 #Actually add them to group
 net localgroup "TEST" /add $user.MAC}

相关内容