SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
1
IT Pro のためのスクリプト講座
Windows PowerShell を使おう!
日本マイクロソフト株式会社
エバンジェリスト
安納 順一 Junichi Anno
http://blogs.technet.com/junichia/
Facebook: junichi anno
~ 基礎からサーバー管理の自動化まで
V2.0
2012.5.12 Fukuoka 版
2
Agenda
• PowerShell の文化的背景
• HOW TO USE “Windows PowerShell”
• PowerShell 3.0 の新機能
3
PowerShell の文化的背景
4
Operator
アプリが重過ぎ!常識で考えろ!
Developer
開発者 vs インフラ担当者
新しい機能の開発
既存機能との統合や
改善
サービスの展開と
継続的で安定した
サービスの提供
Development Integration Deployment Delivery
your
machine!
your
code!
情報が欲しかったら
監視方法を詳しく教えろ!
バグがあるから直してくれ!
マシンスペックとか知らねーし
監視もできねーのかよww
直してほしかったら
詳しい情報をよこせ!
5
DevOps(=Development and Operations)
開発サイドと運用サイドの協調により、
Development ~ Delivery 全体のアジリティを高めるためのプロセス
Developer Operator
DevOps
(参考)
・Velocity 2009 : “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” by John Allspaw
・DevOps って何? by 宮下 さん http://www.slideshare.net/mizzy/devops-4156440
協調文化を確立し
”IT”によりビジネスを進化させる
ビジネスに合わせた
アプリケーションの
進化
ビジネスに合わせた
インフラの進化
6
マイクロソフトの DevOps シナリオ
開発担当 運用担当
• Visual Studio 2011
• IntelliTrace Agent
• System Center 2012
• ConfigMgr 構成パック
• OpsMgr 管理パック
• OpsMgr AVICode
• Orchestrator(Opalis)
• SM インシデント管理
• VMM Portal など
• Windows PowerShell
• SQL Server bacpac
・
・
7
DevOps における PowerShell の位置づけ
• 目的ベースのコマンドレット(CmdLet)
• アプリケーションに対する処理の正確性
• ビジネスにとっての高速性
• 自動化
• オペレーション品質
• ビジネスに合わせた拡張性
Exchange Server
メールボックス作成
GALの一覧取得
API
New-Mailbox
目的 コマンドレット
Get-GlobalAddressList
8
業務アプリケーション
Dev にとっての PowerShell ①
サービス
開発担当
運用担当PowerShell
標準コマンドレット
開発
利用
アドバイス
利用
Windows Server OS
Active Directory
SharePoint Server
Exchange Server
・
・
9
PowerShell スクリプト
Dev にとっての PowerShell ②
サービス
開発担当
運用担当サービス専用
コマンドレット開発
作成
処理の自動化
製品のメンテナンス
障害の調査
実
行
フィードバック
利用
10
マイクロソフト製品と PowerShell の関係
• 製品ごとに専用の”コマンドレット”が用意されている
• 多くの管理 GUI は裏でコマンドレットを呼んでいる
• インフラ担当者に、各製品への”標準化されたアクセス方法”を提供する
Active Directory
Active Directory
PowerShell コマンドレット
Active Directory
管理センター
Hyper-V
VMM
PowerShell コマンドレット
System Center
Virtual Machine Manager
PowerShell
コンソール
11
Windows Management Framework
PowerShell が Management Hub となる
IT Pro
IT
Developer
Solution
Developer
Storage Exchange DevicesDisk YOUR ELEMENTS
Windows PowerShell
CIMOM、SMI-S
標準化されたアクセス
標準化されたプロトコル
標準化されたモデル
WS-Man(Web Service for Management) 他のプラッ
トフォーム
Service
Provider
開
発
NanoWBEM
Pegasus
12
代表的なスクリプト言語
バッチファイル(拡張子 .bat)
VBScript(拡張子 .vbs)
PowerShell(拡張子 .ps1)
Jscript(拡張子 .js)
MS-DOS時代から使われてきたコマンドシェル上のスクリプト。脈々と現代に引き継がれて
おり、利用者が多い。豊富なコマンド群によって支えられており、案外使い出がある。複数
のスクリプトを取りまとめる役割としても便利。
Visual Basic のスクリプト版。「Visual」とあるが、Visual ではない。わかりやすい文法と、
緩い規則によって根強いファンが多い。亜種として VBA もあるが微妙に文法は異なる。
JavaScript のMS 実装版として、VBScript とともに登場。JavaScript を Microsoft の独自
仕様によって拡張することで、汎用性を増している。
いわずと知れた高機能スクリプト言語。.NET Framework が使えると言うメ
リットから、利用者は爆発的に増殖中。多くの製品がPowerShell用のコマンド
レットを提供しはじめており、Windows Script Host の存在を脅かしつつある。
Windows
Script
今後エンハンスの予定は無い
OSに合わせて継続的なエンハンス
今後エンハンスの予定は無い
(余談)HTML5 によって新 JavaScript エンジンに
脚光が!ただしWindows Scriptとは別物
13
Windows
.NET Framework
PowerShell スクリプト
exe
bat VBScript JScript
Script Engine
CLR(共通言語ランタイム)
Class Library
スクリプトの実行環境
PowerShell エンジン
COM
cmd/
command
Windows Script Host
Cscript.exe Wscript.exe
C
O
M
14
コマンドシェルの進化と機能の包含
cmd.exe
command.com
高機能
NT
低機能
DOS/
Win31 2000
XP/2003
Vista/2008
Windows Script Host
PowerShell 上では
bat/vbs/js も実行可能
Win9x/
Me
Win7/
2008R2
Windows PowerShell
8
100
200
2300
コマンドレットの数
15
VBScript vs PowerShell
Exchange 2003 (VBScript) Exchange 2007(PowerShell)
メール
ボックス
統計
Set listExchange_Mailboxs =
GetObject("winmgmts:{impersonationLevel=impersonate}!COMPUTERNAMEROOTMicrosoftExchangeV2").InstancesOf("Excha
nge_Mailbox")
For Each objExchange_Mailbox in listExchange_Mailboxs
WScript.echo "AssocContentCount =” + objExchange_Mailbox.AssocContentCount
WScript.echo " DateDiscoveredAbsentInDS =” + objExchange_Mailbox.DateDiscoveredAbsentInDS
WScript.echo " DeletedMessageSizeExtended =" + objExchange_Mailbox.DeletedMessageSizeExtended
WScript.echo " LastLoggedOnUserAccount =" + objExchange_Mailbox.LastLoggedOnUserAccount
WScript.echo " LastLogoffTime =" + objExchange_Mailbox.LastLogoffTime
WScript.echo " LastLogonTime =" + objExchange_Mailbox.LastLogonTime
WScript.echo " LegacyDN =" + objExchange_Mailbox.LegacyDN
WScript.echo " MailboxDisplayName =” + objExchange_Mailbox. MailboxDisplayName
WScript.echo " MailboxGUID =" + objExchange_Mailbox.MailboxGUID
WScript.echo " ServerName =" + objExchange_Mailbox.ServerName
WScript.echo " Size =" + objExchange_Mailbox.Size
WScript.echo " StorageGroupName =" + objExchange_Mailbox.StorageGroupName
WScript.echo " StorageLimitInfo =" + objExchange_Mailbox.StorageLimitInfo
WScript.echo " StoreName =" + objExchange_Mailbox.StoreName
WScript.echo " TotalItems =" + objExchange_Mailbox.TotalItems
Next
get-mailboxstatistics
–server $servername
データ
ベース
管理
Dim StorGroup as New CDOEXM.StorageGroup
StorGroup.DataSource.Open "LDAP://" + DCServer + "/ CN=First Storage Group,CN=InformationStore,CN=" +
Server + ",CN=Servers,CN=First Administrative Group, CN=Administrative Groups,CN=First Organization,
CN=Microsoft Exchange,CN=Services, CN=Configuration," + DomainName
StorGroup.MoveLogFiles("C:newlogPath", 0)
move-storagegrouppath
-identity "First Storage
Group"
–log "C:newlogPath"
受信者
管理
Dim objMailbox As CDOEXM.IMailboxStore
Set objMailbox = GetObject("LDAP://" + DCServer + "CN=FOO,CN=users," + DomainName)
objMailbox.CreateMailbox "LDAP://" + DCServer + "/CN=Private MDB,CN=First Storage
Group,CN=InformationStore,CN=" + Server + ",CN=Servers,CN=First Administrative Group, CN=Administrative
Groups,CN=First Organization, CN=Microsoft Exchange,CN=Services, CN=Configuration," + DomainName
enable-mailbox
-identity domainFOO
–database "First Storage
GroupPrivate MDB"
16
Windows PowerShell の基礎知識
<超参考になるサイト>
MVP 牟田口さん
http://blogs.wankuma.com/mutaguchi/archive/2010/02/13/186034.aspx
17
事前準備
• コマンドシェルの環境設定
• 簡易編集を有効に
• フォントを見やすく
• 横幅の設定
• バッファの設定
• エクスプローラーの環境設定
• 「拡張子を表示しない」を無効に
• オンプレミスの”署名無しスクリプト”を実行できるようにする
• Set-ExecutionPolicy RemoteSigned
• 必要に応じて自分専用の初期設定ファイルを作成
• notepad $profile
cmd.exe と powershell.exeは独立している
必要なモジュールを読み込む..など
要は自分で作ったスクリプトのこと
18
実行ポリシーの設定~ Set-ExecutionPolicy
• “管理者として実行” する必要がある
• 実行ポリシー
– Restricted:制限つき (オペレーターモード)(規定値)
• 対話形式のみ
• スクリプトは実行できない
– AllSigned:署名
• スクリプトは、信頼された発行元による署名が必要
– RemoteSigned:リモートの署名
• “インターネットゾーン” のスクリプトは信頼された発行元による署名が必要
– Unrestricted:無制限
• すべてのスクリプトを実行可能
• リモートのスクリプトについては常に警告
– Bypass:バイパス
• 何もブロックされず警告も表示されない
http://technet.microsoft.com/ja-jp/library/dd347628.aspx
“ポリシーの設定”は、規定で
はコンピューター全体に影響
する。適用範囲を制限するに
は、Scope も同時に定義する。
19
スクリプトの作成環境
バッチファイル
VBScript
PowerShell
エディタ デバッガ
フリー/シェアウェア/
商用のエディタ
フリー/シェアウェア/
商用のエディタ
メモ帳
PowerShell ISE
なし??
エディタ組み込み
エディタ組み込み
VbsEdit
メモ帳&目視
2.0からは標準装備
20
スクリプトの作り方と実行方法
1. エディタを開く
※スクリプトはテキストファイル
2. スクリプトを書いて「名前をつけて保存」
拡張子は .ps1
3. PowerShell コンソールを開いてファイル名を入力
または PowerShell ISE で開いて“実行”
または エクスプローラからダブルクリック
PS C:> .sample.ps1
21
覚えておくと便利な機能
メモ帳 編
指定した行番号に飛ぶ Ctrl + G
ステータスバーを表示すると行と列が参照できる
※いずれも「右端で折り返し」を無効にしておくこと
PowerShell コンソール、ISE 編
タブでコマンドレットやパラメタの続きを補完
(例)get-mem[Tab]
↓
Get-Member
※PowerShell 3.0 では Intellisence が実装されている
22
“使用法” を理解するために
“使用法”を得る方法をおさえておこう
• 呼び出し可能なコマンドレット一覧取得
• Get-Command
※インストールされているモジュールによってコマンドレットは増減する
• コマンドレットの詳細な書式と利用例を表示
• Get-Help <コマンドレット> -detailed
• 使用可能なオブジェクトストア(ドライブ)の取得
• Get-PSDrive
※インストールされているモジュールによってドライブは増減する
23
(つづき)
• インストールされているモジュールを表示する
• Get-Module
※”ActiveDirectory” や “GroupPolicy”、”Hyper-V” など、必要なモジュールが読み込
まれていないとコマンドレットを使用することはできない
• コマンドレットのメソッドとプロパティ等を表示
• <コマンドレット> | get-member
• <コマンドレット> | get-member | sort-object Name | format-list
※ COMのメンバーも取得できる
New-Object -com scripting.filesystemobject | Get-Member
• コマンドレットのエイリアス
• Get-Alias
• Get-Alias <エイリアス> (例)Get-Alias dir
24
ドライブ
ファイルシステムだけではなく、さまざまなオブジェクトがドライブとしてアク
セス可能(つまり CD コマンドで移動可能)
モジュールが読み込まれていないと使えないものもある
(例)ActiveDirectory
 ファイルシステム
 エイリアス(Alias:)
 レジストリ(HKLM:、HKCU:)
 証明書(Cert:)
 環境変数(Env:)
 変数(Variable:)
 WSMAN設定(Wsman:)
 Active Directory(AD:)
追記
PS C:> Get-PSDrive
25
操作
メソッド
メソッド
プロパティ
プロパティ
オブジェクト
PowerShell の戻り値は「オブジェクト」である
“オブジェクトとはプロパティとメソッド(操作)の集まり"
色
サイズ
型
ブランド
パーツ
ペダルをこぐ
ハンドルを右に切る
ハンドルを左に切る
フロント ブレーキをかける
リア ブレーキをかける
もしも”オブジェクト”が自転車だったら...
26
メソッドプロパティ
オブジェクト
DisplayName
Status
DependentServices
Stop()
Start()
Pause()
もしも”オブジェクト”が「Windows のサービス」だったら。。。
MachineName
PS C:> Get-Service | Get-Member
Windows
サービス
オブジェクトのメソッドとプロパティ一覧を参照するには
27
オブジェクトであるということは...
PS C:>$a = “abc”
#普通ならば $a は”文字列” になるけれど...
#オブジェクトだからメソッドとプロパティが用意されている
PS C:>$a.ToUpper()
PS C:>ABC
PS C:>$a.ToUpper().Split("B")[0]
PS C:>A
28
PS C:>get-service | where-object {$_.Status -eq "Running"}
PowerShell の典型的な使い方①
(例)起動中のサービス一覧
パイプ
サービス一覧
を出力
object
サービス一覧
オ
ブ
ジ
ェ
ク
ト
の
ま
ま
渡
さ
れ
る
object
サービス一覧
29
(参考)3.0 では書式を簡略化できます
PS C:>get-service | where-object {$_.Status -eq "Running"}
PS C:>get-service | where-object Status -eq "Running"
V3 ではこう書ける
30
PowerShell の典型的な使い方②
(例)サービスを停止する
PS C:>(Get-Service -Name WSearch).Stop()
メソッド
Windows Search サービスの
インスタンスを取得
object
Windows Search
インスタンスに対して
メソッドを実行
31
コマンドからの出力もオブジェクト化される
PS C:> (ipconfig)[18].Split(":")[1].Trim()
object
ipconfig の
出力結果
の18行目
(0から数えて)
IPv4 アドレス . . . . . . . . . . : 192.168.1.100
ipconfig の出力結果からIPアドレスを取りだす
コロンで分割した
(0から数えて)
2つ目の値 前後の空白を
トリミング
32
スクリプトを作成するにあたって
おさえておきたい基本機能
• コメント
• 行継続
• 引数を受け取る
• 変数を使う
• True と False
• 入出力(コンソール/ファイ
ル)
• 繰り返し(ループ)処理
• 出力結果のフォーマット変換
• 環境変数を取得
• 日時取得
• 結果を検索
• リモーティング
• バックグラウンドジョブ
• unix 系コマンド
33
コメントを付ける
# 処理開始
copy-item C:tmp*.txt -destination C:tmp2
# 処理終了
34
行継続
アクサン グラーブ記号 (`) を使用する
copy-item C:tmp*.txt `
-destination C:
こ
い
つ
35
引数を受け取る
Write-Output $args[3]
foreach ( $a in $args )
{
Write-Output $a
}
C:> .hogehoge.ps1 My name is “Junichi Anno” .
5つの引数
My
name
is
Junichi Anno
.
Junichi Anno
36
名前付き引数
param([string] $UserID = “ID", [string] $Password =“PASS")
Write-Output $userid
Write-Output $Password
引数を所定の名前の変数に格納することで、文法チェック等が行いやすくなる
C:> hogehoge.ps1 -userid anno
anno
PASS
出力結果
規定値
37
変数
$FirstName = "Junichi"
$LastName = "Anno"
$FullName = $FirstName + " " + $LastName
Write-Output $FullName
$arrFullName = $FullName.Split(" ")
Write-Output $arrFullname[0]
PS C:> C:hogehoge.ps1
Junichi Anno
Junichi
出力結果
38
True と False の指定
$True と $False が予約されている
C:> $MyNameIsJunichi = $True
C:> If ($MyNameIsJunichi -eq $True) {Echo 1}
1
39
入出力方法
#標準出力
Write-Output “Hello”
#標準入力
$InputData = Read-Host
#ファイルに出力
$Record = “hogehoge”
Out-File -filepath C:tmplist.txt -inputobject $Record
#ファイルから入力
$file = Get-Content -Path c:tmplist.txt
これを抑えておけば、ひとまずたいていのことはできます
40
出力結果のフォーマット変換して表示したい
dir | format-table Name,Length
dir | format-list Name,Length
dir | format-wide Name -column 6
dir | out-gridview
41
特定のプロパティだけをオブジェクトとして取得したい
dir | Select-Object Name,Length
戻り値の「見た目」は同じだが、オブジェクトタイプが異なることに注意!
PS C:> dir |ft Name,Lenght |Get-Member
PS C:> dir |Select-Object Name, Length |Get-Member
以下の出力結果を比較しましょう 後からNameやLengthを
再利用できない
42
条件を指定して検索した結果だけを
オブジェクトとして取得したい
#サイズが1024バイト以上のファイルを検索する
Dir | Where-Object {$_.length -GT 1024} `
|Select-Object Name,length
#Active Directory のユーザー名に”a”を含むユーザーを取得
する
Get-ADUser -Filter * `
|Where-Object {$_.name -Like "*a*"} `
| ForEach-Object name
43
繰り返し処理
#ForEach-Object
Get-ADUser -Filter * | ForEach-Object {$_.name}
Get-ADUser -Filter * | ForEach-Object name
#foreach
$Users = Get-ADUser -Filter *
foreach ($user in $Users) { $user.name }
Active Directory ユーザー一覧から name プロパティをリストする
V3
44
繰り返し処理
#1から10までを出力
1..10
#1から10 をリダイレクトして出力
1..10 | % {echo $_ }
#User1 から User10 を作成
1..10 | % {New-ADUser “User$_” }
※ % は foreach のエイリアス
45
繰り返し処理
$i = 0
do
{
Write-Host $i
$i++
}
while ($i -lt 10)
$i = 0
do
{
Write-Host $i
$i++
}
until ($i -ge 10)
46
環境変数を取得
#一覧を取得
cd env:
dir
#特定の環境変数を取得
$env:computername
$env:username
$env:userdomain
$env:SessionName
47
日時を取得(Date オブジェクト)
Date
Day
DayOfWeek
DayOfYear
Hour
Kind
Millisecond
Minute
Month
Second
Ticks
TimeOfDay
Year
DateTime
Add
AddDays
AddHours
AddMilliseconds
AddMinutes
AddMonths
AddSeconds
AddTicks
AddYears
CompareTo
Equals
GetDateTimeFormats
GetHashCode
GetType
GetTypeCode
IsDaylightSavingTime
Subtract
ToBinary
ToFileTime
ToFileTimeUtc
ToLocalTime
ToLongDateString
ToLongTimeString
ToOADate
ToShortDateString
ToShortTimeString
ToString
ToUniversalTime
プロパティ メソッド
PS C:> (Date).Year
2012
PS C:> (date).adddays(10)
24年 5月 23日 12:49:10
48
リモーティング
• 3種類のリモーティング
• -ComputerName パラメタ
• 複数のコンピュータを指定可能
• 対話モード(Enter-PSSession コマンドレット)
• SSH のような使い方
• Invokeモード(Invoke-Command コマンドレット)
• -ComputerNameに対応していないコマンドで使用
• 複数のコンピュータに対して一括実行
• コマンド単体(-scriptblock)、
PS1スクリプト(-filepath)の指定が可能
• 送受信双方でリモーティングの準備が必要
49
PowerShell セッション(PSSessions)
PS> Enter-PSSession -ComputerName Server1
[Server1]: PS > $A = 1
[Server1]: PS > $B = 2
[Server1]: PS > $C = $A + $B
PS>Exit-PSSession
PS> Invoke-Command -ComputerName Server1 -ScriptBlock {$A = 1}
PS> Invoke-Command -ComputerName Server1 -ScriptBlock {$B = 1}
Enter-PSSessionを使用
Invoke-Command を使用
PS> Invoke-Command -ComputerName Server1 -ScriptBlock {$C = $A + $B}
1つのセッション
• コマンドの実行空間単位
• セッション内ではデータの共有が可能
• 通常はテンポラリセッションが作成され、コマンド終了後に削除される
50
PSSession の永続化
PS > $S = New-PSSession -ComputerName CL01
PS > Invoke-Command -session $S -ScriptBlock {$A=1}
PS > Invoke-Command -session $S -ScriptBlock {$B=2}
PS > Invoke-Command -session $S -ScriptBlock {$C=$A+$B}
PS > Remove-Session $S
• セッションの作成 :New-PSSession
• セッションの削除 :Remove-PSSession
• セッション一覧 :Get-PSSession
• セッションへの再接続 :Enter-PSSession
PS > $S = New-PSSession -ComputerName CL01
PS > Enter-PSSession $S
[CL01] PS > Get-VM | Where-Object name -EQ "TFWIN7-0"
PS > Exit-PSSession
51
モジュールとコマンドのインポート
• リモートコンピューター上のコマンドレットを一時的に取り込むことができる
• “Invoke-Command -Session” を使用する必要が無くなる
• コマンドの実行中はセッションを生かしておく必要がある
PSSession
Windows 7 Windows Server 2008 R2
w/ Hyper-V
Hyper-V module
• Get-VM
• Start-VM
• Stop-VM
• ・
• ・
PS C:> Get-VM |ft name
Name
----
TFWin7-0
TFWin7-1 FX
TFWin8-0 FX
TFWin8-1
Win7_template
Win8_template
PowerShell
実
行
空
間
PSSession を通じてモジュールをインポート
PS C:> $s = New-PSSession -ComputerName Server1
PS C:> Import-PSSession -Session $s -Module HYPER-V
52
関連コマンドレット
 Get-Job
 バックグラウンドジョブを取得
 Receive-Job
 バックグラウンドジョブの出力結果を取得
 Remove-Job
 バックグラウンドジョブを削除
 Start-Job
 バックグラウンドジョブを開始
 Stop-Job
 バックグラウンドジョブを停止
 Wait-Job
 バックグラウンドジョブが終了するまで待つ
バックグラウンドジョブ
• Windows PowerShell 2.0 よりサポート
• 長時間を要するコマンドレットを非同期に実行し、次の処理に移る
(例)get-eventlog “Windows PowerShell”
• ジョブの有効範囲は現在のセッション
53
バックグラウンドジョブの作成/開始/状態/結果取得
(例)
PS C:> $job = start-job -scriptblock {do {$a = 0; echo (date) ; start-sleep 5} while ($a -eq 0) }
PS C:> $job
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
6 Job6 Completed True localhost get-eventlog "Windows ...
PS C:> Receive-Job $job -Keep
PS C:> Stop-Job $job
PS C:> Remove-job $job
書式
start-job -scriptblock { <スクリプトブロック> }
出力結果が存在する
規定では、出力結果は一度取得するとクリアされてしま
うので、-Keep によって残すように指定
5秒に1回日時を表示するジョブ
ジョブを停止
ジョブを削除
54
リモートバックグラウンドジョブ
リモートコンピューターでバックグラウンドジョブを実行する場合には、
リモーティング手法を使用する
PS C:> $session = New-PSSession -Name testjob -ComputerName vlab-server40
PS C:> $job = Invoke-Command -Session $session -ScriptBlock {Get-EventLog "windows powershell"}
-AsJob
PS C:> Get-Job
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
21 Job21 Completed True vlab-server40 Get-EventLog "windows ...
PS C:> Receive-Job $job
ジョブとして実行
(注意)ジョブはローカルコンピューターに作成される
結果を取得
Windows PowerShell 3.0 では、ジョブの実行中にセッションを切断することが可能
結果はゆっくり自宅から...とか
55
unix のあのコマンドは?
ls → get-ChildItem
cp → copy-Object
grep → select-String
sort → sort-Object
man → help
clear → clear-Host
cat → get-Content
kill → stop-Process
tee → tee-Object
tail → get-Content
「アレはあるかな?」と思ったら
Get-Alias <unix 上のコマンド>
56
Get-Content で Tail を模してみる
## 新しく追加された行を待ち合わせて表示
gc test.txt -wait
## テキストファイルの5行目から10行目までを表示
(gc test.txt)[4..9]
## テキストファイルの最初の5行を表示
gc test.txt -totalcount 5
## テキストファイルの最後の5行を表示
gc test.txt | Select-Object -Last 5
## 新しく追加された行に特定の文字列が含まれていたら表示
gc test.txt -wait | Select-String -Pattern ^a
57
Windows Management Framework 3.0
Windows Server “8” に対応した新しい管理フレームワーク
Beta
http://www.microsoft.com/download/en/details.aspx?id=28998
58
Windows Management Framework 3.0
• PowerShell 3.0(コマンドレット数 2300!)
– ワークフロー
– セッションへの再接続
– PSScheduledJob モジュールによるジョブスケジューリングへの対応
– Show-Command による GUI を使用したコマンド入力
– パブリックネットワークでの Enable-PSRemoting
( -SkipNetworkProfileCheck オプション)
– WEB/Json系コマンドレット
– 新しい PowerShell ISE
• Windows PowerShell Web Service
• Server Manager CIM プロバイダー
• WinRM、WMI のアップデート
http://blogs.technet.com/b/junichia/archive/2012/03/21/3487696.aspx
59
PSSession の扱いの違い
PowerShell 2.0 の場合
PSSession
セッション情報
PowerShell 3.0 beta の場合
PSSession
セッション情報
セッション情報はローカルに保
存されるため、別のクライアン
トから再接続できない
セッション情報はリモートコン
ピューターに保存されるため、
別のクライアントから再接続で
きる
60
Session への再接続
セッション情報がリモートコンピュータ内に保存されるようになった
Name = Session1
New-PSSession -ComputerName ServerA
$A = 1
Disconnect-PSSessions -Name Session1
Connect-PSSession -ComputerName ServerA
-Name Session1
Enter-PSSession -Name Session1
Connect-PSSession -Name Session1
Enter-PSSession -Name Session1
$A = 1
Server1
Exit-PSSession
セッション
作成
PS C:>$A
1
再接続
自宅社内
61
ワークフロー
ターゲット
• 長時間を要する処理
– 仮想マシンの展開
– ソフトウェアのインストール
– ビッグデータの集計 など
• 複数の処理の組み合わせ
• 複数のコンピューターに対する処理
– ドメイン参加
– 環境設定
– インベントリ収集 など
ニーズ
• タイムアウトやリトライ
• 処理の一時停止、再開
• 処理ステートの永続化
• 複数処理の制御
• 並列
• シーケンシャル
• スクリプト実行権限の委任
• 途中経過の取得
ワークフロー = バックグラウンドジョブ + 実行制御
62
ワークフローの作成と実行
## 作成
workflow <ワークフロー名> ( <引数> )
{
<スクリプトブロック>
}
##実行
PS C:> <ワークフロー名> <引数> <共通パラメタ>
63
## 作成例
workflow testwf ( [string] $UserID, [string] $Password )
{
Echo -InputObject $PSComputerName, $UserID, $Password }
Start-Sleep -Seconds 5
}
##実行例
PS C:> testwf Yamada Pass -PSComputerName PC1,PC2,PC3
PC1
Yamada
Pass
PC2
Yamada
Pass
PC3
Yamada
Pass
ここで指定した3つのコンピューターに対し
てワークフローが同時に実行される
64
ワークフロー共通パラメタ
ワークフローの中で指定するためのパラメタで、既定の変数名でアクセスできる
パラメタ名 意味
PSParameterCollection
PSComputerName ターゲットコンピューター。複数指定すると、複数のコンピューターでワークフローが
同時実行される。
PSCredential ターゲットコンピューターに接続するための資格情報
PSConnectionRetryCount ターゲットコンピューターに再接続を試みる回数
PSConnectionRetryIntervalSec 再接続までの時間間隔
PSRunningTimeoutSec ワークフローが終了するまでの制限時間。制限時間がくるとワークフローは強制終了さ
れる。ワークフローが一時停止していた場合には、その時間は実行時間には含まれない。
PSPersist $True または $False。ワークフロー内部で出力した結果を永続化する。
PSAuthentication 使用する認証のメカニズムを指定する。
Default / None / Connect / Call / Packet / PacketIntegrity / PacketPrivacy
PSApplicationName ターゲットコンピューターに接続するために使用する接続URIのアプリケーション名を
指定する。既定は WSMAN。
PSPort リモートコンピューターに接続する際のポート番号。既定では5985(WinRM for
HTTP)または5986(WinRM for HTTPS)。
65
パラメタ名 意味
PSUseSSL リモートコンピューターとSSLを使用して接続する
PSConfigurationName ワークフローの構成情報が格納された構成名を指定する。規定値は
Microsoft.PowerShell
PSConnectionURI 接続に使用するエンドポイントを指定する。規定は http://localhost:5985/WSMAN
PSAllowRedirection ターゲットコンピューターがURIのリダイレクトを要求してきたときに、それを
PowerShell が許可するかどうかを指定する。規定値は $False。
PSSessionOption New-PSSessionOption で作成された拡張オプションを指定する。
PSCertificateThumbprint 権限を持ったX.509証明書のサムプリントを指定する
PSPrivateMetadata ワークフローの実行時に使用される、ユーザーやアプリケーションの情報が格納された
ハッシュテーブルを指定する
AdJob ワークフローをバックグラウンドジョブとして実行する際に指定する。このオプション
を使用すると、ジョブ情報がオブジェクトとして返されるので、これを使用して関連モ
マンドレット(*-job)でジョブの制御を行うことができる。
Jobname AsJobパラメタで実行した場合、規定では Job<n> という名前が付けられるが、このパ
ラメタを使用してわかりやすいジョブ名を指定することができる。
InputObject ワークフローの引数
66
共通パラメタの使用例
##例:pc1,pc2,pc3 をドメイン Contoso に参加させる
Workflow JoinDomain ([string] $Domain)
{
Get-WmiObject –Class Win32_ComputerSystem –PSComputerName $PSComputerName
Add-Computer -PSComputerName $PSComputerName -DomainName $Domain –Credential $PSCredential
Restart-Computer -PSComputerName $PSComputerName -Wait -For PowerShell -Force
Get-WmiObject -Class Win32_ComputerSystem -PSComputerName $PSComputerName
}
##ワークフローの実行
PS C:> JoinDomain Contoso.com -PSComputerName pc01,pc02,pc03 -PSCredential $Cred
67
並列実行とシーケンシャル実行
workflow testwf
{
parallel
{
echo -InputObject "a"
sequence
{
echo -InputObject "c"
echo -InputObject "d"
}
echo -InputObject "b"
}
}
こ
こ
は
並
列
処
理
ここは
シーケンシャル
68
PowerShell Web Access
PSWS
Internet DMZ INTRANET
SSL WS-MAN
69
PowerShell Web Access のセットアップ
1.サーバーマネージャーから PowerShell Web Access をインストールする
70
2.IIS で自己署名証明書を作成してバインドを設定する(SSLを有効に)
ご自身のサーバーを指
定してください
バインドの設定で
作成した証明書を選択
71
2.PowerShell を管理者モードで起動
3.以下のコマンドを実行
PS C:> Set-ExecutionPolicy RemoteSigned
PS C:> Import-Module PowerShellWebAccess
PS C:> Install-PswaWebApplication -webSiteName "Default Web Site"
PS C:> Add-PswaAuthorizationRule * * *
4.https://<サーバー名>/pswa にアクセス
ここで指定するサーバーは、
管理したいサーバー
72
まとめ
Windows PowerShell を始めたら、
PowerShell だけを使い続けましょう!
コマンドプロンプトに戻ってはいけません!
PowerShell に「一短」はありません!
73

Mais conteúdo relacionado

Mais procurados

[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11Kenny Gryp
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX, Inc.
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)Satoshi Shimazaki
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作irix_jp
 
Managing ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesManaging ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesChristopher Janoch
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会Yuki Obara
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleWagner Bianchi
 
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!株式会社クライム
 
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用Motonori Shindo
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
 
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料zgock
 
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
Huawei Switch S5700  How To - Configuring single-tag vlan mappingHuawei Switch S5700  How To - Configuring single-tag vlan mapping
Huawei Switch S5700 How To - Configuring single-tag vlan mappingIPMAX s.r.l.
 
초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기OnGameServer
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDNOpenStack Korea Community
 
Basic command to configure mikrotik
Basic command to configure mikrotikBasic command to configure mikrotik
Basic command to configure mikrotikTola LENG
 

Mais procurados (20)

[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
 
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
 
Managing ESXi - Tools and Techniques
Managing ESXi - Tools and TechniquesManaging ESXi - Tools and Techniques
Managing ESXi - Tools and Techniques
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!
【配信!Veeam情報局】バックアップ容量の最適化、ストレージ節約や拡張方法を解説!
 
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
 
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
Huawei Switch S5700  How To - Configuring single-tag vlan mappingHuawei Switch S5700  How To - Configuring single-tag vlan mapping
Huawei Switch S5700 How To - Configuring single-tag vlan mapping
 
초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기초보자를 위한 분산 캐시 이야기
초보자를 위한 분산 캐시 이야기
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
Basic command to configure mikrotik
Basic command to configure mikrotikBasic command to configure mikrotik
Basic command to configure mikrotik
 

Destaque

PowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまでPowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまでKazuhiro Matsushima
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おうSatoru Nasu
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版junichi anno
 
Windowsでの自動化の手段
Windowsでの自動化の手段Windowsでの自動化の手段
Windowsでの自動化の手段Hidari Ikw
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiajunichi anno
 
Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編junichi anno
 
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話洋史 東平
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIjunichi anno
 
PowerShell と Active Directory
PowerShell と Active DirectoryPowerShell と Active Directory
PowerShell と Active DirectoryChuki ちゅき
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜Yui Ito
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Takashi Kanai
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)Shinichi Hirauchi
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントYoshio Hanawa
 
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)Shinobu Yasuda
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 

Destaque (16)

PowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまでPowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまで
 
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
 
Windowsでの自動化の手段
Windowsでの自動化の手段Windowsでの自動化の手段
Windowsでの自動化の手段
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
 
Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編
 
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
 
PowerShell と Active Directory
PowerShell と Active DirectoryPowerShell と Active Directory
PowerShell と Active Directory
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 

Semelhante a Power shell の基本操作と処理の自動化 v2_20120514

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るKiyoshi SATOH
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」fukuoka.ex
 
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回Shigeharu Yamaoka
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesKazushi Kamegawa
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...Suguru Ito
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01Yusuke Ando
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発Mitsuru Katoh
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAmazon Web Services Japan
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Shinsuke Sugaya
 

Semelhante a Power shell の基本操作と処理の自動化 v2_20120514 (20)

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
PowerShell de Azure
PowerShell de AzurePowerShell de Azure
PowerShell de Azure
 
20080524
2008052420080524
20080524
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
 

Mais de junichi anno

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...junichi anno
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティjunichi anno
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~junichi anno
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)junichi anno
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azurejunichi anno
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計junichi anno
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について junichi anno
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版junichi anno
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門junichi anno
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaSjunichi anno
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版junichi anno
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...junichi anno
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版junichi anno
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するjunichi anno
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計junichi anno
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 

Mais de junichi anno (20)

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
 
Azure Key Vault
Azure Key VaultAzure Key Vault
Azure Key Vault
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azure
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaS
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理する
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 

Power shell の基本操作と処理の自動化 v2_20120514

Notas do Editor

  1. 18