我一直在这里搜索文件,但是还没有找到解决问题的简单方法(即我能理解的东西)。我正在使用Powershell和WMI更改服务帐户上的密码。我可以一次在所有服务器上更改一项服务,如下所示:
$Service = Get-WmiObject -Class Win32_Service -computer REMOTESERVER -filter "name='SERVICENAME'"
$service.change($null,$null,$null,$null,$null,$null,$null,"newpasswordhere")
如您所见,我可以引用所需的任何服务器以及该服务器上的任何服务。我想做的是以下
Method invocation failed because [System.Object[]] doesn't contain a method named 'change'. At line:1 char:16 + $service.change <<<< ($null,$null,$null,$null,$null,$null,$null,"newpasswordhere") + CategoryInfo : InvalidOperation: (change:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound
虽然只有一项服务,但效果很好
如何增强此脚本以处理这3个附加项目?
谢谢
最佳答案
您可能想在上面的脚本中添加一个循环,并且您想要
param
(
[string]$File
)
$Computer = Get-Content $file
foreach ($i in $Computer){
$Service = Get-WmiObject -Class Win32_Service -computer $i -filter "name='SERVICENAME'"
$service.change($null,$null,$null,$null,$null,$null,$null,"newpasswordhere")
}
您添加了Param,以便可以多次使用它,然后foreach循环将遍历您的.txt文件中每台计算机的代码。
现在,这仅回答了问题的第一部分,但应该为您提供一个良好的起点。
关于powershell - 如何在多个服务器上远程更改服务帐户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30240610/