Windowsのサービスを手動や自動に切り替えるためのコマンドやVB(WSH)スクリプトってありますか?


OSはWIndows2003 Serverです
よろしくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/07/24 23:04:44
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:maxpower No.1

回答回数522ベストアンサー獲得回数24

ポイント5pt

「ファイル名を指定して実行」で msconfig と入力してシステム構成ユーティリティーを呼び出してからサービスの部分でそれぞれ選ぶやり方ではだめですか?

id:nil55

ご返信ありがとうございます。

おっしゃる通り通常であれば、ご指摘の方法で問題ないのですが、ある特殊なアプリケーションを使用しているため「何度も何度も手動から自動に」また「大量のサービスの設定変更」が発生してしまうのです。

ご返信ありがとうございました。よろしくお願い致します。

2006/07/21 14:14:27
id:llusall No.3

回答回数505ベストアンサー獲得回数61

WSHで作ってみました。

以下のスクリプトを「サービス切替.vbs」などの適当な名前で保存して、ダブルクリックしてください。


'ここから-------------------------------------

Option Explicit

Dim WshShell

Dim serviceName, startType

Dim oldVal

Set WshShell = WScript.CreateObject("WScript.Shell")

serviceName = InputBox("サービス名を入力してください。" & vbCrLf & "キャンセルは未入力","サービスの切替え")

If serviceName = "" Then

    WScript.Quit

End If

On Error Resume Next

oldVal = WshShell.RegRead ("HKLM\SYSTEM\CurrentControlSet\Services\" & serviceName & "\Start")

If Err.Number <> 0 Then

    MsgBox "サービス名が間違っています。"

    WScript.Quit

End If

On Error Goto 0

startType = InputBox("自動:2 手動:3 無効:4 を入力してください。" & vbCrLf & "キャンセルは未入力","サービスの切替え")

If startType = "" Then

    WScript.Quit

End If

If startType = "2" Or  startType = "3" Or  startType = "4" Then

Else

    MsgBox "数値2~3を入力してください"

    WScript.Quit

End If

WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Services\" & serviceName & "\Start"   , startType, "REG_DWORD"

MsgBox "切替完了!"

id:llusall No.4

回答回数505ベストアンサー獲得回数61

ポイント50pt

重要

すみませんです。

先ほど回答させていただきましたスクリプトはレジストリを変更するものです。

念のため、実行前にレジストリのバックアップ等、安全を確保しておいてください。

また、スクリプトが判るようでしたら、一度、目を通しておいてください。


レジストリの変更内容は、

以下を参考にしました。

WindowsXP サービス一覧

http://gtrz.s7.xrea.com/doc/servicetips.php

サービス関連のレジストリの場所

id:nil55

ご返信ありがとうございます!!

レジストリの設定をWSHで変えてしまうですね!!

なるほどです。

実際に使うかどうかは別にして(レジストリいじるのはちょっと怖いので)とても勉強になりました!!

ありがとうございます!!

2006/07/21 15:16:51
id:Mook No.5

回答回数1314ベストアンサー獲得回数393

ポイント30pt

XP 以降だけが対象なら、SC コマンドで事足りますが、2000 や NT も対象になるようでしたら、

net start と net stop コマンド(起動と停止のみ)が使えると思います。

http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/net_st...

http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/net_st...

自動起動、手動起動 などの設定をしたい場合は、2000 以降でしたら WSH によるレジストリの制御でできると思います。

OS により使用できる手段が異なりますので、ご注意ください。

id:nil55

ご返信ありがとうございます。

SCコマンドがやはりいいみたいです。

サーバなのでレジストリを動かすってなんか抵抗があって… みなさん稼働してるサーバでもレジストリって触わるのにあんまり抵抗ないのかなぁあ… うーん…

2006/07/21 16:57:27
  • id:cgo01
    質問に

    > OSはWIndows2003 Serverです

    とあるので不要かと思いますが、NT、2K の SC.exe は
    リソースキットにあります。

    http://support.microsoft.com/default.aspx?scid=kb;ja;251192

    2K の分はここにあります。

    ftp://ftp.microsoft.com/reskit/win2000/
  • id:nil55
    2000やNTでも動くんですね!  
    貴重な情報ありがとうございます!

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません