
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХрд╛рд░реНрдп рдЗрддрдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдХрдо рд╕реЗ рдХрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдЪреВрдБрдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдФрд░ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ, рдпрд╛рдиреА рд▓рд┐рдкрд┐рдпрд╛рдБ, рдФрд░ рдмреИрд╕рд╛рдЦреА, рджрд┐рд▓ рд╕реЗ рдкреНрдпрд╛рд░реА, рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЬреЛ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╣реИрдВ, "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВред"
рдпрджрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ
рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реЗрд╡рд╛ рд▓рдЧрд╛рддрд╛рд░ рдЪрд▓рддреА рд╣реИ, рдкреАрд╕реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдЯреВрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд┐рдЫрд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрд╣ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреАрд╕реАрдкреА рдпрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдкрд┐рдЫрд▓реЗ рдкрд╛рдБрдЪ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореБрдЭреЗ рд╕рд╛рдврд╝реЗ рддреАрди рдмрд╛рд░ рд╕реЗрд╡рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ:
- рдпрд╣ Windows 2003 рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛ 2ban рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрд╕рдиреЗ FileZilla рдФрд░ Apache рд▓реЙрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЬрд╛рдирд╡рд░ рдмрд▓ рдХрд╛ рд╕рдВрджреЗрд╣ рдерд╛, рддреЛ рдЗрд╕рдиреЗ рдорд╛рдирдХ рд╡рд┐рдВрдбреЛрдЬ рдЯреВрд▓реНрд╕ - ipsec рдХреЗ рд╕рд╛рде IP рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ред
- рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╣реЛрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓рдиреЗрдЯ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧред рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ 7 рд╣реЛрдо рдЪрд▓рд╛ рд░рд╣реЗ рд░рд┐рдореЛрдЯ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЦреЗрд▓рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕ред
- рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЯреНрд░реЗрдбрд┐рдВрдЧ рдлреНрд▓реЛрд░ рдХреЗ рд▓рд┐рдП рдореНрдпреВрдЬрд┐рдХ рдкреНрд▓реЗрдпрд░ред рдЯреАрдХреЗ рдкрд░ рдХрд╛рд░реНрдп рдХреЛ рдПрдордкреАрдбреА рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдЕрдЧрд░ рд╣рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдереЗ, рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ "рдвреЗрд░" рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рд╛рдЗрдмреНрд░реЗрд░реА BASS.dll рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред
- рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЪреБрдирддреЗ рд╕рдордп, рдПрдХ рд╡рд┐рдХрд▓реНрдк рдПрдЪрдПрдлрдПрд╕ рдерд╛ред рд╡рд╣ рдЕрдкрдиреЗ рджрдо рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕реЗ рд╕реЗрд╡рд╛ рдореЗрдВ "рджреВрд░" рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдирддреАрдЬрддрди, рдореБрдЭреЗ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛, рдФрд░ рдмрд╕ Apache рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ Apaxy рд╡рд┐рд╖рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред
рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реАред рдЬреИрд╕реЗ рд╡рдпрд╕реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рддреИрдпрд╛рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╡рд╣рд╛рдБ FireDaemon рдкреНрд░реЛ рдпрд╛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╕рдорд╛рдзрд╛рди рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдХреНрдд рд▓реЛрдЧреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ред Microsoft рд╕реЗ
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреБрдЬреБрд░реНрдЧ рддрдВрддреНрд░ рдореЗрдВ рджреЛ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рд╕реЗрд╡рд╛ рдФрд░ srvany.exe рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП instsrv.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдкреЛрд▓рд╛рд░рд┐рд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PowerShell рдкрд░ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмрдирд╛рдпрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реЛрдЧреА:
New-PolarisGetRoute -Path '/helloworld' -Scriptblock { $Response.Send('Hello World!') } Start-Polaris -Port 8080 while($true) { Start-Sleep -Milliseconds 10 }

