我有大约 60-70 台机器,可能有也可能没有 SSRS。它运行的服务帐户的密码刚刚过期。有没有办法编写脚本来更新 SSRS 的密码?
答案1
此 powershell 代码将更改任意数量服务的服务帐户信息。在此版本中,列表是从文件检索的,但可以轻松修改为从 AD 中提取。另请注意,您可以一次更改多个服务。在这种情况下,将过滤器更改为“-filter“name=SSRS”。我还指定了帐户名。我不确定这是否是必需的,但我从未在没有帐户名的情况下这样做过。对于许多服务,还需要重新启动服务,为此您应该取消注释重新启动行。
$account="domain\userName"
$password="password"
$computers = get-content servers.txt
$svcs = gwmi win32_service -filter "name='myservice' and name='myservice2' and name='myservice3'" -computerName $computers
foreach($s in $svcs)
{
$s.change($null,$null,$null,$null,$null,$null,$account,$password,$null,$null,$null)
# optional service restart
# $s.stopservice
# $s.startservice
}
答案2
您可以使用 SMO WMI 管理类,它可以处理任何特殊权限。
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
$wmi = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") $env:computername
$wmi.services | where {$_.Type -eq 'ReportServer'} | foreach {$_.SetServiceAccount('contoso\mylogin','mypassword')}