【问题标题】:Cannot set attributes using ADSI in powershell无法在 powershell 中使用 ADSI 设置属性
【发布时间】:2012-05-24 16:23:36
【问题描述】:

我正在尝试使用 powershell 创建新用户。我们没有运行活动目录(不确定这是否会改变事情)。这是我正在尝试做的事情:

$machine = [ADSI]"WinNT://localhost,computer"
$newUser = $machine.Create("User", $Username)
$newUser.setpassword($Password)
$newUser.SetInfo()

到目前为止一切正常,用户已创建。但是现在我想像这样更改其他设置,但它们都失败了

$newUser.Put("sAMAcountName", $Username)
$newUser.SetInfo()

$newUser.Put("userAccountControl", 0x10000)
$newUser.SetInfo()

更新

这是我遇到的错误

Exception calling "Put" with "2" argument(s): "Exception from HRESULT: 0x8000500F"

知道我做错了什么吗?谢谢!

解决方案

JPBlanc 的回答帮助我指明了正确的方向。

最大的问题是几乎没有关于在不属于 Active Directory 域的计算机上使用 [ADSI] 的文档。

我能够使用 UserFlags 属性解决问题。

$newUser.UserFlags = $UserFlags.DONT_EXPIRE_PASSWD
$newUser.CommitChanges()

【问题讨论】:

    标签: powershell adsi


    【解决方案1】:

    你可以试试管理员身份吗:

    $obj = [ADSI]"WinNT://$env:COMPUTERNAME"
    $user = $obj.Children.find("utilisateur1")
    $user.psbase.rename("user1")
    $user.put('FullName','user1')
    $user.setinfo()
    

    根据以下代码,我看不到 sAMAcountNameuserAccountControl 是 AD 用户属性:

    PS C:\Windows\system32> $a | fl *
    
    
    UserFlags                  : {513}
    MaxStorage                 : {-1}
    PasswordAge                : {917}
    PasswordExpired            : {0}
    LoginHours                 : {255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255}
    FullName                   : {user1}
    Description                : {}
    BadPasswordAttempts        : {0}
    HomeDirectory              : {}
    LoginScript                : {}
    Profile                    : {}
    HomeDirDrive               : {}
    Parameters                 : {}
    PrimaryGroupID             : {513}
    Name                       : {user1}
    MinPasswordLength          : {0}
    MaxPasswordAge             : {3628800}
    MinPasswordAge             : {0}
    PasswordHistoryLength      : {0}
    AutoUnlockInterval         : {1800}
    LockoutObservationInterval : {1800}
    MaxBadPasswordsAllowed     : {0}
    objectSid                  : {1 5 0 0 0 0 0 5 21 0 0 0 151 181 85 95 2 227 17 190 248 24 47 102 18 4 0 0}
    AuthenticationType         : Secure
    Children                   : {}
    Guid                       : {D83F1060-1E71-11CF-B1F3-02608C9E7553}
    ObjectSecurity             :
    NativeGuid                 : {D83F1060-1E71-11CF-B1F3-02608C9E7553}
    NativeObject               : System.__ComObject
    Parent                     : WinNT://WORKGROUP/JPBHPP2
    Password                   :
    Path                       : WinNT://WORKGROUP/JPBHPP2/user1
    Properties                 : {UserFlags, MaxStorage, PasswordAge, PasswordExpired...}
    SchemaClassName            : User
    SchemaEntry                : System.DirectoryServices.DirectoryEntry
    UsePropertyCache           : True
    Username                   :
    Options                    :
    Site                       :
    Container                  :
    
    
    PS C:\Windows\system32> $a | select -ExpandProperty properties
    
    PropertyName                                                     Value
    ------------                                                     -----
    UserFlags                                                          513
    MaxStorage                                                          -1
    PasswordAge                                                        917
    PasswordExpired                                                      0
    LoginHours                                     {255, 255, 255, 255...}
    FullName                                                         user1
    Description
    BadPasswordAttempts                                                  0
    HomeDirectory
    LoginScript
    Profile
    HomeDirDrive
    Parameters
    PrimaryGroupID                                                     513
    Name                                                             user1
    MinPasswordLength                                                    0
    MaxPasswordAge                                                 3628800
    MinPasswordAge                                                       0
    PasswordHistoryLength                                                0
    AutoUnlockInterval                                                1800
    LockoutObservationInterval                                        1800
    MaxBadPasswordsAllowed                                               0
    objectSid                                              {1, 5, 0, 0...}
    

    【讨论】:

      【解决方案2】:

      您收到的错误消息是什么?您可能需要先获取对用户的新引用,然后才能再次修改它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多