Here is a useful PowerShell command that will list all the SQL Server Instances on your computer
(get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
Here is a useful PowerShell command that will list all the SQL Server Instances on your computer
(get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
Following on from the previous post I published on remotely managing Windows Services with PowerShell I thought it would be useful to add some extra scripts that you can use to work with Windows Services.
Get-Service -Name [INSERT_SERVICE_NAME] -ComputerName [INSERT_COMPUTER_NAME] | Format-Table –AutoSize
Example:
Get-Service -Name Jonathan.Welch.Test.Service -ComputerName jon-app-01 | Format-Table –AutoSize
Get-Service -Name [INSERT_PART_OF_SERVICE_NAME]* -ComputerName [INSERT_COMPUTER_NAME] | Format-Table –AutoSize
Example:
This script will find all services that start with Jonathan.Welch
Get-Service -Name Jonathan.Welch* -ComputerName jon-app-01 | Format-Table –AutoSize
$computers = @("[INSERT_COMPUTER_NAME_1]", "[INSERT_COMPUTER_NAME_2]") Get-Service -Name [INSERT_SERVICE_NAME] -ComputerName $computers | Select MachineName, Name, Status | Sort MachineName, Name | Format-Table –AutoSize
Example:
$computers = @("jon-app-01", "jon-app-02") Get-Service -Name Jonathan.Welch.Test.Service -ComputerName $computers | Select MachineName, Name, Status | Sort MachineName, Name | Format-Table –AutoSize
#Hello World!
Here is a snippet of code that you can use to install a Windows Service using PowerShell:
new-service -Name [INSERT SERVICE NAME] -DisplayName "[INSERT DISPLAY NAME]" -Description "[INSERT DESCRIPTION]" -BinaryPathName "[INSERT BINARY PATH]" -StartupType Manual -Credential [INSERT CREDENTIALS]
Here is an example for a pretend service:
new-service -Name Jonathan.Welch.Test.Service -DisplayName "Jonathan Welch Test Service" -Description "Test Service that does some stuff" -BinaryPathName "C:\Jon\Jonathan.Welch.Test.Service.exe" -StartupType Manual -Credential JonDomain\Jon.Welch
To install a service with startup type Automatic just change -StartupType Manual to be -StartupType Automatic as shown below:
new-service -Name Jonathan.Welch.Test.Service -DisplayName "Jonathan Welch Test Service" -Description "Test Service that does some stuff" -BinaryPathName "C:\Jon\Jonathan.Welch.Test.Service.exe" -StartupType Automatic -Credential JonDomain\Jon.Welch
Following on from a previous post I published on how to remotely manage IIS via PowerShell scripts I thought it would be useful to detail how to also manage Windows Services remotely.
Get-Service -Name [INSERT_SERVICE_NAME] -ComputerName [INSERT_COMPUTER_NAME] | Restart-service
Example:
Get-Service -Name Jonathan.Welch.Test.Service -ComputerName jon-app-01 | Restart-service
Get-Service -Name [INSERT_SERVICE_NAME] -ComputerName [INSERT_COMPUTER_NAME] | Stop-service
Example:
Get-Service -Name Jonathan.Welch.Test.Service -ComputerName jon-app-01 | Stop-service
Get-Service -Name [INSERT_SERVICE_NAME] -ComputerName [INSERT_COMPUTER_NAME] | Start-service
Example:
Get-Service -Name Jonathan.Welch.Test.Service -ComputerName jon-app-01 | Start-service
Get-WmiObject Win32_Service -ComputerName [INSERT_COMPUTER_NAME] | ? { $_.Name -Match '[INSERT_SERVICE_NAME]' -and $_.StartMode -ne 'Disabled' } | % { $_.StartService() }
Example:
Get-WmiObject Win32_Service -ComputerName jon-app-01 | ? { $_.Name -Match 'Jonathan.Welch.Test.Service' -and $_.StartMode -ne 'Disabled' } | % { $_.StartService() }
Note that in the examples above you can append a * to the end of service name to find services that match that name. So you could shorten the name to Jonathan.Welch* to find all services with names that start with Jonathan.Welch