【发布时间】:2011-09-07 17:29:46
【问题描述】:
我想使用 powershell 更新在多个服务器上以一个帐户运行的所有服务的密码。我尝试了 Get-process、Get-WMIObject cmdlet,但这两个命令没有使用 serviceaccount。有没有办法通过将服务帐户,密码作为参数传递给脚本来更新使用帐户运行的所有服务的密码。
【问题讨论】:
标签: powershell
我想使用 powershell 更新在多个服务器上以一个帐户运行的所有服务的密码。我尝试了 Get-process、Get-WMIObject cmdlet,但这两个命令没有使用 serviceaccount。有没有办法通过将服务帐户,密码作为参数传递给脚本来更新使用帐户运行的所有服务的密码。
【问题讨论】:
标签: powershell
要使用特定帐户获取服务列表,您可以执行以下操作:
Get-WmiObject "win32_service" -Filter "StartName='domain\\user'"
要更改这些密码,您可以:
Get-WmiObject "win32_service" -Filter "StartName='domain\\user'" |
%{$_.StopService();$_.Change($null,$null,$null,$null,$null,$null,$null,"blah");}
从这里:http://www.send4help.net/change-remote-windows-service-credentials-password-powershel-495
【讨论】:
StartName 基于返回的对象,根据您查询的内容,它可以是不同的类型。
试试这个:
Function GLOBAL:GET-PROCESSUSER ( $ProcessID ) {
(GET-WMIOBJECT win32_process –filter “Handle=$ProcessID”).GetOwner().User
}
$svcs = Get-Process | Select-Object name, starttime, ID
$a = @()
foreach ($svc in $svcs)
{
if ( $svc.name -ne "Idle" -and $svc.name -ne "System")
{
$al = New-Object System.Object
$al | Add-Member -type NoteProperty -name Name -Value $svc.name
$al | Add-Member -type NoteProperty -name Owner -Value ( get-processuser $svc.id)
$a += $al
}
}
$a
评论后编辑:
$a = (GET-WMIOBJECT win32_service) | ? { $_.startname -eq "domain\\username"} | %{$_.StopService();$_.Change($null,$null,$null,$null,$null,$null,$null,"newpassword");}
【讨论】:
这就是你们需要的
Get-WMIObject Win32_Service | Where-Object {$_.startname -ne "localSystem" }| Where-Object {$_.startname -ne "NT AUTHORITY\LocalService" } |Where-Object {$_.startname -ne "NT AUTHORITY\NetworkService" } |select startname, name
【讨论】:
是的 - 这似乎是最好的方法
Get-WMIObject Win32_Service | Where-Object {($_.startname -ne "NT AUTHORITY\LocalService") -and ($_.startname -ne "NT AUTHORITY\NetworkService") -and ($_.startname -ne "localSystem") } `
|select @{ Name = "Service Account " ; Expression = { ( $_.startname ) } }, `
@{ Name = "Service Dispaly Name " ; Expression = { ( $_.name ) } }, StartMode,State, Status | FT -AutoSize
【讨论】: