如何解决修改 Powershell 4.0 中的本地用户属性说明
我想修改本地用户的描述属性。 我可以通过两种方式检索所有本地用户名和描述。
一个使用 WMI Win32_UserAccount 类:
Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount='True'" | Select-Object -Property name,description | FL
还有一个使用 ADSI:
$Computername = $env:COMPUTERNAME
$adsi = [ADSI]"WinNT://$Computername"
$Users = $adsi.Children | Where-Object {$_.SchemaClassName -eq 'user'}
ForEach ($u in $Users) {
$u | Select-Object -Property Name,Description
}
但是,我不知道如何使用与上述类似的命令来修改本地用户属性描述。我做了研究,只发现了如何做 GETS 而不是 SETS。 我的最终目标是将此代码放入 Ansible playbook 并在多个远程服务器上运行。如果您知道如何解决这个问题或如何帮助我,我将不胜感激。
解决方法
使用 ADSI 可能非常棘手,但它非常有用,因为它通常不依赖于 3rd 方模块。
无需深入了解 ADSI
,这是您可以更改或向属性添加值的最简单方法,在本例中为 description 属性:
$adsi = [ADSI]"WinNT://$env:Computername"
$User = $adsi.Children.Find('Abraham')
$User.Description = "Hi,this is a description"
$User.SetInfo()
使用 $User.SetInfo
方法,我们可以将更改写入数据库。当管道到 Get-Member
时,这也不是您可以获得的方法。不幸的是,这是您需要知道的。使用点符号,我们可以引用您想要更改的属性,然后像为变量赋值时一样为其赋值:$var = value
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。