SQLの窓 イラストAC フリー素材

2014年03月02日

指定した位置でレジストリエディタを開く為のスクリプトをダウンロードするコンテンツ

特徴

※ コンテンツとして使えます。
※ 一度実行したパスはクッキーで保存されます。
※ IE でかつ内容を信頼するなら、「開く」で即実行できます。


▼ 埋め込んだ状態
PHP としてダウンロードは以下のリンク先です。
信頼してレジストリエディタを開くページ

▼ IFRAME のコード
<iframe src="http://toolbox.winofsql.jp/regopen.php"
	frameborder="0"
	scrolling="no"
	width="600"
	height="120"
></iframe>


posted by at 2014-03-02 00:06 | VBScript | このブログの読者になる | 更新情報をチェックする

2013年12月28日

指定サービスを一括で停止するスクリプト



*************************************************************
* 【list.vbs】
* 現在実行中のサービスの一覧より、停止対象を決定する為の
* テキストファイル( target.txt ) を作成する
*
* 【stop.vbs】
* target.txt で指定したサービスを停止する
*************************************************************

1) list.vbs をエクスプローラから実行して下さい

2) target.txt の中から停止したいサービス名の先頭のセミコロン
   を削除して下さい

3) stop.vbs をエクスプローラから実行して下さい



※ 再度 list.vbs を実行すると、target.txt に無いサービスを
   発見した場合は、リストの最後に追加します

※ サービスの依存関係は、上に依存元のサービスを持ってきて下さい。

※ 最初の作成では、全ての実行中のサービスリストが作成されますが、
   先頭にセミコロンが入ったままでは、stop.vbs を実行しても何も
   停止されません。


■著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。

lightbox
stop_service_started.vbs
' 管理者として実行を強制する
Set obj = Wscript.CreateObject("Shell.Application")
if Wscript.Arguments.Count = 0 then
	obj.ShellExecute "cscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
	Wscript.Quit
end if

str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str <> "CSCRIPT.EXE" then
	strMessage = "エクスプローラから実行する場合は、stop.vbs を使用して下さい"
	WScript.Echo strMessage
	WScript.Quit
end if

Set Fso = Wscript.CreateObject( "Scripting.FileSystemObject" )

strCurPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurDir = obj.Path

strServer = "."

on error resume next
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
if Err.Number <> 0 then
	Wscript.Echo Err.Description
	Wscript.Quit
end if

Set objWmi = objLocator.ConnectServer( _
	strServer, _
	"root\cimv2", _
	strUser, _
	strPass )
if Err.Number <> 0 then
	Wscript.Echo Err.Description
	Wscript.Quit
end if

objWmi.Security_.ImpersonationLevel = 3
if Err.Number <> 0 then
	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Set InObj = Fso.OpenTextFile( strCurDir & "\target.txt", 1 )
aTarget = Split( InObj.ReadAll(), vbCrLf )
InObj.Close()

For I = 0 to UBound( aTarget ) 

	if Trim( aTarget( I ) ) <> "" and Left( aTarget( I ), 1 ) <> ";" then

		strQuery = "select * from Win32_Service where Name = '" & aTarget(I) &  "'"
		Set objTarget = objWmi.ExecQuery( strQuery )

		on error resume next
		For Each obj in objTarget

			if obj.Started then
				obj.StopService()
				Wscript.Echo obj.Name & " を停止させました"
			end if

		Next
		on error goto 0

		' 終了待ち
		nCnt = 0
		Do while true
			Wscript.Sleep 1000

			Set objTarget = objWmi.ExecQuery( strQuery )
			For Each obj in objTarget 
				strResult = obj.State
			Next 

			if strResult = "Stopped" then
				Exit Do
			end if

			nCnt = nCnt + 1
			if nCnt > 60 then
				Exit Do
			end if

		Loop

	end if

Next



posted by at 2013-12-28 12:45 | VBScript | このブログの読者になる | 更新情報をチェックする

BatchHelperオブジェクト

マニュアルページ

いわゆる、COM です。スクリプトベースのプログラミングにはまだまだ必要なはずなんですが。運用で WSH でバッチ処理って工夫次第でいろんな事できると思うんですけど。

