gpt4 book ai didi

powershell - 无法在 powershell 中使用 ADSI 设置属性

转载 作者:行者123 更新时间:2023-12-02 23:30:58 25 4
gpt4 key购买 nike

我正在尝试使用 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 的回答帮助我指明了正确的方向。

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

我能够使用 UserFlags 解决这个问题属性(property)。
$newUser.UserFlags = $UserFlags.DONT_EXPIRE_PASSWD
$newUser.CommitChanges()

最佳答案

您可以尝试以管理员身份:

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

关于powershell - 无法在 powershell 中使用 ADSI 设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com