рддрдерд╛рдХрдерд┐рдд "рд╕рд░реНрд╡рд░" рдХрд╛ рдХрд╛рдоред
рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Windows рд╕рдВрд╕рд╛рдзрди рдХрд┐рдЯ рдЙрдкрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реЛрдВрдЧреАред рдЖрдЗрдП рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
instsrv WebServ C:\temp\rktools\srvany.exe
рдЬрд╣рд╛рдВ WebServ рд╣рдорд╛рд░реА рдирдИ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ services.msc рд╕реНрдиреИрдк-рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред
рдЕрдм рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореИрдЬрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрде рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреБрдВрдЬреА HKLM \ SYSTEM \ CurrentControlSet \ Services \ WebServ рдореЗрдВ рд╣реИрдВ ред рдЗрд╕рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЬреЛ рдЗрд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдорд╛рд░реНрдЧ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -File C:\temp\Polaris\server.ps1

рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реЗрд╡рд╛ред
рдЖрдк рджреМрдбрд╝рдХрд░ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реЗрд╡рд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
- рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ рдкреБрд░рд╛рдиреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╛рд╡рд░рд╢реЗрд▓, рдпреВрдПрд╕реА рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- Srvany рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╕реЗрд╡рд╛ рдЕрдкрдирд╛ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦреЗрдЧреА рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред
- рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдФрд░ рддрд▓реНрд▓реАрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЦреБрджрд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ?
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд░рд╣рд┐рдд рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛, рд▓рдЧрднрдЧ рдПрдХ рд╡рдпрд╕реНрдХ
рдПрдирдПрд╕рдПрд╕рдПрдо - рдиреЙрди-рд╕рдХрд┐рдВрдЧ рд╕рд░реНрд╡рд┐рд╕ рдореИрдиреЗрдЬрд░ рдирд╛рдордХ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧреИрд░-рдЦрд░рд╛рдм рд╕реЗрд╡рд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдерд╛рдкрдирд╛ рдЪреЙрдХрд▓реЗрдЯреА рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд▓реИрд╕ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо PowerShell рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рд▓реНрдХреБрд▓ред
$nssm = (Get-Command ./nssm).Source $serviceName = 'WebServ' $powershell = (Get-Command powershell).Source $scriptPath = 'C:\temp\Polaris\server.ps1' $arguments = '-ExecutionPolicy Bypass -NoProfile -File "{0}"' -f $scriptPath & $nssm install $serviceName $powershell $arguments & $nssm status $serviceName Start-Service $serviceName Get-Service $serviceName

PowerShell рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрдирд╛ред
рдХрд┐рд╕реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП, рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ PowerShell рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдирд╡реЛрдХ-рд░реЗрд╕реНрдЯрдореИрде рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ ред

рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Srvany рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрдЯрдб рдФрд░ рд╕реНрдЯрдбрдЖрдЙрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрдорд╛рдВрдб рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЬреАрдпреВрдЖрдИ рдЪрд▓рд╛рдПрдВ рдФрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд░реЗрдВред
GUI рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
nssm.exe install ServiceName