オンラインでインストールする為のスクリプト


インストーラのダウンロード

インストール

setup.wsf を実行して下さい。

テスト

【 OpenFileName 】
Path = BatchHelper.OpenFileName( [Title], [Filter], [DefaultDir], [DefaultExt], [DefaultName] )

コモンダイアログでファイルのパスを取得します 

Title (省略可): ダイアログのタイトル
Filter (省略可): フィルターリスト ( 例: "CSV,*.csv,全て,*.*" )
DefaultDir (省略可): 初期ディレクトリ
DefaultExt (省略可): デフォルトの拡張子
DefaultName (省略可): デフォルトのファイル名 

キャンセル時、Path は "" (空文字列) になります
▼ ファイルを開く(パスを取得する)為のダイアログをスクリプト
Set BatchHelper = Wscript.CreateObject( "Lbox.BatchHelper" )
Path = BatchHelper.OpenFileName( _
	"ファイルを開く", _
	"テキスト,*.txt,ログ,*.log,全て,*.*", _
	"C:\Users\lightbox\Downloads" )

if Path <> "" then
	BatchHelper.MsgOk( "ファイルが選択されました : " & vbCrLf & Path )
end if

2006年11月04日 : 初回投稿


posted by at 2013-12-28 12:17 | VBScript | このブログの読者になる | 更新情報をチェックする

2013年08月23日

なんらかの設定処理でレジストリのどこが変わったかチェックする



かなり昔からあるレジストリ比較アプリケーションである RegDiff は、コマンドラインから実行できるので、VBScript を使って自動で比較結果のテキストを作成できます。

アプリケーションのインストール情報は複雑すぎて、慣れた人でないとチェックできませんが、レジストリのエントリが一つだけならば、簡単に抽出できます(目的のヒントになるかもしれません)。

それでも、余計なデータはたくさんあるので、全く知らない人には無理です。もともと、使用する自信のある人のみが使えるアプリケーションです。

❶ Regdiff と同じディレクトリにこのスクリプトを置く

❷ まずは実行し、メッセージボックスが表示されたら(解りにくいのでタスクバーに注目して下さい)レジストリが変更されるであろう処理を行ってから、OK ボタンで処理を続行します。

❸ 最後に result.txt が作成されるので、その中の情報より必要な情報をチェックする事ができます( 中間ファイルは削除していますが、残したい場合は スクリプト内の DEL の部分を削除するかコメントにします )
Set WshShell = CreateObject( "WScript.Shell" )

Set Fso = CreateObject( "Scripting.FileSystemObject" )

strCurPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path

k1 = "HKEY_CLASSES_ROOT"
k2 = "HKEY_CURRENT_USER"
k3 = "HKEY_LOCAL_MACHINE"

