Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Windowsでの自動化の手段
1
いつもの作業を効率化する自動化
2
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
3
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
4
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
5
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
• 自動化そのものが好きだな
6
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
• 自動化そのものが好きだな?
7
お品書き
• 今日話すこと
• 自動化の手段をざっくり紹介
お品書き
• 今日話すこと
• 自動化の手段をざっくり紹介
• 今日はなさないこと
• 個々の手段の導入方法
お品書き
お前誰だよ?
11
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
12
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
13
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
• 普段はC++とか.NET言語(主にC#)とか
14
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
• 普段はC++とか.NET言語(主にC#)とか
• 秘伝のソースのメンテナンスが仕事
15
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyorタスクスケジューラ
16
自動化のための手段
3つのレイヤーで紹介
Scripts
NugetMSBuild psake
Jenkins AppVeyor
17
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
Build Tools
Jenkins AppVeyor
18
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Executers
19
自動化のための手段
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
20
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
「そういう考え方もあるのか」くらい...
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
21
自動化のための手段
タスクスケジューラ
Scripts
NugetMSBuild psake
Jenkins AppVeyor
22
自動化のための手段
タスクスケジューラ
Batch File
23
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
24
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
• バッチファイルの拡張子は*.bat、*.cmd
25
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
• バッチファイルの拡張子は*.bat、*.cmd
• 実行するインタプリタ
• COMMAND.COM(Windows Meまで)
• cm...
27
@echo off
!
rem 変数に値を設定します
set HOGE="変数の値"
!
rem このバッチが存在するフォルダに移動します
pushd %0..
!
echo MyAwesomeProgram.exeを実行します。
MyA...
• 可読性が低い
• 構造化しづらい
• 再利用性が悪い
28
Batch File
VBScript/WSH
29
VBScript/WSH
• Windows Script Host + VBScript
30
VBScript/WSH
• Windows Script Host + VBScript
• バッチファイルを置き換える
• Windows 95から標準搭載
31
VBScript/WSH
• Windows Script Host + VBScript
• バッチファイルを置き換える
• Windows 95から標準搭載
• レジストリやWMIへのアクセスが容易
32
VBScript/WSH
• VBScript
33
VBScript/WSH
• VBScript
• Microsoft Visual Basic Scripting Edition
• WSH、ASP上で利用可能
• 組み込みGUI関数 MsgBox、InputBox
34
VBScript/WSH
• VBScript
• Microsoft Visual Basic Scripting Edition
• WSH、ASP上で利用可能
• 組み込みGUI関数 MsgBox、InputBox
• WSH+JScri...
36
Option Explicit
!
WScript.Echo "Hello World"
!
' 変数に値を設定します。
Dim x, y
!
x = 100
y = 200
!
If x > y Then
MsgBox x & "のほう...
VBScript/WSH
• 簡単な処理も複雑になりがち
37
VBScript/WSH
• 簡単な処理も複雑になりがち
• VBScript製ウィルス等の影響もあり敬遠される
• デフォルトでWSHが有効で*.vbsファイルが実行
可能
• ex. LoveLetter
38
PowerShell
39
PowerShell
• .NET Frameworkを利用したスクリプト言語
• システム管理、自動化
40
PowerShell
• .NET Frameworkを利用したスクリプト言語
• システム管理、自動化
• セキュリティ面に配慮
• 実行ポリシーやスクリプトへのデジタル署名
41
PowerShell
• 利用可能
• Windows XP
• Windows 2003
42
PowerShell
• 利用可能
• Windows XP
• Windows 2003
• 標準搭載
• Windows Server 2008 R2
• Windows 7
43
PowerShell
44
!
$dirPath = “.Fuga”
!
if ( -not (Test-Path $dirPath) )
{
mkdir $dirPath
Write-Host “$dirPath を作成しました"
}
els...
PowerShell
• Powershell 5.0 Previewが利用可能
45
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
46
自動化のための手段
タスクスケジューラ
Batch File WSH/VBScript PowerShell
Build Tools
Jenkins AppVeyor
47
自動化のための手段
タスクスケジューラ
MSBuild
48
MSBuild
• Microsoftが提供するビルドエンジン
49
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
50
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
• 無償利用可能
51
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
• 無償利用可能
• Antに近いXML形式のプロジェクトファイル
• ターゲット、タスク、プロパティ、アイテムなど
から構...
53
!
<Project DefaultTargets="build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- =========== プロパティ =...
MSBuild
• 標準で用意されているタスク
• https://msdn.microsoft.com/ja-jp/library/
7z253716.aspx
54
MSBuild
• 標準で用意されているタスク
• https://msdn.microsoft.com/ja-jp/library/
7z253716.aspx
• コミュニティによって作られたものも多い
• https://github.c...
MSBuild
• タスクは.NETアセンブリとして自作可能
• Taskクラスを継承
• ITaskインターフェイスを実装
56
MSBuild
• タスクは.NETアセンブリとして自作可能
• Taskクラスを継承
• ITaskインターフェイスを実装
• 他のビルドツール
• nmake、NAnt、psake などなど
57
Nuget
58
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
59
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
• 各種DLL、拡張機能、jsファイルなど様々なものを
ダウンロード、インストール可能
• 依存関係の解決からプロジェクトへの参照追加ま
...
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
• 各種DLL、拡張機能、jsファイルなど様々なものを
ダウンロード、インストール可能
• 依存関係の解決からプロジェクトへの参照追加ま
...
62
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
63
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
64
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
Nuget
• ローカルNugetサーバーも設置可能
• チーム内のツール共有、開発環境の共通化
• ファイル共有サーバー上に構築可能
• Webサーバーは「Nuget.Server」パッケージ
65
Nuget
• 社内の開発環境の改善&効率化のためにNuGetを活
用しよう(http://www.buildinsider.net/
enterprise/nugetprivate/01)
• NuGet.Server を利用してプライベート...
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
67
自動化のための手段
タスクスケジューラ
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Executers
68
自動化のための手段
タスクスケジューラ
69
• プログラムやスクリプトを自動実行する機能
70
タスクスケジューラ
• プログラムやスクリプトを自動実行する機能
• Windows 95以降で搭載
• Windows 95では「システムエージェント」
• Windows 98で「タスクスケジューラ」に変更
71
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
72
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
• すべての実行履歴が保持される
73
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
• すべての実行履歴が保持される
• コマンドラインユーティリティとしてSchtasks.exe
が利用可能
74
タスクスケジューラ
75
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
http...
76
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
http...
77
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
!
SC...
• VBScript、PowerShellなどのスクリプト言語から
もAPIを利用可能
78
タスクスケジューラ
• VBScript、PowerShellなどのスクリプト言語から
もAPIを利用可能
• プログラムから利用
• ITaskFolderインターフェイス
• IRegisteredTaskインターフェイス
79
タスクスケジューラ
Jenkins
80
Jenkins
• Java製のCIサーバー
81
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
82
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
• 豊富なプラグイン
83
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
• 豊富なプラグイン
• マスター/スレーブ構成でリモートな制御も可能
84
Jenkins
• CIサーバーとしてはTeamCityとかTFS
• .NETベースでオープンソースな人にはAppVeyor
(http://www.appveyor.com/)
85
どれを使うか
86
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
87
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
88
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
• PowerShellのほうが便利な部分があるなら置き換
える
89
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
• PowerShellのほうが便利な部分があるなら置き換
える
• それぞれの得意なところで使う...
どれを使うか
• 普段から「手段」を増やして常に対応できるように
91
どれを使うか
• 普段から「手段」を増やして常に対応できるように
• だが pause お前はダメだ
92
Upcoming SlideShare
Loading in …5
×

Windowsでの自動化の手段

12,428 views

Published on

Windowsでの自動化について考える会 http://connpass.com/event/11779/ #WinAutoMate での発表資料です。

Published in: Engineering

Windowsでの自動化の手段

  1. 1. Windowsでの自動化の手段 1
  2. 2. いつもの作業を効率化する自動化 2
  3. 3. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない 3
  4. 4. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい 4
  5. 5. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ 5
  6. 6. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ • 自動化そのものが好きだな 6
  7. 7. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ • 自動化そのものが好きだな? 7
  8. 8. お品書き
  9. 9. • 今日話すこと • 自動化の手段をざっくり紹介 お品書き
  10. 10. • 今日話すこと • 自動化の手段をざっくり紹介 • 今日はなさないこと • 個々の手段の導入方法 お品書き
  11. 11. お前誰だよ? 11
  12. 12. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 12
  13. 13. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます 13
  14. 14. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます • 普段はC++とか.NET言語(主にC#)とか 14
  15. 15. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます • 普段はC++とか.NET言語(主にC#)とか • 秘伝のソースのメンテナンスが仕事 15
  16. 16. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyorタスクスケジューラ 16 自動化のための手段 3つのレイヤーで紹介
  17. 17. Scripts NugetMSBuild psake Jenkins AppVeyor 17 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介
  18. 18. Batch File WSH/VBScript PowerShell Build Tools Jenkins AppVeyor 18 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介
  19. 19. Batch File WSH/VBScript PowerShell NugetMSBuild psake Executers 19 自動化のための手段 3つのレイヤーで紹介
  20. 20. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 20 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介 「そういう考え方もあるのか」くらいで見ていただければと
  21. 21. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 21 自動化のための手段 タスクスケジューラ
  22. 22. Scripts NugetMSBuild psake Jenkins AppVeyor 22 自動化のための手段 タスクスケジューラ
  23. 23. Batch File 23
  24. 24. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 24
  25. 25. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 • バッチファイルの拡張子は*.bat、*.cmd 25
  26. 26. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 • バッチファイルの拡張子は*.bat、*.cmd • 実行するインタプリタ • COMMAND.COM(Windows Meまで) • cmd.exe(Windows 2000、XP以降) 26
  27. 27. 27 @echo off ! rem 変数に値を設定します set HOGE="変数の値" ! rem このバッチが存在するフォルダに移動します pushd %0.. ! echo MyAwesomeProgram.exeを実行します。 MyAwesomeProgram.exe ! rem エラー判定 if "%ERRORLEVEL%" == "0" ( echo 成功 ) else ( echo 失敗 ) ! rem 実行結果を確認して終了してください pause Batch File
  28. 28. • 可読性が低い • 構造化しづらい • 再利用性が悪い 28 Batch File
  29. 29. VBScript/WSH 29
  30. 30. VBScript/WSH • Windows Script Host + VBScript 30
  31. 31. VBScript/WSH • Windows Script Host + VBScript • バッチファイルを置き換える • Windows 95から標準搭載 31
  32. 32. VBScript/WSH • Windows Script Host + VBScript • バッチファイルを置き換える • Windows 95から標準搭載 • レジストリやWMIへのアクセスが容易 32
  33. 33. VBScript/WSH • VBScript 33
  34. 34. VBScript/WSH • VBScript • Microsoft Visual Basic Scripting Edition • WSH、ASP上で利用可能 • 組み込みGUI関数 MsgBox、InputBox 34
  35. 35. VBScript/WSH • VBScript • Microsoft Visual Basic Scripting Edition • WSH、ASP上で利用可能 • 組み込みGUI関数 MsgBox、InputBox • WSH+JScriptの組み合わせも 35
  36. 36. 36 Option Explicit ! WScript.Echo "Hello World" ! ' 変数に値を設定します。 Dim x, y ! x = 100 y = 200 ! If x > y Then MsgBox x & "のほうが大きいよ!" Else MsgBox y & "のほうが大きい!" End If VBScript/WSH
  37. 37. VBScript/WSH • 簡単な処理も複雑になりがち 37
  38. 38. VBScript/WSH • 簡単な処理も複雑になりがち • VBScript製ウィルス等の影響もあり敬遠される • デフォルトでWSHが有効で*.vbsファイルが実行 可能 • ex. LoveLetter 38
  39. 39. PowerShell 39
  40. 40. PowerShell • .NET Frameworkを利用したスクリプト言語 • システム管理、自動化 40
  41. 41. PowerShell • .NET Frameworkを利用したスクリプト言語 • システム管理、自動化 • セキュリティ面に配慮 • 実行ポリシーやスクリプトへのデジタル署名 41
  42. 42. PowerShell • 利用可能 • Windows XP • Windows 2003 42
  43. 43. PowerShell • 利用可能 • Windows XP • Windows 2003 • 標準搭載 • Windows Server 2008 R2 • Windows 7 43
  44. 44. PowerShell 44 ! $dirPath = “.Fuga” ! if ( -not (Test-Path $dirPath) ) { mkdir $dirPath Write-Host “$dirPath を作成しました" } else { Write-Host “$dirPath はすでに存在します" } ! Get-ChildItem .Hoge* -Include *.txt -Recurse
  45. 45. PowerShell • Powershell 5.0 Previewが利用可能 45
  46. 46. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 46 自動化のための手段 タスクスケジューラ
  47. 47. Batch File WSH/VBScript PowerShell Build Tools Jenkins AppVeyor 47 自動化のための手段 タスクスケジューラ
  48. 48. MSBuild 48
  49. 49. MSBuild • Microsoftが提供するビルドエンジン 49
  50. 50. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 50
  51. 51. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 • 無償利用可能 51
  52. 52. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 • 無償利用可能 • Antに近いXML形式のプロジェクトファイル • ターゲット、タスク、プロパティ、アイテムなど から構成 52
  53. 53. 53 ! <Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- =========== プロパティ ========== --> <PropertyGroup> <ProjectName>MsBuildSample</ProjectName> </PropertyGroup> <!-- ======= アイテムグループ ======== --> <ItemGroup> <CSFile Include="***.cs"/> <Reference Include="System.dll"/> <Reference Include="System.Data.dll"/> <Reference Include="System.Drawing.dll"/> <Reference Include="System.Windows.Forms.dll"/> <Reference Include="System.XML.dll"/> </ItemGroup> <!-- =========== ターゲット ========== --> <!-- buildターゲット(C#プロジェクトをコンパイル) --> <Target Name="build" > <CSC Sources="@(CSFile)" References="@(Reference)" OutputAssembly="$(ProjectName).exe" TargetType="winexe" /> </Target> <!-- runターゲット(C#プロジェクトのEXEを実行) --> <Target Name="run" DependsOnTargets="build"> <Exec Command="$(ProjectName).exe"/> <Message Text="アプリケーションを実行しました。" /> </Target> </Project> http://codezine.jp/article/detail/674 MSBuild
  54. 54. MSBuild • 標準で用意されているタスク • https://msdn.microsoft.com/ja-jp/library/ 7z253716.aspx 54
  55. 55. MSBuild • 標準で用意されているタスク • https://msdn.microsoft.com/ja-jp/library/ 7z253716.aspx • コミュニティによって作られたものも多い • https://github.com/loresoft/msbuildtasks 55
  56. 56. MSBuild • タスクは.NETアセンブリとして自作可能 • Taskクラスを継承 • ITaskインターフェイスを実装 56
  57. 57. MSBuild • タスクは.NETアセンブリとして自作可能 • Taskクラスを継承 • ITaskインターフェイスを実装 • 他のビルドツール • nmake、NAnt、psake などなど 57
  58. 58. Nuget 58
  59. 59. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) 59
  60. 60. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) • 各種DLL、拡張機能、jsファイルなど様々なものを ダウンロード、インストール可能 • 依存関係の解決からプロジェクトへの参照追加ま でひと通り行ってくれる 60
  61. 61. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) • 各種DLL、拡張機能、jsファイルなど様々なものを ダウンロード、インストール可能 • 依存関係の解決からプロジェクトへの参照追加ま でひと通り行ってくれる • Visual Studioのエクステンションとして利用可能 61
  62. 62. 62 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget
  63. 63. 63 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget ! PM> Install-Package jQuery ! PM> Install-Package jquery.TypeScript.DefinitelyTyped
  64. 64. 64 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget ! PM> Install-Package jQuery ! PM> Install-Package jquery.TypeScript.DefinitelyTyped ! PM> Install-Package Codeer.Friendly
  65. 65. Nuget • ローカルNugetサーバーも設置可能 • チーム内のツール共有、開発環境の共通化 • ファイル共有サーバー上に構築可能 • Webサーバーは「Nuget.Server」パッケージ 65
  66. 66. Nuget • 社内の開発環境の改善&効率化のためにNuGetを活 用しよう(http://www.buildinsider.net/ enterprise/nugetprivate/01) • NuGet.Server を利用してプライベートリポジトリ を構築する(http://blog.shibayan.jp/entry/ 20111017/1318860985) 66
  67. 67. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 67 自動化のための手段 タスクスケジューラ
  68. 68. Batch File WSH/VBScript PowerShell NugetMSBuild psake Executers 68 自動化のための手段
  69. 69. タスクスケジューラ 69
  70. 70. • プログラムやスクリプトを自動実行する機能 70 タスクスケジューラ
  71. 71. • プログラムやスクリプトを自動実行する機能 • Windows 95以降で搭載 • Windows 95では「システムエージェント」 • Windows 98で「タスクスケジューラ」に変更 71 タスクスケジューラ
  72. 72. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき 72 タスクスケジューラ
  73. 73. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき • すべての実行履歴が保持される 73 タスクスケジューラ
  74. 74. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき • すべての実行履歴が保持される • コマンドラインユーティリティとしてSchtasks.exe が利用可能 74 タスクスケジューラ
  75. 75. 75 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad https://technet.microsoft.com/ja-jp/windows/ff467963.aspx タスクスケジューラ
  76. 76. 76 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad https://technet.microsoft.com/ja-jp/windows/ff467963.aspx ! SCHTASKS /Run /TN "Start Backup" タスクスケジューラ
  77. 77. 77 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad ! SCHTASKS /Delete /TN "Backup and Restore" https://technet.microsoft.com/ja-jp/windows/ff467963.aspx ! SCHTASKS /Run /TN "Start Backup" タスクスケジューラ
  78. 78. • VBScript、PowerShellなどのスクリプト言語から もAPIを利用可能 78 タスクスケジューラ
  79. 79. • VBScript、PowerShellなどのスクリプト言語から もAPIを利用可能 • プログラムから利用 • ITaskFolderインターフェイス • IRegisteredTaskインターフェイス 79 タスクスケジューラ
  80. 80. Jenkins 80
  81. 81. Jenkins • Java製のCIサーバー 81
  82. 82. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 82
  83. 83. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 • 豊富なプラグイン 83
  84. 84. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 • 豊富なプラグイン • マスター/スレーブ構成でリモートな制御も可能 84
  85. 85. Jenkins • CIサーバーとしてはTeamCityとかTFS • .NETベースでオープンソースな人にはAppVeyor (http://www.appveyor.com/) 85
  86. 86. どれを使うか 86
  87. 87. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない 87
  88. 88. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい 88
  89. 89. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい • PowerShellのほうが便利な部分があるなら置き換 える 89
  90. 90. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい • PowerShellのほうが便利な部分があるなら置き換 える • それぞれの得意なところで使う 90
  91. 91. どれを使うか • 普段から「手段」を増やして常に対応できるように 91
  92. 92. どれを使うか • 普段から「手段」を増やして常に対応できるように • だが pause お前はダメだ 92

×