次の方法で共有


New-Service

新しい Windows サービスを作成します。

構文

New-Service
   [-Name] <String>
   [-BinaryPathName] <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-SecurityDescriptorSddl <String>]
   [-StartupType <ServiceStartupType>]
   [-Credential <PSCredential>]
   [-DependsOn <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

このコマンドレットは、Windows プラットフォームでのみ使用できます。

New-Service コマンドレットは、レジストリとサービス データベースに Windows サービスの新しいエントリを作成します。 新しいサービスには、サービス中に実行される実行可能ファイルが必要です。

このコマンドレットのパラメーターを使用すると、サービスの表示名、説明、スタートアップの種類と依存関係を設定できます。

例 1: サービスを作成する

New-Service -Name "TestService" -BinaryPathName 'C:\WINDOWS\System32\svchost.exe -k netsvcs'

このコマンドは、TestService という名前のサービスを作成します。

例 2: 説明、スタートアップの種類、表示名を含むサービスを作成する

$params = @{
  Name = "TestService"
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
}
New-Service @params

このコマンドは、TestService という名前のサービスを作成します。 New-Serviceのパラメーターを使用して、新しいサービスの説明、スタートアップの種類、表示名を指定します。

例 3: 新しいサービスを表示する

Get-CimInstance -ClassName Win32_Service -Filter "Name='testservice'"

ExitCode  : 0
Name      : testservice
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

このコマンドでは、 Get-CimInstance を使用して、新しいサービスの Win32_Service オブジェクトを取得します。 このオブジェクトには開始モードとサービスの説明が含まれています。

例 4: 作成時にサービスの SecurityDescriptor を設定します。

次の使用例は、作成するサービスの SecurityDescriptor を追加します。

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
$params = @{
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
  SecurityDescriptorSddl = $SDDL
}
New-Service @params

SecurityDescriptor$SDDLToSet変数に格納されます。 SecurityDescriptorSddl パラメーターは$SDDLを使用して、新しいサービスのSecurityDescriptorを設定します。

パラメーター

-BinaryPathName

サービスの実行可能ファイルのパスを指定します。 このパラメーターは必須です。

サービス バイナリ ファイルへの完全修飾パス。 パスにスペースが含まれている場合は、正しく解釈されるように引用符で囲む必要があります。 たとえば、 d:\my share\myservice.exe'"d:\my share\myservice.exe"'として指定する必要があります。

パスには、自動開始サービスの引数を含めることもできます。 たとえば、'"d:\my share\myservice.exe" arg1 arg2' のようにします。 これらの引数は、サービス エントリ ポイントに渡されます。

詳細については、CreateServiceW API の lpBinaryPathName パラメーターを参照してください。

型:String
Aliases:Path
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

Service ログオン アカウントとしてサービスによって使用されるアカウントを指定します。

User01Domain01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。

型:PSCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DependsOn

新しいサービスが依存する他のサービスの名前を指定します。 複数のサービス名を入力するには、コンマを使用して名前を区切ります。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

サービスの説明を指定します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisplayName

サービスの表示名を指定します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Name

サービスの名前を指定します。 このパラメーターは必須です。

型:String
Aliases:ServiceName
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SecurityDescriptorSddl

サービスの SecurityDescriptorSddl 形式で指定します。

型:String
Aliases:sd
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StartupType

サービスのスタートアップの種類を設定します。 このパラメーターの有効値は、次のとおりです。

  • 自動 - サービスは、オペレーティング システムの起動時に開始されるか、オペレーティング システムによって開始されました。 自動開始サービスが手動開始サービスに依存する場合は、手動開始サービスもシステム起動時に自動的に開始されます。
  • AutomaticDelayedStart - システムが起動した直後に起動します。
  • 無効 - サービスは無効になっており、ユーザーまたはアプリケーションが開始することはできません。
  • InvalidValue - この値はサポートされていません。 この値を使用すると、エラーが発生します。
  • 手動 - サービスは、手動、ユーザー、Service Control Manager、またはアプリケーションによってのみ開始されます。

既定値は Automatic です。

型:ServiceStartupType
指定可能な値:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
配置:Named
規定値:Automatic
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

ServiceController

このコマンドレットは、新しいサービスを表すオブジェクトを返します。

メモ

このコマンドレットは、Windows プラットフォームでのみ使用できます。

このコマンドレットを実行するには、 Run as administrator オプションを使用して PowerShell を起動します。