Difference between revisions of "Windows Service From Powershell Script"
Jump to navigation
Jump to search
| Line 1: | Line 1: | ||
| − | # Event Log | + | # Create Event Log Application and test event |
``` | ``` | ||
New-EventLog –LogName Application –Source "watchAuth0LDAPConn" | New-EventLog –LogName Application –Source "watchAuth0LDAPConn" | ||
| Line 5: | Line 5: | ||
``` | ``` | ||
| − | # Script | + | # Create Script |
C:\app\watchAuth0LDAPConn.ps1 | C:\app\watchAuth0LDAPConn.ps1 | ||
``` | ``` | ||
| Line 27: | Line 27: | ||
``` | ``` | ||
| − | # Create | + | # Create Service |
Download and use nssm.exe to create service - https://nssm.cc/download | Download and use nssm.exe to create service - https://nssm.cc/download | ||
| Line 36: | Line 36: | ||
``` | ``` | ||
| + | # Start Service | ||
``` | ``` | ||
start-service watchAuth0LDAPConn | start-service watchAuth0LDAPConn | ||
| Line 41: | Line 42: | ||
``` | ``` | ||
| − | + | Remove Service | |
``` | ``` | ||
nssm.exe remove watchAuth0LDAPConn confirm | nssm.exe remove watchAuth0LDAPConn confirm | ||
Revision as of 19:46, 22 March 2022
Create Event Log Application and test event
New-EventLog –LogName Application –Source "watchAuth0LDAPConn" Write-EventLog –LogName Application –Source "watchAuth0LDAPConn" –EntryType Information –EventID 1 –Message "This is a test message."
Create Script
C:\app\watchAuth0LDAPConn.ps1
$url = "127.0.0.1:49948"
$sleep = 3
$msg = "Starting $url connection watcher."
Write-Output $msg
Write-EventLog -LogName "Application" -Source "watchAuth0LDAPConn" -EventID 1 -EntryType Information -Message $msg
while($true){
try {
$r = Invoke-WebRequest $url
}
catch {
$_.Exception.Message
$msg = "URL $url is unresponsive. Restarting Auth0LDAP service."
Write-Output $msg
Write-EventLog -LogName "Application" -Source "watchAuth0LDAPConn" -EventID 2 -EntryType Warning -Message $msg
}
Start-Sleep -s $sleep
}
Create Service
Download and use nssm.exe to create service - https://nssm.cc/download
$Binary = (Get-Command Powershell).Source $Arguments = '-ExecutionPolicy Bypass -NoProfile -File "C:\app\watchAuth0LDAPConn.ps1"' .\nssm.exe install watchAuth0LDAPConn $Binary $Arguments
Start Service
start-service watchAuth0LDAPConn get-service watchAuth0LDAPConn
Remove Service
nssm.exe remove watchAuth0LDAPConn confirm
you may be able to use sc.exe but I had issues with New-Service command limits because it was ps1 and not exe