Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.


Go Back   Vista Forums > Misc Newsgroups > PowerShell

RB

Vista - Change Service Account Passwords

Reply
 
07-30-2007   #1
Buck Woody - Microsoft SQL Server Team


 
 

Change Service Account Passwords

Is there a way to change a service account password using PowerShell? I have
a VB Script that will do it, but it's a bit clunky. Thanks!

My System SpecsSystem Spec
07-30-2007   #2
IT Staff


 
 

Re: Change Service Account Passwords

well, show the vb code and we will translate to powershell for you ...in
shorter forms

"Buck Woody - Microsoft SQL Server Team"
<BuckWoodyMicrosoftSQLServerTeam@discussions.microsoft.com> wrote in message
newsFCA6DAF-F582-416F-B5F2-D08BFAF2E8A7@microsoft.com...
> Is there a way to change a service account password using PowerShell? I
> have
> a VB Script that will do it, but it's a bit clunky. Thanks!



My System SpecsSystem Spec
07-30-2007   #3
Buck Woody - Microsoft SQL Server Team


 
 

Re: Change Service Account Passwords

I'm not sure translating line by line is the best method - I wasn't sure if
there was a more direct route. At any rate, here's the VB code:
Set oArgs = WScript.Arguments


' Verify the inputs.

If oArgs.Count <> 5 Then
WScript.Echo "Usage: ChangeSQLServiceAccounts.vbs MachineName
InstaNcename ServiceType SQLAccount SQLPassword"
WScript.Echo "ServiceType = 1 (SQLServer), 2 (Agent), 3
(FTE), 4 (DTS), 5 (AS), 6 (RS), 7 (Browser)"
WScript.Echo "Example: ChangeSQLServiceAccounts.vbs .
MSSQLServer 1 BuiltIn\System NULL"
WScript.Quit(1)
Else

' Load the inputs into variables.

strComputer = oArgs(0)
strInstanceName = oArgs(1)
strServiceType = oArgs(2)
strAccountName = oArgs(3)
strPassword = oArgs(4)
End If

' Get a WMI object for the SQL namespace.

Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer &
"\ROOT\microsoft\sqlserver\ComputerManagement")

' Get an instance for this specific service.

Set objSQLService = objWMIService.Get("SqlService.ServiceName=""" &
strInstanceName & """,SQLServiceType=" & strServiceType)

' Obtain an InParameters object specific to the SQLService.SetServiceAccount
method.

Set objInParam =
objSQLService.Methods_("SetServiceAccount").inParameters.SpawnInstance_()

' Add the input parameters to the input object.

objInParam.Properties_.item("ServiceStartName") = strAccountName
objInParam.Properties_.item("ServiceStartPassword") = strPassword

' Call the SetServiceAccount method, and pass in the input object.

Set objOutParams = objSQLService.ExecMethod_("SetServiceAccount", objInParam)

'Check the return to see whether there were any errors.

If objOutParams.ReturnValue = 0 Then
Wscript.Echo "The service account was changed to " & strAccountName
Else
Wscript.Echo "Could not change the service account to " & strAccountName
& " due to error " & objOutParams.ReturnValue
End If


"IT Staff" wrote:

> well, show the vb code and we will translate to powershell for you ...in
> shorter forms
>
> "Buck Woody - Microsoft SQL Server Team"
> <BuckWoodyMicrosoftSQLServerTeam@discussions.microsoft.com> wrote in message
> newsFCA6DAF-F582-416F-B5F2-D08BFAF2E8A7@microsoft.com...
> > Is there a way to change a service account password using PowerShell? I
> > have
> > a VB Script that will do it, but it's a bit clunky. Thanks!

>
>
>

My System SpecsSystem Spec
07-31-2007   #4
Marco Shaw


 
 

Re: Change Service Account Passwords

Buck Woody - Microsoft SQL Server Team wrote:
> Is there a way to change a service account password using PowerShell? I have
> a VB Script that will do it, but it's a bit clunky. Thanks!


Whithin this class:
$class=[WMICLASS]'\\.\root\Microsoft\SqlServer\ComputerManagement:SqlService'

There's a method named setserviceaccount().

I've not used WMI enough, especially with methods, to figure out how to
invoke the method in this case.

Doing $class.psbase gives me a invokemethod() method, but I've not been
able to figure out the syntax or whether I'm on the right track.

Marco
My System SpecsSystem Spec
07-31-2007   #5
Buck Woody - Microsoft SQL Server Team


 
 

RE: Change Service Account Passwords

Answered my own question, thought I'd share the script:

# Copyright Buck Woody, 2007
# All scripts provided AS-IS. No functionality is guaranteed in any way.
# Change Service Account name and password using PowerShell and WMI
$class = Get-WmiObject -computername "SQLVM03-QF59YPW" -namespace
root\Microsoft\SqlServer\ComputerManagement -class SqlService
#This remmed out part shows the services - I'll just go after number 6 (SQL
Server Agent in my case):
# foreach ($classname in $class) {write-host $classname.DisplayName}
# $class[6].DisplayName
stop-service -displayName $class[6].DisplayName
# Note: I recommend you make these parameters, so that you don't store
passwords. At your own risk here!
$class[6].SetServiceAccount("account", "password")
start-service -displayName $class[6].DisplayName


"Buck Woody - Microsoft SQL Server Team" wrote:

> Is there a way to change a service account password using PowerShell? I have
> a VB Script that will do it, but it's a bit clunky. Thanks!

My System SpecsSystem Spec
Reply

RB


Thread Tools


Similar Threads for: Change Service Account Passwords
Thread Forum
Help with Script to Change Logon Account of a Service VB Script
Change Account Credentials (Log On as) on a service? PowerShell
How to change passwords in Windows Vista Vista General
change passwords in Vista Ultimate Vista security
change passwords Vista security


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd