无法在PowerShell中使用ADSI设置属性

时间:2012-05-24 16:23:37

标签: powershell adsi

我正在尝试使用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()

2 个答案:

答案 0 :(得分:3)

你能以管理员的身份尝试:

$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...}

答案 1 :(得分:0)

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