我正在尝试使用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()
答案 0 :(得分:3)
你能以管理员的身份尝试:
$obj = [ADSI]"WinNT://$env:COMPUTERNAME"
$user = $obj.Children.find("utilisateur1")
$user.psbase.rename("user1")
$user.put('FullName','user1')
$user.setinfo()
根据以下代码,我无法看到sAMAcountName
或userAccountControl
是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)
您收到的错误消息是什么?您可能需要获取对用户的新引用,然后才能再次修改它。