Powershell 如何在多台服务器上远程更改服务帐户密码
我一直在搜索这里的档案,但还没有找到一个简单的解决我的问题的方法。我正在使用powershell和wmi更改服务帐户的密码。我可以在所有服务器上一次更改一个服务,如下所示:Powershell 如何在多台服务器上远程更改服务帐户密码,powershell,passwords,wmi,credentials,remote-server,Powershell,Passwords,Wmi,Credentials,Remote Server,我一直在搜索这里的档案,但还没有找到一个简单的解决我的问题的方法。我正在使用powershell和wmi更改服务帐户的密码。我可以在所有服务器上一次更改一个服务,如下所示: $Service = Get-WmiObject -Class Win32_Service -computer REMOTESERVER -filter "name='SERVICENAME'" $service.change($null,$null,$null,$null,$null,$null,$null,"newpas
$Service = Get-WmiObject -Class Win32_Service -computer REMOTESERVER -filter "name='SERVICENAME'"
$service.change($null,$null,$null,$null,$null,$null,$null,"newpasswordhere")
如您所见,我可以引用我想要的任何服务器以及该服务器上的任何服务。我想做的是以下几点
+$service.change您可能希望在上述脚本中添加一个循环,并且
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文件中的每台计算机的代码中运行
现在,这只回答了问题的第一部分,但应该为您提供一个良好的起点。Luke,当我有多台服务器符合条件时(-filter“name like“%service%”)我收到一个错误。我从name='servicename'切换,因为每台服务器可能有两个使用同一帐户的服务。看起来如果我没有进行服务。更改仍将通过每个服务进行。例如,我可以将每个服务写入文本文件,但这种格式似乎不希望同一服务器上的多个服务具有相同的名称同时更改了ir密码然后我误解了您的要求,因此您正在查找在“用户”下运行的所有服务,并且希望更改所有这些服务以更新“用户”的密码?这是我的错。我将其解释为特定的servicename。其他研究表明,我可以通过运行servicename的用户搜索servicename。是的,我想更改在特定用户下运行的任何服务的“登录”选项卡中的密码。我使用的是-filter startname,如“%\\name”或startname,如“name@%”“。这将定位所有服务,但由于每台服务器上有多个服务,因此会出现故障。当我筛选每台服务器上只有1个服务的服务时,脚本成功了。好吧,这更有意义,我会考虑一下,然后再与您联系。”。