12

バッチファイルを使用してWindowsサービスを有効または無効にする方法はありますか?私は、サービスの起動タイプを変更すること、つまり、NetStartおよびNetStopコマンドを使用して開始および停止しないことを有効または無効にすることについて話しています。

4

5 に答える 5

24
sc config <service_name> start= disabled

このコマンドにはいくつかの機能がありますが、1つは、システムの起動時にサービスのステータスを判別することです。サービスは、自動、手動、またはまったく実行しないように設定できます。コマンドは

sc config ServiceName start= flag

ここで、ServiceNameはサービスの名前であり、フラグにはauto、demandのいずれかの値があります。または無効。たとえば、サービスを手動で実行するように設定するには、コマンドは次のようになります。

sc config ServiceName start= demand

等号の後にスペースが必要であることに注意してください。パラメーターServiceNameの正しい値は必ずしも明らかではない場合があり、次のコマンドを使用してすべてのサービスでそれを見つけることができます。

于 2012-11-01T06:12:43.293 に答える
5
sc config <service_name> start= disabled
于 2012-11-01T06:06:59.807 に答える
2

答えと質問があります。実行中のサービスを無効にするために、この1行をまとめました

sc query "wsearch"| find "RUNNING" >nul 2>&1 && net stop "wsearch" && sc config "wsearch" start= disabled

これにより、無効にして停止する前にサービスがチェックされます。マニュアルに変更したいものもあります。

誰かがこのスニペットをループに入れるのを手伝ってもらえますか

for loop sc query "wsearch"| find "RUNNING" >nul 2>&1 && net stop "wsearch" && sc config "wsearch" start= disabled

servicename1 servicename2 servicename3endif....。

このようにして、セグメントを作成し、ステータスを変更するすべてのサービスを1つのファイルに入力できます。

于 2015-12-01T18:49:36.200 に答える
0
sc \\servername config <service_name> Start= auto >> c:\temp\sc.txt

サービスの開始タイプを変更し、出力をに記録しますc:\temp\sc.txt

sc \\servername start <service_name>  >> c:\temp\sc1.txt

サービスを開始し、出力をに記録しますc:\temp\sc.txt

于 2014-11-19T15:18:40.907 に答える
0

これは少し遅いと思いますが、将来これに遭遇する可能性がある人のために、これは私がDBバックエンドで作成した小さなアプリケーションスニペ​​ットであり、配列を構築し、ループして、

   For SrvLoop As Integer = 0 To UBound(SrverName) - 1
        services = ServiceController.GetServices(SrverName(SrvLoop))
        For Each ChkLV In myobj.Items
            Srv = ChkLV.SubItems(3).Text
            i = ChkLV.SubItems(0).Text
            If ChkLV.Selected = True And Srv = SrverName(SrvLoop) Then
                Select Case Command
                    Case 1
                        If services(i).Status <> ServiceControllerStatus.Running Then
                            services(i).Start()
                        Else
                            MsgBox("Cannot Start a Service that is already Running", MsgBoxStyle.Information)
                        End If
                    Case 2
                        'If services(i).CanStop Then
                        If services(i).Status <> ServiceControllerStatus.Stopped Then
                            services(i).Stop()
                            'Else
                            '    If services(i).Status <> ServiceControllerStatus.Stopped Then
                            '        MsgBox("Service not able to be stopped currently" & vbCrLf & "Please try again in a few seconds", MsgBoxStyle.Information)
                            '    End If
                        End If
                End Select
                Progress.PB_Progress_Bar.Value += 1
            End If
        Next
    Next
    Progress.Dispose()
于 2017-02-27T18:12:25.743 に答える