在更改密码之前搜索某些服务
Searching for certain services before changing a password
我想更改名称中包含 "syn" 的所有密码。我知道您可以通过我正在做的状态来完成它,但是无论如何都可以通过搜索字符串的名称来完成吗?
$acctname = "domain\user"
$svcpwd = "password"
#Text file
$servers = (gc serverlist.txt)
#from AD
#Import-Module ActiveDirectory
#$servers = (Get-ADComputer -Filter *)
foreach ($server in $servers)
{
#Query service
gwmi win32_service -computername $server | % {
if ($_.StartName -eq $acctname)
{
$servicename = $_.Name
write-host "updating $servicename"
$svcnm = gwmi win32_service -computername $server -filter "name='$servicename'"
#Update Service
$svcnm.change($null,$null,$null,$null,$null,$null,"$UserName",$svcpwd,$null,$null,$null)
#Stop Service
$svcnm.stopservice
#Start Service
$svcnm.startservice
}
}
要获取以特定名称开头的所有服务,您可以像这样将 $_.Name -like '*syn*'
添加到 if 检查中
if (($_.StartName -eq $acctname) -and ($_.Name -like '*syn*'))
新的 if 语句只会在您要查找的服务的 StartName 等于 $acctname
且 Name 中包含 'syn' 时触发,这是您的完整代码可能看起来的样子喜欢
$acctname = "domain\user"
$svcpwd = "password"
#Text file
$servers = (gc serverlist.txt)
#from AD
#Import-Module ActiveDirectory
#$servers = (Get-ADComputer -Filter *)
foreach ($server in $servers)
{
#Query service
gwmi win32_service -computername $server | % {
if (($_.StartName -eq $acctname) -and ($_.Name -like '*syn*'))
{
$servicename = $_.Name
write-host "updating $servicename"
$svcnm = gwmi win32_service -computername $server -filter "name='$servicename'"
#Update Service
$svcnm.change($null,$null,$null,$null,$null,$null,"$UserName",$svcpwd,$null,$null,$null)
#Stop Service
$svcnm.stopservice
#Start Service
$svcnm.startservice
}
}
我想更改名称中包含 "syn" 的所有密码。我知道您可以通过我正在做的状态来完成它,但是无论如何都可以通过搜索字符串的名称来完成吗?
$acctname = "domain\user"
$svcpwd = "password"
#Text file
$servers = (gc serverlist.txt)
#from AD
#Import-Module ActiveDirectory
#$servers = (Get-ADComputer -Filter *)
foreach ($server in $servers)
{
#Query service
gwmi win32_service -computername $server | % {
if ($_.StartName -eq $acctname)
{
$servicename = $_.Name
write-host "updating $servicename"
$svcnm = gwmi win32_service -computername $server -filter "name='$servicename'"
#Update Service
$svcnm.change($null,$null,$null,$null,$null,$null,"$UserName",$svcpwd,$null,$null,$null)
#Stop Service
$svcnm.stopservice
#Start Service
$svcnm.startservice
}
}
要获取以特定名称开头的所有服务,您可以像这样将 $_.Name -like '*syn*'
添加到 if 检查中
if (($_.StartName -eq $acctname) -and ($_.Name -like '*syn*'))
新的 if 语句只会在您要查找的服务的 StartName 等于 $acctname
且 Name 中包含 'syn' 时触发,这是您的完整代码可能看起来的样子喜欢
$acctname = "domain\user"
$svcpwd = "password"
#Text file
$servers = (gc serverlist.txt)
#from AD
#Import-Module ActiveDirectory
#$servers = (Get-ADComputer -Filter *)
foreach ($server in $servers)
{
#Query service
gwmi win32_service -computername $server | % {
if (($_.StartName -eq $acctname) -and ($_.Name -like '*syn*'))
{
$servicename = $_.Name
write-host "updating $servicename"
$svcnm = gwmi win32_service -computername $server -filter "name='$servicename'"
#Update Service
$svcnm.change($null,$null,$null,$null,$null,$null,"$UserName",$svcpwd,$null,$null,$null)
#Stop Service
$svcnm.stopservice
#Start Service
$svcnm.startservice
}
}