Difference between revisions of "Windows Services"
From MgmtWiki
(→Solutions) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Full Title or Meme== | ==Full Title or Meme== | ||
− | Best practices on using [Windows Services]]. | + | Best practices on using [[Windows Services]]. |
==Solutions== | ==Solutions== | ||
* [http://woshub.com/set-permissions-on-windows-service/#h2_1 How to Allow Non-Admin Users to Start/Stop Windows Service?] | * [http://woshub.com/set-permissions-on-windows-service/#h2_1 How to Allow Non-Admin Users to Start/Stop Windows Service?] | ||
+ | * The Windows User need permission to run a service with that user account. | ||
+ | # First enable [[Windows Group Policy]] editor. | ||
+ | ===PowerShell script=== | ||
+ | a function for PowerShell that changes the username, password, and restarts a service on a remote computer (you can use localhost if you want to change the local server). I've used this for monthly service account password resets on hundreds of servers. | ||
+ | |||
+ | You can find a copy of the original at http://www.send4help.net/change-remote-windows-service-credentials-password-powershel-495 | ||
+ | |||
+ | It also waits until the service is fully stopped to try to start it again, unlike one of the other answers. | ||
+ | <pre> | ||
+ | Function Set-ServiceAcctCreds([string]$strCompName,[string]$strServiceName,[string]$newAcct,[string]$newPass){ | ||
+ | $filter = 'Name=' + "'" + $strServiceName + "'" + '' | ||
+ | $service = Get-WMIObject -ComputerName $strCompName -namespace "root\cimv2" -class Win32_Service -Filter $filter | ||
+ | $service.Change($null,$null,$null,$null,$null,$null,$newAcct,$newPass) | ||
+ | $service.StopService() | ||
+ | while ($service.Started){ | ||
+ | sleep 2 | ||
+ | $service = Get-WMIObject -ComputerName $strCompName -namespace "root\cimv2" -class Win32_Service -Filter $filter | ||
+ | } | ||
+ | $service.StartService() | ||
+ | } | ||
+ | </pre> | ||
+ | |||
==References== | ==References== | ||
[[Category:Best Practice]] | [[Category:Best Practice]] |
Latest revision as of 15:46, 9 August 2020
Full Title or Meme
Best practices on using Windows Services.
Solutions
- How to Allow Non-Admin Users to Start/Stop Windows Service?
- The Windows User need permission to run a service with that user account.
- First enable Windows Group Policy editor.
PowerShell script
a function for PowerShell that changes the username, password, and restarts a service on a remote computer (you can use localhost if you want to change the local server). I've used this for monthly service account password resets on hundreds of servers.
You can find a copy of the original at http://www.send4help.net/change-remote-windows-service-credentials-password-powershel-495
It also waits until the service is fully stopped to try to start it again, unlike one of the other answers.
Function Set-ServiceAcctCreds([string]$strCompName,[string]$strServiceName,[string]$newAcct,[string]$newPass){ $filter = 'Name=' + "'" + $strServiceName + "'" + '' $service = Get-WMIObject -ComputerName $strCompName -namespace "root\cimv2" -class Win32_Service -Filter $filter $service.Change($null,$null,$null,$null,$null,$null,$newAcct,$newPass) $service.StopService() while ($service.Started){ sleep 2 $service = Get-WMIObject -ComputerName $strCompName -namespace "root\cimv2" -class Win32_Service -Filter $filter } $service.StartService() }