代码问题
Powershell问题。
我正在尝试更改位于不同域的多个远程服务器上的本地用户密码。 csv文件包含4列:服务器名,域,密码,本地用户
示例:
- Server1,mydomain.dev,test123,localadmin
- Server2,mydomain.uat,test123,localadmin
- Server3,mydomain.prod test123,localadmin
这是我到目前为止所拥有的,但可惜没有成功:
Import-CSV servers.csv | ForEach-Object {Invoke-Command -ComputerName "$($_.servername).$($_.domain)" `
-Credential "$($_.domain)\$($env:username)" {([adsi]"WinNT://./$_.localuser").SetPassword($_.password)}
}
对Powershell来说还很陌生,我无所适从如何在{}内传递locauser和password属性。
非常感谢您的帮助!
问题答案
感谢@GuentherSchmitz的指导,以下内容对我有用。
Import-CSV servers.csv |
ForEach-Object {Invoke-Command -ComputerName "$($_.servername).$($_.domain)"-Credential "$($_.domain)\$($env:username)" {
param($l_user,$l_pass) ([adsi]"WinNT://./$l_user").SetPassword("$l_pass")} -ArgumentList $_.localuser,$_.password
}
如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。