рдЖрдк рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣рд╛рдБ srvany рдФрд░ рдХрдИ рдЕрдиреНрдп analogues рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рд╣реИрдВред Minuses рдХреА, рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдирд┐рдпрдВрддреНрд░рдг рд╣рдбрд╝рддрд╛рд▓реА рд╣реИред
рдЯрд┐рди рдХреА рдХрдореА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдмрд╕реЗ рдХрдЯреНрдЯрд░ рддрд░реАрдХреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ред
рддреАрд╕рд░рд╛ рддрд░реАрдХрд╛ред AutoIt
рдЪреВрдБрдХрд┐ рдореИрдВ рдЗрд╕ рдкрдЯрдХрдерд╛ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рд▓рдореНрдмрд╛ рдкреНрд░реЗрдореА рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ _Services_UDF v4 рдирд╛рдордХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣ рд╕рдореГрджреНрдз рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рдореИрдВ рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдореА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рджреЗрдЧрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧрддреЛ, рдЪрд▓реЛ рд╣рдорд╛рд░реА рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЛ рдЙрд╕рдореЗрдВ "рд▓рдкреЗрдЯрдиреЗ" рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
#NoTrayIcon #RequireAdmin #Region #AutoIt3Wrapper_Version=Beta #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_Compile_Both=y #AutoIt3Wrapper_UseX64=y #EndRegion Dim $MainLog = @ScriptDir & "\test_service.log" #include <services.au3> #include <WindowsConstants.au3> $sServiceName="WebServ" If $cmdline[0] > 0 Then Switch $cmdline[1] Case "install", "-i", "/i" InstallService() Case "remove", "-u", "/u", "uninstall" RemoveService() Case Else ConsoleWrite(" - - - Help - - - " & @CRLF) ConsoleWrite("params : " & @CRLF) ConsoleWrite(" -i : install service" & @CRLF) ConsoleWrite(" -u : remove service" & @CRLF) ConsoleWrite(" - - - - - - - - " & @CRLF) Exit EndSwitch Else _Service_init($sServiceName) Exit EndIf Func _main($iArg, $sArgs) If Not _Service_ReportStatus($SERVICE_RUNNING, $NO_ERROR, 0) Then _Service_ReportStatus($SERVICE_STOPPED, _WinAPI_GetLastError(), 0) Exit EndIf $bServiceRunning = True $PID=Run("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -File C:\temp\Polaris\server.ps1") While $bServiceRunning _sleep(1000) WEnd ProcessClose($PID) _Service_ReportStatus($SERVICE_STOP_PENDING, $NO_ERROR, 1000) DllCallbackFree($tServiceMain) DllCallbackFree($tServiceCtrl) _Service_ReportStatus($SERVICE_STOPPED, $NO_ERROR, 0) DllClose($hAdvapi32_DLL) DllClose($hKernel32_DLL) EndFunc Func _Sleep($delay) Local $result = DllCall($hKernel32_DLL, "none", "Sleep", "dword", $delay) EndFunc Func InstallService() #RequireAdmin Local $bDebug = True If $cmdline[0] > 1 Then $sServiceName = $cmdline[2] EndIf If $bDebug Then ConsoleWrite("InstallService("&$sServiceName &"): Installing service, please wait") _Service_Create($sServiceName, $sServiceName, $SERVICE_WIN32_OWN_PROCESS, $SERVICE_AUTO_START, $SERVICE_ERROR_SEVERE, '"' & @ScriptFullPath & '"');,"",False,"","NT AUTHORITY\NetworkService") If @error Then Msgbox("","","InstallService(): Problem installing service, Error number is " & @error & @CRLF & " message : " & _WinAPI_GetLastErrorMessage()) Else If $bDebug Then ConsoleWrite("InstallService(): Installation of service successful") EndIf Exit EndFunc Func RemoveService() _Service_Stop($sServiceName) _Service_Delete($sServiceName) If Not @error Then EndIf Exit EndFunc Func _exit() _Service_ReportStatus($SERVICE_STOPPED, $NO_ERROR, 0); EndFunc Func StopTimer() _Service_ReportStatus($SERVICE_STOP_PENDING, $NO_ERROR, $iServiceCounter) $iServiceCounter += -100 EndFunc Func _Stopping() _Service_ReportStatus($SERVICE_STOP_PENDING, $NO_ERROR, 3000) EndFunc
рдЬрд┐рд╕ рдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ $ bServiceRunning = True рдФрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реЗрд╡рд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддреЗ рд╣реА рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреА - рдЪрд╛рд╣реЗ рд╡рд╣ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░ рд░рд╣рд╛ рд╣реЛ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реЛред
рдЪреВрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрд╛рд╣рд░реА рд╣реИ (рд╢рдХреНрддрд┐рдпрд╛рдВред Exe), рддреЛ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ ProcessClose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ .exe рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ -i рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде exe рдЪрд▓рд╛рдХрд░ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдмреЗрд╢рдХ, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЪрд╛рд╣реЗ рд╡рд╣ рд╡рд┐рдлрд▓рддрд╛ рдпрд╛ рд▓реЙрдЧ рд░реЛрдЯреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░ рд░рд╣рд╛ рд╣реЛред рд▓реЗрдХрд┐рди рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕ рдкрд░ рд╡рд╣ рдкреВрд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдЖрдИрдкреАрд╕реА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рд╕реЗред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реАрдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ред
рд╣рдореЗрдВ рдмрддрд╛рдПрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛?