SlideShare a Scribd company logo
1 of 34
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
PowerShellの概要と基本操作、プロ
グラミング基礎(その1)
Time: 2015.2.6 09:30-16:00 Room: Tokyo Office
山岡 茂治
TW社内セミナー
システム運用・構築技術者のためのPowerShellプログラミング
1. PowerShell(PS)の概要
2. 利用する為の前提条件
3. PSの環境とバージョン
4. PowerShellの起動
5. PowerShellの実行①
6. PowerShellの実行②
7. コマンドレットについて
8. コマンドレットの例
9. スクリプトの記述方法
10. 変数とデータ型1
11. 変数とデータ型2
12. Write-HostとRead-Host
13. 変数と値の表現、算術演算子
14. 文字の連結、変数の演算
15. ISEを利用したデバッグ
16. 条件分岐 if
17. 条件の指定と条件演算子
18. 条件分岐の例
19. 条件分岐の練習
20. 繰り返し処理 for
21. 繰り返し処理の例
22. 繰り返し処理の練習
23. 繰り返し処理 foreach
24. テキストファイルへの出力
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■PowerShellの特徴
・コマンドプロンプト(cmd.exe)、WSHに変わる技術(シェル)
・システムの管理や運用を容易にするためのスクリプト環境
・. NET Frameworkの技術がベースとなっている
⇒ プログラミング(C#等)と同じような複雑な処理が可能
<.NET Framework 2.0の構成>
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
1. PowerShellの概要
.NETアプリケーション
Windows
アプリケーション
ASP.NET Web
アプリケーション
コンソール
アプリケーション
.NET開発
VB.NET、C#、
PowerShell
.NET Framework
クラスライブラリ
開発や利用を容易にするための機能
共通言語ラインタイム(CLR)
OS(Windowsなど)
● 共通言語ランタイムが(CLR).NETで
作成されたアプリケーションやシステムを
実行する。
● JAVAの仕組みも似たようなもの
CLR と JavaVMは同じ役割。
● C#などは、.NET Frameworkのクラス
ライブラリを利用し、システムを開発するが
PowerShellも同様にクラスライブラリを利用可
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■利用する為の前提条件
・Windows Serverや各種アプリケーションサーバーの知識
⇒ Active Directory、Exchange、SharePoint等の概念、操作
・PowerShellを使うための最低限の知識
⇒ コマンドレットの使い方、基本的な文法
※各種機能については覚えるのは難しいが、ドキュメントやネット等で
効率よく調べる方法を身に着けることが重要(GoogleやTechNet)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
2. 利用する為の前提条件
Googleで検索
「PowerShell XXXX」
TechNetではリファレンスが
参照できる
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■必要な環境
・Windows 7やWindows2008 R2では標準で組み込まれている
(それ以前の環境では別途インストールが必要)
・テキストエディタ(メモ帳)、付属のPowerShell ISEで作成・
編集が可能
■PowerShellのバージョン
・現在 PowerShell 5.0(2.0ベース、3.0ベースが主流)
・1.0=Win2008、Vista … 初期バージョン
・2.0=2008R2、Win7 … モジュール拡張、リモート実行、ISE
・3.0=2012、Win8 … WF機能、管理ツールのコマンドレット化
・4.0=2012R2、Win8.1 … Windows版 Chef(シェフ) 機能
・5.0=最新バージョン … OneGet(パッケージ管理システム apt-get)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
3. PowerShellの環境とバージョン
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■PowerShellの起動
・コマンドプロンプトと似たようなCUI
・ISEでの起動 ⇒ エディタ機能が付与
・PowerShellは対話式で1行ずつ実行する方法と、.ps1という
ファイル(テキスト形式)で実行する方法がある
※Win7やWin8等で .ps1ファイルを実行するには
「Set-ExecutionPolicy RemoteSigned」の実行が必要になる場合があります。
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
4. PowerShellの起動
PowerShellの起動 PowerShell ISE の起動
● ISEはエディタ機能の他に、
処理を1行ごと実行(ステップ実行)
するデバッグ機能を備える
●F9でブレークポイントをセットし、
F5を押し実行し、止まったところから
F10を押しながら1行ずつ動作を
確認することが可能(便利です)
●ISEのアドオンを組み込み、更に
エディタ機能を拡張できます
「PowerShell ISE Add-Ons」で検索
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■コンソールでの入力と実行
・処理(コマンドレット、ステートメント)を直接入力、ENTER
・ウインドウを閉じない限り、処理結果や変数の内容は記憶される
~実行例~
PS C:Usersxxxx> $YourName = Read-Host(“お名前は=“) ↲
お名前は=: (ここで名前を入力)↲
PS C:Usersxxxx> Write-Host(“おはようございます、” + $YourName + “さん!”) ↲
おはようございます、(入力した名前)さん!
※日本語以外は半角で入力します。間違えた場合は赤字で表示されます。
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
5. PowerShellの実行①
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■テキストエディタまたはPowerShell ISEの利用
・テキストエディタまたはISEにて、処理を記述し保存。
~入力例~
$YourName = Read-Host(“お名前は=“) ↲
Write-Host(“おはようございます、” + $YourName + “さん!”) ↲
※日本語以外は半角で入力します。間違えた場合は赤字で表示されます。
・実行ボタン を押して実行 ⇒ 連続して実行される。
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
6. PowerShellの実行②
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■コマンドレットとは
・単一機能のコマンド群(目的に応じて用意されている)
・命名規則や使い方が統一され、パイプラインで連携できる
⇒ 取得=Get-機能XXX、更新=Add-機能XXX、Update-、Delete-
・標準で3,000以上あるため、覚えることは難しい(調べて使う)
<文法>
コマンド名
コマンド名 パラメータ値
コマンド名 –オプション名 オプションの値
コマンド名 –オプション名 オプションの値 パラメータ値
コマンド名 パラメータ値、オプション | 結果を受け取り実行するコマンド名…
※使い方が分からない場合は 「Get-Help コマンド名 –Online」
⇒ TechNetの該当のコマンドをブラウザで表示してくれる(便利です)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
7. コマンドレットについて
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■コマンドレットの例
通常GUIでの表示(プロパティや管理ツール)で取得する情報を
PSのコマンドレットで実行すると次のようになります。
・プロセス一覧からPowershell(コンソール)の情報を抽出
PS> Get-Process –Name PowerShell
・起動中のサービスの一覧を表示
PS> Get-Service | where Status -eq Running
・ローカルユーザーアカウントの一覧を表示
PS> Get-CimInstance -ClassName Win32_UserAccount
・BIOSの情報を表示
PS> Get-WmiObject -Class Win32_BIOS
・論理ドライブの情報を表示
PS> Get-WmiObject -Class Win32_LogicalDisk
・直近100件のイベントログ(システム)を表示
PS> Get-EventLog System -Newest 100
・現在のフォルダのアクセス権を表示
PS> Get-Acl | fl
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
8. コマンドレットの例
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■基本的な文法(ステートメント)
・記述した内容は上から下に向かって処理される
・基本的な記述方法は以下の2種類
「変数 = コマンドレットの指定、計算などの処理」
⇒ 処理結果を変数に格納する
「コマンドレットの指定、計算などの処理」
⇒ 処理結果を画面に出力、結果を格納しない場合
※処理結果を返したくない場合は[void]を付ける
~記述例~
$Now = Get-Date #現在の日時を取得(#はコメント)
$Total = 1 + 2 * 3 – 4 / 5 #計算処理
Write-Host(“現在は” + $Now + “です。”) ↲
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
9. スクリプトの記述方法
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■変数
・データを格納する「箱」 数学の方程式 x=1 と同じ、上書きされる
・PowerShellでは $名前 と指定する
・変数の中には、文字列、数値、日時、オブジェクト(機能の
集まり)などが格納される(これらをデータ型という)
~変数の動き~
~変数のデータ型~
SID: xxxxxx
DisplayName: 山田太郎
Email: xxxx@xxxxx
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
10. 変数とデータ型1
$Count
$Count = 1
1
$Count
$Count = 3
31
後の処理で上書きされる
$Count = $Count + 4
3 3 + 4
$Count
上書きの前に、変数の値を
足しこんで格納(=7)
$Count
1.23
数値型(整数・小数)
$Text
“あいう”
文字列型
$Now
“2014/4/1
12:34:56”
日時型
$CsvData
CSVファイルの内容
“1”, “山田太郎”, …
“2”, “佐藤花子”, …
“3”, “鈴木雅治”, …
$AdUser
ADユーザー情報(包括)
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■オブジェクト変数
・変数は格納されたデータ型によって、拡張機能を持っている
拡張機能 … プロパティ(属性)、メソッド(命令)
・拡張機能にアクセスするには、「$変数.XXX」と記述する
~プロパティのアクセス例~
$Now = Get-Date #現在の日付を取得
#年(数値)と 100 ナノ秒 (1 秒の 1000 万分の 1) を表示
Write-Host $Now.Year $Now.Ticks
#日時を整形して表示
Write-Host $Now.ToString(“MM月dd日(ddd)HH時mm分”)
$Cred = Get-Credential #認証ダイアログを表示
$Cred.UserName #入力したユーザー名
$Cred.Password #パスワードは見えない
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
11. 変数とデータ型2
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■Write-Host(出力内容)
・指定した出力内容を画面に出力する
・変数を直接指定した場合もWrite-Hostと同じく画面に出力(詳細)
~例~
Write-Host(Get-Date)
Write-Host $Now $YourName $Total “あいう” 123
■変数 = Read-Host(“入力を促すプロンプト”)
・画面に入力された文字列を受け取り、変数等に格納する
~例~
$Count = Read-Host(“繰り返し回数=”)
$Count = [int]$Count #変数に変換
for ($i=1; $i –lt $Count; $Count++) { Write-Host($i) } #回数分表示
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
12. Write-HostとRead-Host
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■変数と値
・データを格納する「箱」 、PowerShellでは $名前 と指定
・値の表現
文字列 ⇒ “123.45” 数値 ⇒ 123.45
日付 ⇒ [DateTime]“2014/4/1”
・データ型を調べる場合 ⇒ 変数.GetType()
例)データ型を確認
$a = “2014/4/1”
$b = [DateTime]”2014/4/1” #文字列を日時型に変換
$a.GetType()
$b.GetType()
■算術演算子
基本的にExcel等の表計算で利用するものと同じ( + - * /)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
13. 変数と値の表現、算術演算子
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■文字列の連結
・文字列を連結する場合は「+」を利用
・“1” + “1” は 2 ではなく “11”、1 + 1 は 2(データ型の違い)
・特殊文字 … タブ 「`t」改行「`n」(日本語キーボードのShift+@)
■変数の演算
・数値の余りを求める $result = 123 % 10 ⇒ $result に 3
・加算処理 $count = $count + 1 と $count++ が同じ(++は省略形)
・現在の日時の取得
$date = Get-Date または $date = [DateTime]::Now
・日付の加算/減算
$date = $date.AddDays(30) / $date.AddDays(-1)
・日付の差
$timespan = New-TimeSpan $変数1 $変数2
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
14. 文字列の連結、変数の演算
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■PowerShell ISE(Integrated Scripting Environmentnt)のデバッグ
・先頭にブレークポイントを挿入(.ps1を保存後、F9キー)
・実行(F5キー)すると1行目で停止する
・F10を押しながら1行ずつ実行
・マウスをポイントすると変数の値などを確認できる
例)計算処理の途中で止めた状態
$a = 3
$b = 4
$c = $a + $b
Write-Host("`$aと`$bの合計は" + $c + "です。")
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
15. ISEを利用したデバッグ
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■「if」プログラムの処理を分岐させる
・if (条件…) {
条件を満たした場合(true)の処理
} else {
それ以外の処理(false: 条件を満たさない)
}
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
16. 条件分岐 if
処理
条件
処理 処理
処理
条件を満たす場合
(true)
条件を
満たさない場合
(false)
● 複数の条件がある場合は elseif を利用する。
if ( 条件1… ) {
条件1を満たした場合(true)の処理
} elseif ( 条件2… ) {
条件2を満たした場合(true)の処理
} elseif ( 条件3… ) {
条件3を満たした場合(true)の処理
} else {
いずれの条件にも満たない場合の処理
}
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■ 条件の指定方法
・右辺と左辺が一致する(true)かどうかを記述
例)変数$ansの値が“Yes”だった場合 ⇒ if ( $ans –eq “Yes”)
例)変数$numの値が 100 未満の場合 ⇒ if ( $num –ge 100)
例)変数$dateの月が 4月~12月の場合 ⇒ if ( $date.Year –ge 4)
■ 条件の演算子
・以下の演算子を利用して表現する(他にも –match などがあります)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
17. 条件の指定と条件演算子
演算子 意味
-eq 等しい=
-ne 等しくない<>
-like 含める(文字列)
-not like 含めない(文字列)
演算子 意味
-gt 大きい >
-ge 以上 >=
-lt 小さい <
-le 以下 <=
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
~記述例~
$Point = Read-Host(“点数を入力してください。”)
if ($Point –eq 100) {
Write-Host(“満点!合格!”) ↲
}
elseif ($Point –ge 60) {
Write-Host(“合格!”) ↲
}
else {
Write-Host(“不合格!”) ↲
}
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
18. 条件分岐の例
●ifの部分はネスト(入れ子)も可
if ($Point –eq 100) {
Write-Host(“満点!合格!”) ↲
}
else {
if ($Point –ge 60) {
Write-Host(“合格!”) ↲
}
else {
Write-Host(“不合格!”) ↲
}
}
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
問題: コンソールから ”User” または “Group” を入力し、Userが入力された場合
はユーザーの一覧を、Groupが入力されたらグループの一覧を表示し、それ以外
はエラーを表示するプログラムを作成してください(practice_if.ps1)
※ユーザー一覧 ps> Get-CimInstance -ClassName Win32_UserAccount
※グループ一覧 ps> Get-CimInstance -ClassName Win32_Group
<フローチャートで表した場合>
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
19. 条件分岐の練習
コンソールから文字列を受け取る
「User/Groupを入力してください」
条件
ユーザー一覧
表示
条件
値がUserの場合
$x –eq “User”
それ以外
値がGroupの場合
$x –eq “Group”
それ以外
グループ一覧
表示
“エラー”を
表示
コンソールから文字列を受け取る
「User/Groupを入力してください」
条件 ユーザー一覧表示
条件
値がUserの場合
値がGroupの場合
それ以外
グループ一覧表示
“エラー”を表示
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■「for」同じ処理を繰り返し実行する
・for ($i = 開始値; $i -le 終了値; $i++) {
開始値から終了の値まで処理を実行
} ←終端まで来ると $i の値が自動的に+1され、終了値を超えると処理を抜ける
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
20.繰り返し処理 for
処理
処理x
繰り返しの条件
の間「処理x」を
何度も実行する
繰り返し開始
繰り返し終了
処理x
処理
処理
処理x
繰り返しを2つ使って
処理することも多い
(外側の繰り返し1は
$i を、内側の繰り返し
2は $j を利用する)
繰返1開始
繰返1終了
処理y
処理
繰返2開始
繰返2終了
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
~記述例~
1から10までの和を表示する処理
$sum = 0
$sum = $sum + 1
$sum = $sum + 2
$sum = $sum + 3
…
$sum = $sum + 10
Write-Host($sum)
繰り返しを使って記述した場合
$sum = 0
for ($i = 1; $i -le 10; $i++) {
$sum = $sum + $i
}
Write-Host($sum)
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
21.繰り返し処理の例
二重に繰り返しをおこなった場合
for ($i = 1; $i -le 10; $i++) {
for ($j = 1; $j -le 10; $j++) {
Write-Host(“” + $i + “,” + $j)
}
}
実行結果
左側が $i の値、右側が $j の値
1行ずつ$jの値が加算されていき、
10になった時点で、$iが加算される
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
問題: 繰り返しを1回から100回までおこない、1回ごとに★を表示するプログラ
ムを作成してください。(practice_for.ps1)
設問① 1行に1つ★を出力する
設問② 改行をせず、横に出力する 例)★ ★ ★ ★ ★ ★ ★…
設問③ 横に出力し、10個出力したら改行する
※Write-Hostで改行しないように出力するには、オプションに「-noNewLine」を付けます
Write-Host(“xxx”) –noNewLine 、改行=空を出力 Write-Host(“”)
<フローチャートで表した場合>
設問① 設問② 設問③ 回答1 回答2
第1回 PowerShellのプログラミング
22. 繰り返しの練習
条件
★を出力
(改行あり)
繰り返し開始
$i<=100の間
繰り返し終了
★を出力
(改行なし)
繰り返し開始
$i<=100の間
繰り返し終了
繰り返し開始
繰り返し終了
10個出力の条件
=10で割った余り
(%)が0
★を出力
空””を出力
繰返1開始
繰返1終了
繰返2開始
繰返2終了
★を出力
空“”を出力
10回の
繰り返し
10回の
繰り返し
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■「foreach」対象物が「ある」だけ繰り返す=よく使います
・foreach ($取り出した値の変数 in $対象物) {
対象物があるだけ繰り返す(ない場合は処理しない)
}
~利用の例~
・配列(変数の値を並べたもの)があるだけ繰り返す。
$fruitsData = “いちご”, “みかん”, “すいか”, “バナナ”
foreach ($fruitsItem in $fruitsData) {
Write-Host($fruitsItem + “が好きです”)
}
・起動中のサービスの一覧を取得し、名前に a があるものを出力する
$services = Get-Service | where Status -eq Running
foreach ($service in $services) {
if ($service.Name -like “*a*”) {
Write-Host($service.Name + “は`”a`”を含んでいます”)
}
}
第1回 PowerShellのプログラミング
23.繰り返し処理 foreach
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■処理・変数 | Out-File “出力するファイル名” - append
・指定したファイルにテキストを出力する
・「-append」 を指定すると追記
・「-encoding 文字コード」で文字コード指定が可能
※PowerShellは「UTF16LE」が標準なので注意(UTF8ではない)
~例~
Get-Process | Out-File “process一覧.txt”
Start-Process “process一覧.txt” #テキストを既定のエディタで開く
$total = 0
for($i=1; $i –le 10000; $i++) {
$total_old = $total.ToString(“#,###”); $total = $total + $i
Write-Output(“” + $total_old + “+” + $i + ”=“ + $total)
| Out-File “star.txt” –append
}
Start-Process “star.txt” #1から100までの合計を計算式と共に出力
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
24. テキストファイルへの出力
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題01: 名前の表示
画面に「名前を入力:」と表示し、入力した名前を
組み合わせ「こんにちは、●●さん」と表示し、次の行に
現在は yyyy/MM/dd HH:mm:ssです」と表示してください。
<実行例>
名前を入力: 山田太郎
こんにちは、山田太郎さん
現在は 2015/4/2 08:30:00 です
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題02: 四則演算
画面に「Xの値:」と「Yの値:」を表示し、入力した
XとYの値の加算・減算・乗算・除算の結果を表示してください。
<実行例>
Xの値: 3
Yの値: 4
X + Y = 7
X - Y = -1
X * Y = 12
X / Y = 0.75
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題03: 合計と平均
値を5回入力し、合計・平均を表示してください。
<実行例>
値1: 400
値2: 700
値3: 100
値4: 800
値5: 300
合計 = 2,300
平均 = 460.00
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題04: 合格判定
画面に「点数:」を表示し、入力した点数によって
以下の値を表示させてください。
点数 表示
-----------------------------------
100点 合 格 ★★★★★
80点以上 合 格 ★★★★☆
60点以上 合 格 ★★★☆☆
30点以上 不合格 ★★☆☆☆
30点未満 不合格 ★☆☆☆☆
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題05: 1から100までの合計
実行すると1から100までの合計を表示してください。
<実行例>
1から100までの合計
5,050
■問題06: 1からnまでの合計
1から指定された値までの合計を表示してください。
<実行例>
nの値: 10
1から10までの合計
55
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題07: aからbまでの合計
aからbまでの合計を表示してください。
<実行例>
aの値: 5
bの値: 60
5から60までの合計
1,820
■問題08: aからbまでの偶数の表示
aからbまでの値で偶数の値のみを1行ずつ表示してください
<実行例>
aの値: 5
bの値: 60
⇒ 6, 8 , 10, 12 … が各行に表示される
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題09: 合計と途中経過の表示
1から100までの合計と途中経過を表示してください。
<実行例>
0 + 1 = 1
1 + 2 = 3
3 + 3 = 6
…
合計 = 5,050
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題10:星(★)の表示1
繰り返しを1回から100回までおこない、
1回ごとに★を表示するプログラムを作成してください。
★は1行に1つずつ表示させます。
<実行例>
★
★
★
★
…
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。
■問題11:星(★)の表示2
繰り返しを1回から100回までおこない、
1回ごとに★を表示するプログラムを作成してください。
★は各行に10個ずつ表示し改行してください。
<実行例>
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
…
第1回 PowerShellの概要と基本操作、プログラミング基礎(その1)
X. 演習問題
TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング

More Related Content

What's hot

やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略Riotaro OKADA
 
Php internal architecture
Php internal architecturePhp internal architecture
Php internal architectureElizabeth Smith
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮Hibino Hisashi
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Yasutaka Kawamoto
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較Shinya Sugiyama
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理junichi anno
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 

What's hot (20)

やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
 
Php internal architecture
Php internal architecturePhp internal architecture
Php internal architecture
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 

Similar to 運用構築技術者の為のPSプログラミング第1回

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
System4 comment
System4 commentSystem4 comment
System4 commentJun Chiba
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングKazuki Takai
 
PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management ServerKazushi Kamegawa
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用Ruo Ando
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おうSatoru Nasu
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514junichi anno
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell CoreKazuki Takai
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...Insight Technology, Inc.
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Tetsu Yama
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
System3 ajax
System3 ajaxSystem3 ajax
System3 ajaxJun Chiba
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説LeapMind Inc
 
System2 ajax
System2 ajaxSystem2 ajax
System2 ajaxJun Chiba
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイドEtsuji Nakai
 

Similar to 運用構築技術者の為のPSプログラミング第1回 (20)

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
System4 comment
System4 commentSystem4 comment
System4 comment
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management Server
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell Core
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
 
20180123 power shell
20180123 power shell20180123 power shell
20180123 power shell
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
System3 ajax
System3 ajaxSystem3 ajax
System3 ajax
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
 
System2 ajax
System2 ajaxSystem2 ajax
System2 ajax
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 

Recently uploaded

ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドKen Fukui
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 

Recently uploaded (10)

ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

運用構築技術者の為のPSプログラミング第1回

  • 1. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 PowerShellの概要と基本操作、プロ グラミング基礎(その1) Time: 2015.2.6 09:30-16:00 Room: Tokyo Office 山岡 茂治 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング 1. PowerShell(PS)の概要 2. 利用する為の前提条件 3. PSの環境とバージョン 4. PowerShellの起動 5. PowerShellの実行① 6. PowerShellの実行② 7. コマンドレットについて 8. コマンドレットの例 9. スクリプトの記述方法 10. 変数とデータ型1 11. 変数とデータ型2 12. Write-HostとRead-Host 13. 変数と値の表現、算術演算子 14. 文字の連結、変数の演算 15. ISEを利用したデバッグ 16. 条件分岐 if 17. 条件の指定と条件演算子 18. 条件分岐の例 19. 条件分岐の練習 20. 繰り返し処理 for 21. 繰り返し処理の例 22. 繰り返し処理の練習 23. 繰り返し処理 foreach 24. テキストファイルへの出力
  • 2. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■PowerShellの特徴 ・コマンドプロンプト(cmd.exe)、WSHに変わる技術(シェル) ・システムの管理や運用を容易にするためのスクリプト環境 ・. NET Frameworkの技術がベースとなっている ⇒ プログラミング(C#等)と同じような複雑な処理が可能 <.NET Framework 2.0の構成> 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 1. PowerShellの概要 .NETアプリケーション Windows アプリケーション ASP.NET Web アプリケーション コンソール アプリケーション .NET開発 VB.NET、C#、 PowerShell .NET Framework クラスライブラリ 開発や利用を容易にするための機能 共通言語ラインタイム(CLR) OS(Windowsなど) ● 共通言語ランタイムが(CLR).NETで 作成されたアプリケーションやシステムを 実行する。 ● JAVAの仕組みも似たようなもの CLR と JavaVMは同じ役割。 ● C#などは、.NET Frameworkのクラス ライブラリを利用し、システムを開発するが PowerShellも同様にクラスライブラリを利用可 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 3. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■利用する為の前提条件 ・Windows Serverや各種アプリケーションサーバーの知識 ⇒ Active Directory、Exchange、SharePoint等の概念、操作 ・PowerShellを使うための最低限の知識 ⇒ コマンドレットの使い方、基本的な文法 ※各種機能については覚えるのは難しいが、ドキュメントやネット等で 効率よく調べる方法を身に着けることが重要(GoogleやTechNet) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 2. 利用する為の前提条件 Googleで検索 「PowerShell XXXX」 TechNetではリファレンスが 参照できる TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 4. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■必要な環境 ・Windows 7やWindows2008 R2では標準で組み込まれている (それ以前の環境では別途インストールが必要) ・テキストエディタ(メモ帳)、付属のPowerShell ISEで作成・ 編集が可能 ■PowerShellのバージョン ・現在 PowerShell 5.0(2.0ベース、3.0ベースが主流) ・1.0=Win2008、Vista … 初期バージョン ・2.0=2008R2、Win7 … モジュール拡張、リモート実行、ISE ・3.0=2012、Win8 … WF機能、管理ツールのコマンドレット化 ・4.0=2012R2、Win8.1 … Windows版 Chef(シェフ) 機能 ・5.0=最新バージョン … OneGet(パッケージ管理システム apt-get) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 3. PowerShellの環境とバージョン TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 5. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■PowerShellの起動 ・コマンドプロンプトと似たようなCUI ・ISEでの起動 ⇒ エディタ機能が付与 ・PowerShellは対話式で1行ずつ実行する方法と、.ps1という ファイル(テキスト形式)で実行する方法がある ※Win7やWin8等で .ps1ファイルを実行するには 「Set-ExecutionPolicy RemoteSigned」の実行が必要になる場合があります。 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 4. PowerShellの起動 PowerShellの起動 PowerShell ISE の起動 ● ISEはエディタ機能の他に、 処理を1行ごと実行(ステップ実行) するデバッグ機能を備える ●F9でブレークポイントをセットし、 F5を押し実行し、止まったところから F10を押しながら1行ずつ動作を 確認することが可能(便利です) ●ISEのアドオンを組み込み、更に エディタ機能を拡張できます 「PowerShell ISE Add-Ons」で検索 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 6. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■コンソールでの入力と実行 ・処理(コマンドレット、ステートメント)を直接入力、ENTER ・ウインドウを閉じない限り、処理結果や変数の内容は記憶される ~実行例~ PS C:Usersxxxx> $YourName = Read-Host(“お名前は=“) ↲ お名前は=: (ここで名前を入力)↲ PS C:Usersxxxx> Write-Host(“おはようございます、” + $YourName + “さん!”) ↲ おはようございます、(入力した名前)さん! ※日本語以外は半角で入力します。間違えた場合は赤字で表示されます。 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 5. PowerShellの実行① TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 7. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■テキストエディタまたはPowerShell ISEの利用 ・テキストエディタまたはISEにて、処理を記述し保存。 ~入力例~ $YourName = Read-Host(“お名前は=“) ↲ Write-Host(“おはようございます、” + $YourName + “さん!”) ↲ ※日本語以外は半角で入力します。間違えた場合は赤字で表示されます。 ・実行ボタン を押して実行 ⇒ 連続して実行される。 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 6. PowerShellの実行② TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 8. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■コマンドレットとは ・単一機能のコマンド群(目的に応じて用意されている) ・命名規則や使い方が統一され、パイプラインで連携できる ⇒ 取得=Get-機能XXX、更新=Add-機能XXX、Update-、Delete- ・標準で3,000以上あるため、覚えることは難しい(調べて使う) <文法> コマンド名 コマンド名 パラメータ値 コマンド名 –オプション名 オプションの値 コマンド名 –オプション名 オプションの値 パラメータ値 コマンド名 パラメータ値、オプション | 結果を受け取り実行するコマンド名… ※使い方が分からない場合は 「Get-Help コマンド名 –Online」 ⇒ TechNetの該当のコマンドをブラウザで表示してくれる(便利です) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 7. コマンドレットについて TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 9. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■コマンドレットの例 通常GUIでの表示(プロパティや管理ツール)で取得する情報を PSのコマンドレットで実行すると次のようになります。 ・プロセス一覧からPowershell(コンソール)の情報を抽出 PS> Get-Process –Name PowerShell ・起動中のサービスの一覧を表示 PS> Get-Service | where Status -eq Running ・ローカルユーザーアカウントの一覧を表示 PS> Get-CimInstance -ClassName Win32_UserAccount ・BIOSの情報を表示 PS> Get-WmiObject -Class Win32_BIOS ・論理ドライブの情報を表示 PS> Get-WmiObject -Class Win32_LogicalDisk ・直近100件のイベントログ(システム)を表示 PS> Get-EventLog System -Newest 100 ・現在のフォルダのアクセス権を表示 PS> Get-Acl | fl 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 8. コマンドレットの例 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 10. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■基本的な文法(ステートメント) ・記述した内容は上から下に向かって処理される ・基本的な記述方法は以下の2種類 「変数 = コマンドレットの指定、計算などの処理」 ⇒ 処理結果を変数に格納する 「コマンドレットの指定、計算などの処理」 ⇒ 処理結果を画面に出力、結果を格納しない場合 ※処理結果を返したくない場合は[void]を付ける ~記述例~ $Now = Get-Date #現在の日時を取得(#はコメント) $Total = 1 + 2 * 3 – 4 / 5 #計算処理 Write-Host(“現在は” + $Now + “です。”) ↲ 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 9. スクリプトの記述方法 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 11. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■変数 ・データを格納する「箱」 数学の方程式 x=1 と同じ、上書きされる ・PowerShellでは $名前 と指定する ・変数の中には、文字列、数値、日時、オブジェクト(機能の 集まり)などが格納される(これらをデータ型という) ~変数の動き~ ~変数のデータ型~ SID: xxxxxx DisplayName: 山田太郎 Email: xxxx@xxxxx 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 10. 変数とデータ型1 $Count $Count = 1 1 $Count $Count = 3 31 後の処理で上書きされる $Count = $Count + 4 3 3 + 4 $Count 上書きの前に、変数の値を 足しこんで格納(=7) $Count 1.23 数値型(整数・小数) $Text “あいう” 文字列型 $Now “2014/4/1 12:34:56” 日時型 $CsvData CSVファイルの内容 “1”, “山田太郎”, … “2”, “佐藤花子”, … “3”, “鈴木雅治”, … $AdUser ADユーザー情報(包括) TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 12. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■オブジェクト変数 ・変数は格納されたデータ型によって、拡張機能を持っている 拡張機能 … プロパティ(属性)、メソッド(命令) ・拡張機能にアクセスするには、「$変数.XXX」と記述する ~プロパティのアクセス例~ $Now = Get-Date #現在の日付を取得 #年(数値)と 100 ナノ秒 (1 秒の 1000 万分の 1) を表示 Write-Host $Now.Year $Now.Ticks #日時を整形して表示 Write-Host $Now.ToString(“MM月dd日(ddd)HH時mm分”) $Cred = Get-Credential #認証ダイアログを表示 $Cred.UserName #入力したユーザー名 $Cred.Password #パスワードは見えない 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 11. 変数とデータ型2 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 13. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■Write-Host(出力内容) ・指定した出力内容を画面に出力する ・変数を直接指定した場合もWrite-Hostと同じく画面に出力(詳細) ~例~ Write-Host(Get-Date) Write-Host $Now $YourName $Total “あいう” 123 ■変数 = Read-Host(“入力を促すプロンプト”) ・画面に入力された文字列を受け取り、変数等に格納する ~例~ $Count = Read-Host(“繰り返し回数=”) $Count = [int]$Count #変数に変換 for ($i=1; $i –lt $Count; $Count++) { Write-Host($i) } #回数分表示 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 12. Write-HostとRead-Host TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 14. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■変数と値 ・データを格納する「箱」 、PowerShellでは $名前 と指定 ・値の表現 文字列 ⇒ “123.45” 数値 ⇒ 123.45 日付 ⇒ [DateTime]“2014/4/1” ・データ型を調べる場合 ⇒ 変数.GetType() 例)データ型を確認 $a = “2014/4/1” $b = [DateTime]”2014/4/1” #文字列を日時型に変換 $a.GetType() $b.GetType() ■算術演算子 基本的にExcel等の表計算で利用するものと同じ( + - * /) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 13. 変数と値の表現、算術演算子 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 15. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■文字列の連結 ・文字列を連結する場合は「+」を利用 ・“1” + “1” は 2 ではなく “11”、1 + 1 は 2(データ型の違い) ・特殊文字 … タブ 「`t」改行「`n」(日本語キーボードのShift+@) ■変数の演算 ・数値の余りを求める $result = 123 % 10 ⇒ $result に 3 ・加算処理 $count = $count + 1 と $count++ が同じ(++は省略形) ・現在の日時の取得 $date = Get-Date または $date = [DateTime]::Now ・日付の加算/減算 $date = $date.AddDays(30) / $date.AddDays(-1) ・日付の差 $timespan = New-TimeSpan $変数1 $変数2 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 14. 文字列の連結、変数の演算 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 16. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■PowerShell ISE(Integrated Scripting Environmentnt)のデバッグ ・先頭にブレークポイントを挿入(.ps1を保存後、F9キー) ・実行(F5キー)すると1行目で停止する ・F10を押しながら1行ずつ実行 ・マウスをポイントすると変数の値などを確認できる 例)計算処理の途中で止めた状態 $a = 3 $b = 4 $c = $a + $b Write-Host("`$aと`$bの合計は" + $c + "です。") 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 15. ISEを利用したデバッグ TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 17. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■「if」プログラムの処理を分岐させる ・if (条件…) { 条件を満たした場合(true)の処理 } else { それ以外の処理(false: 条件を満たさない) } 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 16. 条件分岐 if 処理 条件 処理 処理 処理 条件を満たす場合 (true) 条件を 満たさない場合 (false) ● 複数の条件がある場合は elseif を利用する。 if ( 条件1… ) { 条件1を満たした場合(true)の処理 } elseif ( 条件2… ) { 条件2を満たした場合(true)の処理 } elseif ( 条件3… ) { 条件3を満たした場合(true)の処理 } else { いずれの条件にも満たない場合の処理 } TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 18. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■ 条件の指定方法 ・右辺と左辺が一致する(true)かどうかを記述 例)変数$ansの値が“Yes”だった場合 ⇒ if ( $ans –eq “Yes”) 例)変数$numの値が 100 未満の場合 ⇒ if ( $num –ge 100) 例)変数$dateの月が 4月~12月の場合 ⇒ if ( $date.Year –ge 4) ■ 条件の演算子 ・以下の演算子を利用して表現する(他にも –match などがあります) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 17. 条件の指定と条件演算子 演算子 意味 -eq 等しい= -ne 等しくない<> -like 含める(文字列) -not like 含めない(文字列) 演算子 意味 -gt 大きい > -ge 以上 >= -lt 小さい < -le 以下 <= TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 19. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ~記述例~ $Point = Read-Host(“点数を入力してください。”) if ($Point –eq 100) { Write-Host(“満点!合格!”) ↲ } elseif ($Point –ge 60) { Write-Host(“合格!”) ↲ } else { Write-Host(“不合格!”) ↲ } 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 18. 条件分岐の例 ●ifの部分はネスト(入れ子)も可 if ($Point –eq 100) { Write-Host(“満点!合格!”) ↲ } else { if ($Point –ge 60) { Write-Host(“合格!”) ↲ } else { Write-Host(“不合格!”) ↲ } } TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 20. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 問題: コンソールから ”User” または “Group” を入力し、Userが入力された場合 はユーザーの一覧を、Groupが入力されたらグループの一覧を表示し、それ以外 はエラーを表示するプログラムを作成してください(practice_if.ps1) ※ユーザー一覧 ps> Get-CimInstance -ClassName Win32_UserAccount ※グループ一覧 ps> Get-CimInstance -ClassName Win32_Group <フローチャートで表した場合> 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 19. 条件分岐の練習 コンソールから文字列を受け取る 「User/Groupを入力してください」 条件 ユーザー一覧 表示 条件 値がUserの場合 $x –eq “User” それ以外 値がGroupの場合 $x –eq “Group” それ以外 グループ一覧 表示 “エラー”を 表示 コンソールから文字列を受け取る 「User/Groupを入力してください」 条件 ユーザー一覧表示 条件 値がUserの場合 値がGroupの場合 それ以外 グループ一覧表示 “エラー”を表示 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 21. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■「for」同じ処理を繰り返し実行する ・for ($i = 開始値; $i -le 終了値; $i++) { 開始値から終了の値まで処理を実行 } ←終端まで来ると $i の値が自動的に+1され、終了値を超えると処理を抜ける 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 20.繰り返し処理 for 処理 処理x 繰り返しの条件 の間「処理x」を 何度も実行する 繰り返し開始 繰り返し終了 処理x 処理 処理 処理x 繰り返しを2つ使って 処理することも多い (外側の繰り返し1は $i を、内側の繰り返し 2は $j を利用する) 繰返1開始 繰返1終了 処理y 処理 繰返2開始 繰返2終了 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 22. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ~記述例~ 1から10までの和を表示する処理 $sum = 0 $sum = $sum + 1 $sum = $sum + 2 $sum = $sum + 3 … $sum = $sum + 10 Write-Host($sum) 繰り返しを使って記述した場合 $sum = 0 for ($i = 1; $i -le 10; $i++) { $sum = $sum + $i } Write-Host($sum) 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 21.繰り返し処理の例 二重に繰り返しをおこなった場合 for ($i = 1; $i -le 10; $i++) { for ($j = 1; $j -le 10; $j++) { Write-Host(“” + $i + “,” + $j) } } 実行結果 左側が $i の値、右側が $j の値 1行ずつ$jの値が加算されていき、 10になった時点で、$iが加算される TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 23. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 問題: 繰り返しを1回から100回までおこない、1回ごとに★を表示するプログラ ムを作成してください。(practice_for.ps1) 設問① 1行に1つ★を出力する 設問② 改行をせず、横に出力する 例)★ ★ ★ ★ ★ ★ ★… 設問③ 横に出力し、10個出力したら改行する ※Write-Hostで改行しないように出力するには、オプションに「-noNewLine」を付けます Write-Host(“xxx”) –noNewLine 、改行=空を出力 Write-Host(“”) <フローチャートで表した場合> 設問① 設問② 設問③ 回答1 回答2 第1回 PowerShellのプログラミング 22. 繰り返しの練習 条件 ★を出力 (改行あり) 繰り返し開始 $i<=100の間 繰り返し終了 ★を出力 (改行なし) 繰り返し開始 $i<=100の間 繰り返し終了 繰り返し開始 繰り返し終了 10個出力の条件 =10で割った余り (%)が0 ★を出力 空””を出力 繰返1開始 繰返1終了 繰返2開始 繰返2終了 ★を出力 空“”を出力 10回の 繰り返し 10回の 繰り返し TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 24. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■「foreach」対象物が「ある」だけ繰り返す=よく使います ・foreach ($取り出した値の変数 in $対象物) { 対象物があるだけ繰り返す(ない場合は処理しない) } ~利用の例~ ・配列(変数の値を並べたもの)があるだけ繰り返す。 $fruitsData = “いちご”, “みかん”, “すいか”, “バナナ” foreach ($fruitsItem in $fruitsData) { Write-Host($fruitsItem + “が好きです”) } ・起動中のサービスの一覧を取得し、名前に a があるものを出力する $services = Get-Service | where Status -eq Running foreach ($service in $services) { if ($service.Name -like “*a*”) { Write-Host($service.Name + “は`”a`”を含んでいます”) } } 第1回 PowerShellのプログラミング 23.繰り返し処理 foreach TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 25. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■処理・変数 | Out-File “出力するファイル名” - append ・指定したファイルにテキストを出力する ・「-append」 を指定すると追記 ・「-encoding 文字コード」で文字コード指定が可能 ※PowerShellは「UTF16LE」が標準なので注意(UTF8ではない) ~例~ Get-Process | Out-File “process一覧.txt” Start-Process “process一覧.txt” #テキストを既定のエディタで開く $total = 0 for($i=1; $i –le 10000; $i++) { $total_old = $total.ToString(“#,###”); $total = $total + $i Write-Output(“” + $total_old + “+” + $i + ”=“ + $total) | Out-File “star.txt” –append } Start-Process “star.txt” #1から100までの合計を計算式と共に出力 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) 24. テキストファイルへの出力 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 26. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題01: 名前の表示 画面に「名前を入力:」と表示し、入力した名前を 組み合わせ「こんにちは、●●さん」と表示し、次の行に 現在は yyyy/MM/dd HH:mm:ssです」と表示してください。 <実行例> 名前を入力: 山田太郎 こんにちは、山田太郎さん 現在は 2015/4/2 08:30:00 です 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 27. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題02: 四則演算 画面に「Xの値:」と「Yの値:」を表示し、入力した XとYの値の加算・減算・乗算・除算の結果を表示してください。 <実行例> Xの値: 3 Yの値: 4 X + Y = 7 X - Y = -1 X * Y = 12 X / Y = 0.75 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 28. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題03: 合計と平均 値を5回入力し、合計・平均を表示してください。 <実行例> 値1: 400 値2: 700 値3: 100 値4: 800 値5: 300 合計 = 2,300 平均 = 460.00 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 29. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題04: 合格判定 画面に「点数:」を表示し、入力した点数によって 以下の値を表示させてください。 点数 表示 ----------------------------------- 100点 合 格 ★★★★★ 80点以上 合 格 ★★★★☆ 60点以上 合 格 ★★★☆☆ 30点以上 不合格 ★★☆☆☆ 30点未満 不合格 ★☆☆☆☆ 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 30. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題05: 1から100までの合計 実行すると1から100までの合計を表示してください。 <実行例> 1から100までの合計 5,050 ■問題06: 1からnまでの合計 1から指定された値までの合計を表示してください。 <実行例> nの値: 10 1から10までの合計 55 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 31. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題07: aからbまでの合計 aからbまでの合計を表示してください。 <実行例> aの値: 5 bの値: 60 5から60までの合計 1,820 ■問題08: aからbまでの偶数の表示 aからbまでの値で偶数の値のみを1行ずつ表示してください <実行例> aの値: 5 bの値: 60 ⇒ 6, 8 , 10, 12 … が各行に表示される 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 32. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題09: 合計と途中経過の表示 1から100までの合計と途中経過を表示してください。 <実行例> 0 + 1 = 1 1 + 2 = 3 3 + 3 = 6 … 合計 = 5,050 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 33. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題10:星(★)の表示1 繰り返しを1回から100回までおこない、 1回ごとに★を表示するプログラムを作成してください。 ★は1行に1つずつ表示させます。 <実行例> ★ ★ ★ ★ … 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング
  • 34. Techno Walker Inc. All rights reserved. 文書・画像等の無断使用・転載を禁止します。 ■問題11:星(★)の表示2 繰り返しを1回から100回までおこない、 1回ごとに★を表示するプログラムを作成してください。 ★は各行に10個ずつ表示し改行してください。 <実行例> ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ … 第1回 PowerShellの概要と基本操作、プログラミング基礎(その1) X. 演習問題 TW社内セミナー システム運用・構築技術者のためのPowerShellプログラミング