Call WshShell.Run( "regedit /e " & strCurPath & "\" & k1 & ".001 " & k1, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k2 & ".001 " & k2, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k3 & ".001 " & k3, , True )

MsgBox("処理後 OK で継続   ")

Call WshShell.Run( "regedit /e " & strCurPath & "\" & k1 & ".002 " & k1, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k2 & ".002 " & k2, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k3 & ".002 " & k3, , True )

Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k1 & ".001 " & strCurPath & "\" & k1 & ".002 " & k1 & ".diff", , True )
Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k2 & ".001 " & strCurPath & "\" & k2 & ".002 " & k2 & ".diff", , True )
Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k3 & ".001 " & strCurPath & "\" & k3 & ".002 " & k3 & ".diff", , True )

Call WshShell.Run( _
	"cmd.exe /c copy " _
	& strCurPath & "\" & k1 & ".diff + "  _
	& strCurPath & "\" & k2 & ".diff + " _
	& strCurPath & "\" & k3 & ".diff result.txt", 0, True )

Call WshShell.Run( "cmd /c del " & strCurPath & "\*.001", 0, True )
Call WshShell.Run( "cmd /c del " & strCurPath & "\*.002", 0, True )
Call WshShell.Run( "cmd /c del " & strCurPath & "\*.diff", 0, True )

'Call WshShell.Run( """C:\Program Files\tpad092\TeraPad.exe"" result.txt", , True )


変更履歴
2008-10-17 : 初回投稿
2013-08-23 : VBScript 内容の修正( スクリプトのあるディレクトリの取得を追加 )



posted by at 2013-08-23 01:02 | VBScript | このブログの読者になる | 更新情報をチェックする

2010年08月19日

WMI プログラミングの友


WMI Query ( HTML アプリケーション )

WMI の情報を取り出すのは何をするにしても面倒ですが、これなら SQL を書く感覚で簡単に使えます。SQL ほど万能ではありませんか、思った情報にたどりつくのはさほど難しくは無いでしょう


●使用方法

 ・サーバーフィールドには対象のサーバー名を指定してください、
  空ならば自分のパソコンが対象になります

 ・クエリにはWQLを書いてください
  クエリ表示の中から選ぶことが可能です。また、クエリ内でWQLを記述することも可能です
  Ex) select * from Win32_Service where Caption like 'A%'
    でCaption項目にある先頭がAであるデータを参照します
  WQLについては下記URLを参照してください
  http://msdn.microsoft.com/en-us/library/aa394606.aspx

 ・ユーザフィールドにはサーバーのユーザ名を指定してください

 ・パスワードフィールドにはサーバーのパスワードを指定してください

 ・件数制限で表示する件数を指定できます

 ・リセットをクリックすると、クエリ内と表示をリセットします

 ・一覧をクリックすると、クエリによって参照されたデータを表示します。

 ・クリップボードをクリックすると、参照されたデータを元にテーブル形式(HTML)で
  クリップボードに保存します。
  htmの中に貼り付けたら参照されたデータのテーブルが作成されます
  excelの中に貼り付けることも可能です

●フリーズが発生したら

 タスクマネージャーを起動後、プロセスタブを選択し、
 「mshta.exe」を終了してください
posted by at 2010-08-19 00:00 | VBScript | このブログの読者になる | 更新情報をチェックする

2010年08月18日

RegDiff + VBScript : ほぼ全自動なレジストリ差分チェック

Regdiff4
RegDiff をダウンロードしてアプリケーションのインストール前後のレジストリの差分をチェックするスクリプト

以下のメッセージボックスが表示されてから、Windows に影響の出ると思われる処理をして、後は最後にメモ帳で差分が表示されます。

Regdiff2


こういう使い方するはずなので、単独で使う事はまず無いと思います

レジストリ差分作成 「RegDiff」概要


posted by at 2010-08-18 00:00 | VBScript | このブログの読者になる | 更新情報をチェックする

2010年08月02日

PHP + VBS 信頼してレジストリエディタを開くページ



レジストリのパスからその場所をレジストリエディタで開くスクリプトがダウンロードできます。つまり、自分のサイトに置けば、IE ならばそのまま開いて実行できます。( 自分自身は信頼できますからね )

http://toolbox.winofsql.jp/regopen.php

また、実際のフォルダも含めて、開くのに時間のかかる場所で有用なものを一覧にしているのが

超めんどくさいフォルダを開く

です。良かったら使ってみて下さい。

というか、ユーザーテンポラリフォルダはたまに削除しないとけっこうな容量になります。また、一度どんなファイルが作成されているかをチェックしてもるのもいいと思います。

ユーザのテンポラリ

また、こんなのもデスクトップのショートカットにして置いておくと便利だと思います

IEが最後にダウンロードしたディレクトリ


posted by at 2010-08-02 00:00 | VBScript | このブログの読者になる | 更新情報をチェックする

2009年10月28日

VBS : SQLServer : Microsoft.Jet.OLEDB.4.0を使った必殺技。Excelへ入出力


VBS : SQLServerよりExcel へエクスポート(Excel製品は必要ありません)


この方法は気がつきにくいんですが、とても便利です。SQLServer というよりも、Microsoft の
JET を中心として、SQLServer と Excel に外部リンクを動的に作る方法です。元々、Access の
外部リンクの仕様から来てるので、別々の DB 間で結合という結構とんでもない処理も可能です。

接続文字列の仕様はそもそも、DAO から来てまして、Access の SQL では in 句による外部
参照もありますが、こちらのほうが何でもありです。というか、Access で外部リンクを作成して、
システムテーブルの接続情報を見てもらうと解りますが、こうなってますので。

これ使うと、ODBC ドライバさえちゃんと作られておれば、Access の SQL で全ての DB と同時
結合やら select into やらできるので、運用する立場の人は泣いて喜ぶと思います。
で、この処理は10年以上前から使ってますが、ちゃんと書くのは初めてですね・・・そういえば。

Oracle はちょっとクセがあります。接続文字でユーザ(スキーマ) を指定しているにもかかわらず、
さらに修飾としてスキーマ名を続けないと、別スキーマで同一オブジェクト名があるとエラーになります。
どちらかというと、Microsoft の ODBC ドライバのほうが信頼感あります。Oracle に対するドライバ
は、Framework でも用意しているところから見ても、きちんと Microsoft の看板かかげてサポート
しています。昔は、精度のある列名でまともに動かなかったので、Oracle に対するいやがらせかいな・・・・
なんて思った時期もありました。現場でそういうトラブルは実際にありましたし。




SQLServer の OPENDATASOURCE 関数による Excel の参照


もう一つは純正接続で、外部のデータソースを見に行く方法です。
こちらは読み込むだけでせいいっぱいというか、デフォルトでは使え無い上に、
「できれば使わせたく無い」という主旨がミエミエのものになっていますが、
解る人ならすぐ使えます。でも、JET 使ったほうがいいと思いますけれど。




posted by at 2009-10-28 19:41 | VBScript | このブログの読者になる | 更新情報をチェックする

2009年10月23日

SQLite3:日本語販売管理データ(sqlite3のファイルと元データのMDBとコンバート用のスクリプト)



SQLite3 : 日本語販売管理データ



テーブル名 タイプ 作成 更新 件数   
1 V_商品一覧 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 100
2 V_売上日付 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 1
3 V_得意先台帳 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 2463
4 V_社員一覧 VIEW 2005/09/13 1:50:36 2005/09/13 1:50:36 50
5 コード名称マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 17
6 コントロールマスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 1
7 メッセージマスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 13
8 取引データ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 2463
9 商品マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 100
10 商品分類マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 29
11 得意先マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 50
12 社員マスタ TABLE 2005/09/13 1:49:04 2005/09/13 1:49:04 50
13 郵便番号マスタ TABLE 2005/09/13 1:57:58 2005/09/13 1:57:58 3715


以上のデータを同名のテーブルでカタログしています( db1.sqlite3 )
CREATE 文は、スクリプトの中にありますが、SQLServer の形式でテストして
そのまま動いていますが、NVARCHAR は VARCHAR( TEXT ) になるようです。

細かいテストはしていませんが、VARCHAR の桁指定も正しく動作しているようですし、
日付型も無いはずなのにそれなりに動いているようですが・・・・・






posted by at 2009-10-23 15:08 | VBScript | このブログの読者になる | 更新情報をチェックする

2009年10月19日

VBS : SQLExpress (SQLServer) 2005接続と通常処理


VBS : SQLExpress(SQLServer) 2005 接続と通常処理

SQLExpress は、SQLServerのフリー版( 旧MSDE )ですが、4G のサイズ制限とGUIツール類が殆ど無い事を除けば、とても快適に利用する事ができます。

但し困った事があって、それは、とても設定が解りづらい上に、Microsoft の純正ですから、OS と親和性が高く、それゆえに、プログラムからの利用方法のバリエーションがとても多い事です。

少なくとも純正接続と、ODBC 接続があつて、Java 等からでは ODBC でないと接続できませんし、プロトコルも、TCP/IP と 名前付きパイプがあって、接続オプションも信頼接続とかいろいろありますし・・・・

で、悩んでも仕方無いので片っ端から接続と処理サンプルを作ろうと思い、まずはVBScript です。



posted by at 2009-10-19 20:51 | VBScript | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します