PHP 5.3.15 / 5.4.5 以降は、php_com_dotnet.dll を php.ini で有効にしておく必要があります。また、WWW サーバが OS にアクセスするユーザの権限が Administrator である必要があり、デスクトップから実行する WWW サーバーでも、『管理者として実行』する必要のある環境もあります(通常はこの方法が必要です)。 以下の php を FORM から method="POST" で呼び出して、サービス名を引き渡すようにすればいいと思います
<?php $str = "winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2"; $obj = new COM($str); $ret = $obj->ExecQuery( "Select * from Win32_OperatingSystem" ); print "<PRE>"; foreach( $ret as $key => $target ) { print "{$target->Caption}\n"; print "{$target->CSName}\n"; print "$target->ServicePackMajorVersion"; print ".{$target->ServicePackMinorVersion}\n"; print "{$target->WindowsDirectory}\n"; print "{$target->SystemDirectory}\n"; } print "\n"; # ********************************************************** # Spooler ( 停止 ) # ********************************************************** $Query = "select * from Win32_Service where Name = 'Spooler'"; $RunningServices = $obj->ExecQuery($Query); foreach( $RunningServices as $target ) { $ReturnCode = $target->StopService(); print $ReturnCode; } # 終了待ち $Cnt = 0; while ( 1 ) { sleep( 1 ); $RunningServices = $obj->ExecQuery($Query); foreach( $RunningServices as $target ) { $Result = $target->State; } if ( $Result == "Stopped" ) { print " -> Spooler Stopped"; break; } $Cnt++; if ( $Cnt > 60 ) { print " -> Timeout"; break; } } print "</PRE>"; print "OK"; ?>
▼ 実行結果Microsoft Windows 7 Professional PC名 1.0 C:\Windows C:\Windows\system32 0 -> Spooler Stopped OK※ $ReturnCode が 0以外の場合はエラーです。
|
【PHPの最新記事】
- PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
- PHP における標準的なテスト用アップロードのテンプレート
- PHP : MySQL から JSON 文字列を返す自作(テスト用) API テンプレート
- ImageMagick を Windows(32ビット)の PHP で利用する
- PHPで、ベタベタな日付チェック。汎用的とも言うw
- PHP でカタカナのフリガナ入力のチェック
- TCPDF で罫線を引く
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成
- PHP + GD : 四角形への DropShadow
- PHP : ログインとブラウザの当日日付データ
- hash_hmac は秘密鍵があるので、辞書の総当りとかでパスワードは解りませんから。パスワード抜かれるのは、フィッシングがスパイウェアか、本人が口に出した場合ですね。
- すごく当たり前の事なんですが、UTF-8N で保存されたテキストファイルをメモ帳で変更して保存したら先頭に EF BB BF という爆弾が仕掛けられるのでダメですよ
- PHP で cURL はオプションが全て。いろいろあるので、ちょっとまとめ
- 5秒毎にリロードする PHP ページ
- 実用的かどうかは置いておいて、修正画面の日付入力に jQuery のカレンダーを使用する
- PHPで使用する為にフォント(.TTC)の分解
- PHP : GD で Windows のビットマップを扱う
- 【PHP】 <?=$value?> ではない変数埋め込み手法
- PHP : コマンドライン php(cli) で10進数と16進数の変換