Windowsサービスを作成する方法
コンピューターにログインしているかどうかに関係なく、実行を継続するためにアプリまたはスクリプトが必要になる場合があります。おそらく、ホームネットワーク上のページをホストしている(web server hosting a page on your home network)ポートまたはWebサーバーを監視するためのPowerShellスクリプト(PowerShell script to monitor ports)です。
重要なのは、コンピューターの電源が入っている限りプロセス、スクリプト、またはプログラムを実行する場合は、Windowsサービス(Windows Service)を作成する必要があるということです。
Windowsサービスを作成するには何が必要ですか?(What Do I Need to Create a Windows Service?)
Windows 10で(Windows 10)Windowsサービスを作成するには、いくつかの前提条件があります。
- (Administrator)コンピューターの管理者アクセス
- サービスとして実行するもの(PowerShellスクリプト(PowerShell Script)、プログラムなど)
- Non-Sucking Service Manager(NSSM)がインストールされています
吸わないサービスマネージャーとは何ですか?(What Is the Non-Sucking Service Manager?)
はい、説明せずにそのような名前をドロップすることはできません。確かに名前は残念ですが、正確です。Non-Sucking Service Manager(NSSM )は、信頼性と構成性の両方を備えたWindowsサービスを作成するための最も簡単な方法です。さらに、無料のオープンソースソフトウェア(Open Source Software)(OSS)です。
NSSMは、Windowsコマンドプロンプト(Windows Command Prompt)またはグラフィカルユーザーインターフェイス(GUI)を介して使用できます。これは、誰でも使用できることを意味します。NSSMは、 Windows 2000(Windows 2000)に戻る、またはWindows2000を含むすべてのバージョンのWindowsで使用できます。32ビットバージョンと64ビット(32-bit and 64-bit)バージョンがあります。64ビットコンピューターを使用している場合は、最初にそのバージョンを試してください。動作しない場合は、32ビットバージョンにフォールバックします。
NSSMは、Webサイトからダウンロード(download NSSM from the website)するか、GitからNSSMのクローンを作成(clone NSSM from Git)するか、Chocolateyを使用してNSSMをインストールでき(install NSSM with Chocolatey)ます。ChocolateyはWindows用のパッケージマネージャーです(Chocolatey is a package manager for Windows)。インストール(Installation)方法は、使用するルートによって異なります。NSSMの指示を参照してください。(Please)この例では、NSSM Webサイトからダウンロードして、 (NSSM)C:\WINDOWS\system32にインストールしています。
NSSMを使用してWindowsサービスを作成する(Create a Windows Service With NSSM)
この例では、PowerShellスクリプトからサービスを作成して、 (PowerShell script)CPUの平均負荷率(CPU average load percentage)をログに記録します。
- このスクリプトをコピーして、log-CPULoadPercentage.ps1として、他の人がアクセスする可能性が低い場所に保存します。ディレクトリC:/Scripts を作成してそこに保存してみてください。また、スクリプトに(Scripts)Logsというフォルダを作成します。スクリプトへのパスはC:/Scripts/log-CPULoadPercentage.ps1であることに注意してください。後で必要になります。
注(Note):以下のすべての行の後に#記号が続くのはコメントであり、スクリプトには影響しません。
CLS #Optional. I like to use this to clear the terminal when testing. #Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
- これは、 Windowsコマンドプロンプト(Windows Command Prompt)またはPowerShellのいずれかで実行できます。管理者として開き(Open it as Administrator)ます。
- コマンドnssminstalllogCPUAvgを(nssm install logCPUAvg)入力して、実行します。NSSMサービスインストーラ(NSSM service installer)ウィンドウが開きます。
- [(Click)パス:](Path:)フィールドの横にある省略記号ボタンをクリックし、通常はC:\Windows\System32\powershell.exeに移動します。powershell.exeを選択します。[パス:(Path:) ]フィールドと[スタートアップディレクトリ:](Startup directory:)フィールドに自動的に入力されます。
- [引数:](Arguments:)フィールドに次のように入力します-ExecutionPolicy Bypass -NoProfile -File “C:\PathToScript\get-Script.ps1”PowerShellスクリプトへのパスとスクリプト名です。
- [詳細(Details)]タブを選択します。[表示名:](Display name: )フィールドに、 Windows サービス(Services)マネージャーに表示するサービスの内容を入力します。次に、[説明:](Description:)フィールドにその機能を入力します。起動タイプ:(Startup type: )自動(Automatic)、自動(遅延開始)(Automatic (Delayed Start))、手動(Manual)、または無効(Disabled)に設定できます。この演習では、自動(Automatic)が適しています。
- [ログオン(Log on )]タブを選択します。[このアカウント(This account):]ラジオボタンを選択し、サービスを実行するアカウントとパスワードを入力します。サービスを実行するアカウントを選択する必要があります。理想的には、このサービスを実行するためだけにWindowsアカウントを作成する必要があります。このアカウントの権限は、サービスが実行する必要があるものだけに制限する必要があります。ローカルシステムアカウント(Local System account)を選択できますが、セキュリティ上の理由からお勧めしません。
サービスをカスタマイズするために使用できる他のいくつかのタブがあります。この演習では、これらのタブのデフォルト値で十分です。[サービスのインストール(Install service )]ボタンを選択します。
- サービスがインストールされると、Service “logCPUAvg” installed successfully! 窓。[ OK]を選択して閉じます。これでインストールは完了です。
- Windowsサービスマネージャー(Windows Services Manager )を開き、サービスがそこにあることを確認します。
- サービスを実行(Run)して、確実に実行されるようにします。
- このサービスが実行されていることを確認するには、ファイルエクスプローラー(File Explorer )を使用して、ログが保存されるはずの場所に移動し、ログが存在するかどうかを確認します。
nssm-check-log.png
NSSMを使用したWindowsサービスの削除(Removing a Windows Service With NSSM)
たぶん、あなたはもうあなたのCPU負荷を監視する(monitor your CPU)必要がないので、あなたはサービスを取り除きたいです。幸いなことに、NSSMはそれを簡単にします。
- Windowsサービスマネージャー(Windows Services Manager)で、サービスを停止します。これを行うには、[CPU平均負荷のログ](Log CPU Average Load )サービスを選択してから、ツールバーの四角い停止ボタンまたは左側の[サービスの停止]リンクを選択します。(Stop the service)
- 管理者としてWindowsコマンドプロンプト(Windows Command Prompt )またはPowerShellのいずれかを開きます。
- コマンドnssmremovelogCPUAvgを(nssm remove logCPUAvg)入力して、コマンドを実行します。
- NSSMは確認を求めます。[はい](Yes)を選択します。
- サービスが削除されると、Service “logCPUAvg” removed successfully! 確認。[ OK]を選択すると、完了です。
それで全部です。サービスマネージャーをチェックして、サービスが存在しないことを確認することをお勧めします。それでもサービスが表示される場合は、画面を更新する必要があり、表示されなくなるはずです。
サービスは、常に実行する必要があるアプリやスクリプトを実行したり、失敗した場合に自動的に再起動したり、現在のユーザーとは異なる特権を必要としたりするための優れた方法です。これらすべてを実行するためにアプリやスクリプトが必要ない場合は、代わりにスケジュールされたタスクの使用を検討してください。(using a Scheduled Task)
Related posts
Windows 10でIP Helper Serviceを有効または無効にする方法
Windows 10でグレーアウトされている場合はDNS Client Serviceを有効にする方法
Windows 10でWindows Insider Serviceを無効にする方法
Bonjour Service Windows 10とは何ですか?
Fix System Service Exception ErrorでWindows 10
PIPを使用してPIPを使用してNumPyをインストールする方法
IntelRSTサービスがWindows10で実行されていない問題を修正
Windows 10で有効化パッケージとは何ですか
Windows 10でのリムーバブルストレージクラスとアクセスを無効にする方法
Windows 10 Media Controls Media Controls Lock Screen
Windows10で印刷スプーラーサービスを無効にする方法
Windows Storeでご利用いただけますWindows 10のトップ3 Reddit apps
Event ID 158エラー - Windows 10の同一ディスクGUIDs assignment
実行されていないWindowsUpdateサービスを修正する方法
Windows 10でNetwork Sniffer Tool PktMon.exeを使用する方法
Windows10でシステムサービス例外停止コードを修正する方法
Hide or Show Windows Ink Workspace Button Windows 10でTaskbar
Windows10でのSoftThinksAgentServiceの高いCPU使用率を修正
Best Mountain Sports Windows 10 PC用ゲーム
Best Windows 10のためのMolecular Modeling software