Create a function that takes an input of a service name and prompt the user to stop or start that service
Serviceprompt.ps1
Function serviceprompt
{
$serviceName = Read-Host "Please enter the service name "
$serviceStatus =(Get-Service $serviceName).status
if ($serviceStatus -match "Running") { `
$stopPrompt =Read-Host "This service is running do you want to stop it? Y\N "
if ($stopPrompt -eq "Y") { `
stop-service $serviceName
Write-Output "stopping the $servicename Service"} `
Else {Write-output "Leaving Service $serviceStatus"}} `
ElseIF ($serviceStatus -match "Stopped"){ `
$startPrompt =Read-Host "This service is stopped do you want to start it? Y\N "
if ($startPrompt -eq "Y") { `
start-service $serviceName
Write-Output "starting the $servicename Service"} `
Else {Write-output "Leaving Service $serviceStatus"}} `
Else { Write-Output "Service is in $ServiceState State"}
}
serviceprompt
http://bartdesmet.net/blogs/bart/archive/2006/09/16/4429.aspx
Not working yet
Servicepromptgui.ps1
Function serviceprompt
{
[system.reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
#[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$serviceName = Read-Host "Please enter the service name "
$serviceStatus =(Get-Service $serviceName).status
if ($serviceStatus -match "Running") { `
$strMessage = "This service is running do you want to stop it?"
$stopmsgBox = [Windows.Forms.MessageBox]::Show($strMessage, "Stop Service?", `
[Windows.Forms.MessageBoxButtons]::YesNo, [Windows.Forms.MessageBoxIcon]::Question)
#$stopmsgBox -eq [Windows.Forms.DialogResult]::Yes
if ($stopPrompt -eq "Yes") { `
#stop-service $serviceName
Write-Output "stopping the $servicename Service"} `
Else {Write-output "Leaving Service $serviceStatus"}} `
ElseIF ($serviceStatus -match "Stopped"){ `
$strMessage = "This service is stopped do you want to start it?"
$stopmsgBox = [Windows.Forms.MessageBox]::Show($strMessage, "Start Service?", `
[Windows.Forms.MessageBoxButtons]::YesNo, [Windows.Forms.MessageBoxIcon]::Question)
if ($startPrompt -eq "Y") { `
start-service $serviceName
Write-Output "starting the $servicename Service"} `
Else {Write-output "Leaving Service $serviceStatus"}} `
Else { Write-Output "Service is in $ServiceState State"}
}
serviceprompt
ClassChallenge.ps1
Function StopStart-Service
{
$sService = $args[0]
$baction = $args[1]
$response = $args[2]
Write-Host $response
if ($response -eq "Yes")
{
if ($baction -eq "Stop")
{
Get-Service $sservice | Stop-Service
}
ElseIf ($baction -eq "Start")
{
Get-Service $sService | Start-Service
}
Else
{
Write-Host "User terminated!"
}
}
Else
{
Write-Host "No Action required "
}
}
#uncomment the next two lines to read from a passed argument and comment the 2 lines after that
#$sService = $args[0]
#Write-Host "Service Name: $service"
[system.reflection.assembly]::loadwithpartialname("microsoft.visualbasic")
$serviceName = [microsoft.visualbasic.interaction]::InputBox("please enter a service name.", "Service Name")
$oService = Get-Service $sService
$Prompt = " The service $($oService.DisplayName) is currently"
$iButtons = 4 # yes/no buttons
$sTitle = "Action Required!"
#$oService.status
if ($oService.Status -eq "Stopped")
{
$Prompt = $Prompt + " Stopped. Would you like to start it?"
$sResponse = [microsoft.visualbasic.interaction]::MsgBox($prompt,$iButtons,$sTitle)
stopstart-service $sService "Start" $sResponse
(Get-Service $sService).status
}
Elseif ($oService.Status -eq "Running")
{
$Prompt = $Prompt + " Running. Would you like to stop it?"
$sResponse = [microsoft.visualbasic.interaction]::MsgBox($prompt,$iButtons,$sTitle)
stopstart-service $sService "Stop" $sResponse
(Get-Service $sService).status
}
Else
{
Write-Host "blah"
}