【问题标题】:Error while adding a local group to local user using powershell使用 powershell 将本地组添加到本地用户时出错
【发布时间】:2013-11-29 12:52:36
【问题描述】:

我使用以下命令设置密码并为用户添加组:

$user=[ADSI]'WinNT://localhost/account5';
$user.SetPassword('Passw0rd#');
$OBjOU =[ADSI]'WinNT://localhost/Administrators,group';
$objOU.add($user.path);

密码正在重置,但在将帐户添加到用户时出现以下错误:

无法将成员添加到本地组或从本地组中删除,因为该成员不存在。

但是本地成员已经存在,并且正在输入本地用户的密码。

已编辑:

尝试手动将用户添加到组时,搜索用户的位置默认为域。计算机中的本地用户不属于该域,因此无法添加。当我选择该位置作为本地计算机然后添加用户时,用户正在被添加。这可能是出现上述错误的原因。我们如何通过powershell命令将位置(搜索用户的位置)更改为本地机器?

【问题讨论】:

    标签: windows powershell


    【解决方案1】:

    试试这个:

    $user=[ADSI]"WinNT://$Env:Computername/account5";
    $user.SetPassword('Passw0rd#');
    $OBjOU =[ADSI]"WinNT://$Env:ComputerName/Administrators,group";
    $objOU.add($user.path);
    

    【讨论】:

    • +1 显然您必须使用用户对象的实际主机名。 localhost. 都不起作用。不过,对于组,您可以使用 $env:COMPUTERNAMElocalhost.。感谢 Microsoft 的另一个不一致之处。
    • 我在远程机器上尝试了上面的脚本。我收到以下异常:检索成员“SetPassword”时发生以下异常:“找不到网络路径。” + CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException + FullyQualifiedErrorId : CatchFromBaseGetMember
    • 它并不意味着要在远程机器上运行。你应该在本地运行它,我知道它可以工作,因为我使用它。正如您之前使用“localhost”一样,我假设您无论如何都想在本地运行它,对吧?
    • 没有。该脚本正在远程计算机上运行。提供 localhost 将在远程机器上运行命令。
    • 我在本地机器上尝试过同样的方法。它给出了同样的错误。 @AdilH。 :我在使用 GUI 将用户添加到组时观察到一些事情。我已经在问题中添加了它
    【解决方案2】:

    我尝试了以下方法,效果很好:

    $CompStat = Get-WmiObject win32_computersystem;
    $Localhst = $CompStat.Name;
    $Computer = [ADSI]('WinNT://'+$localhst+',computer');
    $accName = [ADSI]('WinNT://'+$Localhst+'/account8,user');
    $group = [ADSI]('WinNT://'+$Localhst+'/testgroup,group');
    $group.add($accName.path);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多