スクリプティング環境
スクリプティング環境
効率化計画
効率化計画
2005年6月18日 安納 順一 NT Committee2 勉強会勉強会勉強会勉強会 in 名古屋名古屋名古屋名古屋便利なスクリプティング機能
でも、本当に満足していますか?
何かを我慢していませんか?
もっと効率的にできるんじゃないですか?
そんな疑問にお答えします(たぶん)
らく~な気分で聞いてください
はじめに
はじめに
目次
目次
1.
1.
スクリプトは便利ですが、なにか?
スクリプトは便利ですが、なにか?
2.
2.
調査の拠点を決めておこう
調査の拠点を決めておこう
3.
3.
ヘルプファイルは便利です
ヘ
ルプファイルは便利です
4.
4.
ヘルプがない?じゃあ作っちゃえ
ヘルプがない?じゃあ作っちゃえ
5.
5.
便利なツールを活用してみる
便利なツールを活用してみる
※ この資料は、Windows Server World 6月号の記事を基に作成されています
1.
1.
スクリプトは便利ですが、なにか?
スクリプトは便利ですが、なにか?
スクリプトのよい点
スクリプトのよい点
作ると「すごいっ!」って言われる
作ると「すごいっ!」って言われる
ADSI
ADSI
とか
とか
WMI
WMI
が使えると、ちょっと自慢
が使えると、ちょっと自慢
ADSI
ADSI
や
や
WMI
WMI
をフルスペルで書けると結構自慢
をフルスペルで書けると結構自慢
スクリプトの悪い点
スクリプトの悪い点
勉強しないと使えない
勉強しないと使えない
勉強させないと使わせられない
勉強させないと使わせられない
あのスクリプトどこだっけ?
あのスクリプトどこだっけ?
2.
2.
調査の拠点を決めておこう
調査の拠点を決めておこう
マイルールを決める(まずはここで調べる)
マイルールを決める(まずはここで調べる)
マイクロソフトマイクロソフトマイクロソフトマイクロソフト スクリプトセンタースクリプトセンタースクリプトセンタースクリプトセンター((((日本語日本語日本語)日本語))) http://www.microsoft.com/japan/technet/scriptcenter/default.mspx マイクソロフトマイクソロフトマイクソロフトマイクソロフト スクリプトセンタースクリプトセンタースクリプトセンタースクリプトセンター((((英語英語英語)英語))) http://www.microsoft.com/technet/scriptcenter/default.mspx マイクロソフトマイクロソフトスクリプトテクノロジ(日本語(スクリプトテクノロジ(日本語(※
※
私は
私は
マンセイ
マンセイ
の
の
News Group
News Group
検索機能は最強
検索機能は最強
3.
3.
ヘルプファイルは便利です
ヘルプファイルは便利です
ローカルで使えるヘルプファイルは便利
ローカルで使えるヘルプファイルは便利
基本は
基本は
Windows Script 5.6
Windows Script 5.6 ドキュメント
ドキュメント
http://www.microsoft.com/japan/msdn/scripting/default.asp
http://www.microsoft.com/japan/msdn/scripting/default.asp
Jscript VBScript Scriptランタイムランタイムランタイムランタイム Windows Script Host Windows スクリプトコンポーネントスクリプトコンポーネントスクリプトコンポーネントスクリプトコンポーネント Windows Script Interfaces SDK((((英語英語英語英語))))
Windows
Windows
スクリプトテクノロジ
スクリプトテクノロジ
ヘルプ画面
ヘルプ画面
4.ヘルプが無い?
4.ヘルプが無い?
じゃぁつくっちゃえ
じゃぁつくっちゃえ
~ Do-It-Yourself Script Center Kit のご紹介
サンプルスクリプト集
サンプルスクリプト集
MDB
MDB
で提供
で提供
CHM
CHM
形式のヘルプにコンバート可能
形式のヘルプにコンバート可能
以下より
以下より
DL
DL
可能
可能
http://download.microsoft.com/download/f/9/1/f915e397 http://download.microsoft.com/download/f/9/1/f915e397--cac9cac9--4a104a10- -8de08de0--081b0c1f5924/do_it_yourself_kit.exe081b0c1f5924/do_it_yourself_kit.exe
Do-It-Yourself Script Center Kit ってなに
ってなに
ってなに?
ってなに
?
?
?
ヘルプファイルの作成概要
ヘルプファイルの作成概要
Script_Center_2.mdb
ディレクトリ構造 を決定 コードをHTMLファ イルに変換 コンテンツ一覧 ファイル作成 コンパイル コンパイルコンパイル コンパイル CHMファイル完成 サンプルコード サンプルコードサンプルコード サンプルコード 対応 対応 対応 対応OSOSOSOS 言語 言語 言語 言語のののの種類種類種類種類 等等等等ヘルプファイルの作成手順
ヘルプファイルの作成手順
①
①
①
① 必要
必要
必要な
必要
な
なパッケージ
な
パッケージ
パッケージを
パッケージ
を
をDL
を
②
②
②
② 作業用
作業用
作業用フォルダ
作業用
フォルダ
フォルダ
フォルダの
の
の作成
の
作成
作成
作成
③
③
③
③ 必要
必要
必要な
必要
な
なファイル
な
ファイル
ファイルの
ファイル
の
のコピー
の
コピー
コピー
コピー
④
④
④
④ HTML_Folder_Maker.vbs
HTML_Folder_Maker.vbs
HTML_Folder_Maker.vbs を
HTML_Folder_Maker.vbs
を
を
を実行
実行
実行
実行
⑤
⑤
⑤
⑤ HTML_Page_Maker.vbs を
を
を実行
を
実行
実行
実行
⑥
⑥
⑥
⑥ HTML_File_List_HHP_Maker.vbs を
を
を
を実行
実行
実行
実行
⑦
⑦
⑦
⑦ HTML_Table_of_Contents_Maker.vbs を
を
を実行
を
実行
実行
実行
⑧
⑧
⑧
⑧ HTML Help Workshop で
で
でコンパイル
で
コンパイル
コンパイル
コンパイル
①必要なパッケージをDL
①必要なパッケージをDL
The Do-
The Do
-It
It-
-Yourself Script Center
Yourself Script Center
ヘルプ作成に必要なMDB
ヘルプ作成に必要なMDB
MDBからの抽出スクリプト
MDBからの抽出スクリプト
HTML Help Workshop
HTML Help Workshop
chm
chm
ファイルのコンパイルに必要
ファイルのコンパイルに必要
http://
http://
go.microsoft.com/fwlink/?LinkId
go.microsoft.com/fwlink/?LinkId
=14188
=14188
HTML Help
HTML Help
日本語操作マニュアル
日本語操作マニュアル
http://
http://
go.microsoft.com/fwlink/?LinkId
go.microsoft.com/fwlink/?LinkId
=14582
=14582
②作業用フォルダの作成
②作業用フォルダの作成
C:¥
C:
¥HTML
HTML を作成するだけ
を作成するだけ
もし上記以外に作成する場合には、DIY
もし上記以外に作成する場合には、
DIYで提
で提
供されるスクリプトを修正
供されるスクリプトを修正
→
→
VBS
VBS
ファイル内部の「
ファイル内部の「
C:
C:
¥
¥
HTML
HTML
」検索して片端
」検索して片端
から置換ればよし
から置換ればよし
③必要なファイルのコピー
③必要なファイルのコピー
ヘルプ作成に必要なファイルを
ヘルプ作成に必要なファイルを
C:
C:
¥
¥
HTML
HTML
にコピー
にコピー
する
する
html_folder_maker.vbs
html_folder_maker.vbs
html_page_maker.vbs
html_page_maker.vbs
html_file_list_hhp_maker.vbs
html_file_list_hhp_maker.vbs
html_table_of_contents_maker.vbs
html_table_of_contents_maker.vbs
script_center_2.mdb
script_center_2.mdb
icon.jpg
icon.jpg
default.html
default.html
※
※
面倒なので
面倒なので
DIy
DIy
でできたファイル全てコピーでも
でできたファイル全てコピーでも
OK
OK
④
④
html_folder_maker.vbs
html_folder_maker.vbs
を実行
を実行
mdbファイルから
mdb
ファイルから
“
“
Path“
Path
“
カラムを読み取って
カラムを読み取って
フォルダを作成する
フォルダを作成する
ACCERSSへの
ACCERSS
へのADO
ADO接続と、繰り返し処理
接続と、繰り返し処理
の参考スクリプトとして非常に有用
の参考スクリプトとして非常に有用
C:¥HTML ad computer domains ・ ・⑤
⑤
HTML_Page_Maker.vbs を実行
mdbから個々の“
mdb
から個々の“ScriptCode
ScriptCode”
”を抽出して、ス
を抽出して、ス
クリプトページを作成
クリプトページを作成
クリップボードに複製するスクリプトが参考に
クリップボードに複製するスクリプトが参考に
なる
なる
<SCRIPT LANGUAGE="VBScript"> Sub RunScript strCopy = ScriptCode.InnerTextdocument.parentwindow.clipboardData.SetData "text", strCopy Msgbox "The script has been copied to the clipboard.",,"Script Copied" End Sub
</SCRIPT>
⑥
⑥
HTML_File_List_HHP_Maker.vbs を実行
hhp(
hhp
(
HTML Help Project
HTML Help Project)を作成
)を作成
このファイルを
このファイルを
HTML Help Workshop
HTML Help Workshopに読み
に読み
込ませてコンパイルする
込ませてコンパイルする
⑦
⑦
HTML_Table_of_Contents_Maker.vbs を実行
HHC(
HHC
(HTML Help Contents
HTML Help Contents)ファイルを作成
)ファイルを作成
⑧
⑧
HTML Help Workshop で
で
で
でコンパイル
コンパイル
コンパイル
コンパイル
hhw.exeを起動
hhw.exe
を起動
script_center.hhp
script_center.hhp
を読み込み
を読み込み
オプション指定
オプション指定
インデックス作成
インデックス作成
言語
言語
「日本語」を選択
「日本語」を選択
しないと化けます
しないと化けます
タイトル等
タイトル等
コンパイル実行
コンパイル実行
5.便利なツールを活用してみる
5.便利なツールを活用してみる
Tweakomatic
Tweakomatic
http://www.microsoft.com/japan/technet/scriptcent
http://www.microsoft.com/japan/technet/scriptcent
er/tools/twkmatic.mspx
er/tools/twkmatic.mspx
Scriptomatic
Scriptomatic
2
2
.0
.0
http://download.microsoft.com/download/
http://download.microsoft.com/download/
.NetStandardServer/Utility/1.0/NT5XP/
.NetStandardServer/Utility/1.0/NT5XP/
EN
EN
-
-
US/scriptomatic.exe
US/scriptomatic.exe
ADSI Scriptomatic 1.0
ADSI Scriptomatic 1.0
(
(
EzAD Scriptomatic
EzAD Scriptomatic
)
)
http://download.microsoft.com/download/2/0/b/
http://download.microsoft.com/download/2/0/b/
20b026a1
20b026a1
-
-
8296
8296
-
-
4a0c
4a0c
-
-
b1c7
b1c7
-
-
cd70f5ed3b0f/
cd70f5ed3b0f/
EZADScriptomatic.exe
EZADScriptomatic.exe
便利なツール
便利なツール
~
~
Tweakomatic
Tweakomatic
とは
とは
HTA
HTA
ファイルにより
ファイルにより
GUI
GUI
を提供
を提供
TweakUI
TweakUI
が提供している
が提供している
個々の設定機能
個々の設定機能
の
の
スクリプトを生成
スクリプトを生成
基本は
基本は
250
250
種類
種類
、
、
MS
MS
よりアップデート用
よりアップデート用
mdb
mdb
が提供
が提供
WMI
WMI
(
(
Windows Management Instrumentation
Windows Management Instrumentation
)が提供する
)が提供する
「
「
StdRegProv
StdRegProv
」
」
プロバイダを利用
プロバイダを利用
WMI
WMI
のサンプルとしてもよい
のサンプルとしてもよい
便利度:★ ☆ ☆ ☆ ☆
Tweakomatic
Tweakomatic
サンプル画面
サンプル画面
Tweak
Tweak
omatic
omatic
サンプルスクリプト
サンプルスクリプト
HKEY_CURRENT_USER = &H80000001strComputer = "."
Set objReg = GetObject(“winmgmts:¥¥” & strComputer &
"¥root¥default:StdRegProv") strKeyPath = "Control Panel¥Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath ValueName = "WallpaperStyle"
strValue = "2" objReg.SetStringValue
HKEY_CURRENT_USER, strKeyPath, ValueName, strValue 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8
便利なツール
便利なツール
~
~
Scripto
Scripto
ma
ma
tic
tic
とは
とは
HTA
HTA
ファイルにより
ファイルにより
GUI
GUI
を提供
を提供
WMI
WMI
の全てのクラスを網羅
の全てのクラスを網羅
完全な自動生成スクリプト
完全な自動生成スクリプト
V2
V2
より「
より「
VBScript
VBScript
」以外に「
」以外に「
Perl
Perl
」「
」「
Jscript
Jscript
」「
」「
Python
Python
」
」
用のスクリプトが生成可能
用のスクリプトが生成可能
…
…
..
..
これはすごい
これはすごい
YO
YO
…
…
.
.
メソッドもサポートしてくれたら完璧
メソッドもサポートしてくれたら完璧
…
…
便利度:★ ★ ★ ★ ★
Scriptomatic
Scriptomatic
サンプル画面
サンプル画面
Scriptomatic
Scriptomatic
サンプルスクリプト
サンプルスクリプト
On Error Resume Next strComputer = "."
Set objWMIService = GetObject(“winmgmts:¥¥” & _ strComputer & _ "¥root¥cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration",,48)
For Each objItem in colItems
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "DefaultIPGateway: " & objItem.DefaultIPGateway ~
~ ~ ~
Wscript.Echo"IPAddress: " & objItem.IPAddress
Wscript.Echo "IPSubnet: " & objItem.IPSubnet wscript.quit Next 1 2 3 4 5 6 7 8 9 10 11 12
便利なツール
便利なツール
~
~
ADSI
ADSI
Scripto
Scripto
ma
ma
tic
tic
とは
とは
利用頻度の高い
利用頻度の高い
AD
AD
関連スクリプトがあらかじめ
関連スクリプトがあらかじめ
ハードコーディングされているサンプルスクリプト集
ハードコーディングされているサンプルスクリプト集
5
5
種類のオブジェクト(
種類のオブジェクト(
※
※
1)
1)
×
×
4
4
種類(
種類(
※
※
2)の操作
2)の操作
※
※
1
1
「
「
ユーザー」「コンピュータ」
ユーザー」「コンピュータ」
「連絡先」「グループ」「
「連絡先」「グループ」「
OU
OU
」
」
※
※
2「新規作成」「属性の書込み」
2「新規作成」「属性の書込み」
「属性の読取」「削除」
「属性の読取」「削除」
便利度:★ ★ ★ ☆ ☆
ADSI Scriptomatic
ADSI Scriptomatic
サンプル画面
サンプル画面
ADSIScriptomatic
ADSIScriptomatic
サンプルスクリプト
サンプルスクリプト
strContainer = "" strName = "EzAdGroup“Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer = "" Then
Set objContainer = GetObject("LDAP://" & _ objRootDSE.Get("defaultNamingContext")) Else
Set objContainer = GetObject("LDAP://" & strContainer & "," & _ objRootDSE.Get("defaultNamingContext")) End If
Set objGroup = objContainer.Create("group", "cn=" & strName) objGroup.Put "sAMAccountName", strName
objGroup.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or _ ADS_GROUP_TYPE_SECURITY_ENABLED objGroup.SetInfo 1 11 1 2 22 2 3 33 3 4 44 4 5 55 5 6 66 6 7 77 7 8 88 8 9 99 9 10 1010 10 11 12 13