PowerShell 紹介

tsudaa
PowerShell 紹介
LTDD #10
@tsuda_ahr
PowerShell とは
• Microsoft の Shell Script のようなもの
• コマンドプロンプトの後継
(WSH/VBScript の後継)
• Windows 7 以降は標準搭載。
• 専用エディタもついてくるよ!
PowerShell ISE
(Integrated Scripting Environment)
利点
• .net のライブラリが Script のように使えること。
個人的にはこれ一択!
例
$tcp = New-Object System.Net.Sockets.TcpClient
try {
$tcp.Connect("localhost", 445)
Write-Host ("成功")
} catch {
Write-Host ("失敗")
} finally {
$tcp.Close()
$tcp.Dispose()
}
対象の host の TCP ポートを
開いてみる Script
.net の
ライブラリ
ちまたで言われている利点
• pipe に Object を渡せる
• コマンドプロンプト (cmd.exe) とは比較にならない制御が可能
(= 一般的な言語ができることができる)
• コマンドプロンプトの後継。
• Azure API などが操作できる。
• Windows Server では一部 PowerShell Script に変換する機能が
ある(らしい)
例) object が pipe を渡っているの図
Get-Content .¥sample.csv |
ConvertFrom-Csv -Header @(1..50) |
Where {$_."3" -ge 1989} |
select "1","2","16","26","30" |
Out-GridView
sample.csv を読み込み、
csv ファイルとして解釈し
3列目が 1989 以上の行の
1列目,2列目,16列目,26列目,30列目を
GridView で表示する
残念な点
1.拡張子とインストールフォルダ
最新のPSのバージョンは現在 “4”
順調に進化しています
しかし拡張子は.ps1のまま
インストールフォルダも v1.0 のまま
2.関係演算子
PERL の場合
$a = 100;
if ($a > 1) {
print "True";
}
PowerShell の場合
$a = 100;
if ($a –gt 1) {
Write-Host "True";
}
FORTRAN かよ!
参考) FORTRAN 77 の場合
00010 I = 100
00020 IF (I .GT. 1) THEN
00030 PRINT *, "True"
00040 END IF
00050 END
3.セキュリティ縛り
ポリシーがデフォルトのままだと、
Scriptファイル(.ps1) を実行できません
4.コマンドプロンプトに劣る面がある
屈辱の
cmd /c mklink
たとえば シンボリックリンクを
作るコマンドレットは存在しない。
5.Windows の設定は、変わらず難儀
たとえば、
ここのチェックを入れるための
API とかは存在しない
6.コマンドが長い
まとめ
• Windows の設定がらみのところでは、まだまだコマンドプロン
プト有利なところが結構ある。
• 自前 Script を書く場合は、PowerShell になれるとコマンドプ
ロンプトには戻れない。
• テキスト処理とかも PERL を使ったりすることはなくなった。
みんな PowerShell を使おう!
セッション中にあった質問と回答
質問1) pipe で渡ったオブジェクトの型はわかるのか?
一応わかりますが、パターンマッチとはまではできません(多分)
質問2) PowerShell で Excel は操作できるのか?
• できないことはないけれど、Powershell で実施することによる
メリットはあまりないよ。何より遅い(汗
powershell
# Excelの起動ほか
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$book = $excel.Workbooks.Open("D:¥sample.xlsx")
$sheet = $book.Worksheets.Item("sheet1")
# 書き込み
$sheet.Range("A1").Cells.Item(1, 1) = "AAA"
# 読み込み
$a = $sheet.Range("A1").Cells.Item(1, 1).Text
Write-Host $a
# 閉じる
$book.Save()
$excel.Quit()
# Excel.exe がプロセスに残るのを防ぐために Powershell ごと終了する(ぉぃ
exit
質問3) あるフォルダにファイルができたことをトリガーに処
理することができるか?
できないことはないです…
(実現にはやはり .net のライブラリの力を借ります。
また以下のコードだと複数のファイルが同時に操作された場合に取りこぼします)
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "D:¥test"
while ($true) {
$result = $watcher.WaitForChanged([System.IO.WatcherChangeTypes]::All)
Write-Host $result.ChangeType $result.Name
}
ステマ。
来る 2015/2/14 (土) オープンセミナー広島が開催されます。
http://osh-web.github.io/
PowerShell のセッションもあるよ!
この本を書かれた方が来られます!
この機会に是非ご参加ください!
1 sur 31

Recommandé

NanoStrand par
NanoStrandNanoStrand
NanoStrandMasashi Umezawa
818 vues26 diapositives
CategoLJについて par
CategoLJについてCategoLJについて
CategoLJについてToshiaki Maki
1.3K vues21 diapositives
Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)” par
Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)”Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)”
Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)”Shinnosuke Asahara
4.3K vues9 diapositives
Tide - SmalltalkでSPA par
Tide - SmalltalkでSPATide - SmalltalkでSPA
Tide - SmalltalkでSPAMasashi Umezawa
1.4K vues37 diapositives
Shellを書こう 02 shUnit2を使おう par
Shellを書こう 02 shUnit2を使おうShellを書こう 02 shUnit2を使おう
Shellを書こう 02 shUnit2を使おうKeisuke Oohata
1.6K vues28 diapositives
HascTool BlockDevelopment par
HascTool BlockDevelopmentHascTool BlockDevelopment
HascTool BlockDevelopmentNobuo Kawaguchi
1.5K vues11 diapositives

Contenu connexe

Tendances

Hakodate - simple framework par
Hakodate - simple frameworkHakodate - simple framework
Hakodate - simple frameworkHiroaki Murayama
687 vues18 diapositives
Webサーバ勉強会03 par
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
1.7K vues16 diapositives
PowerShell 小技集 par
PowerShell 小技集PowerShell 小技集
PowerShell 小技集sakuragi yuuto
2K vues23 diapositives
PowerShellが苦手だった男がPowerShellを愛するようになるまで par
PowerShellが苦手だった男がPowerShellを愛するようになるまでPowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまでKazuhiro Matsushima
28.6K vues52 diapositives
Nodejs par
NodejsNodejs
NodejsMasanobu Masuda
522 vues12 diapositives
Power shellmemo par
Power shellmemoPower shellmemo
Power shellmemoytanno
918 vues18 diapositives

Tendances(20)

Webサーバ勉強会03 par oranie Narut
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
oranie Narut1.7K vues
PowerShellが苦手だった男がPowerShellを愛するようになるまで par Kazuhiro Matsushima
PowerShellが苦手だった男がPowerShellを愛するようになるまでPowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまで
Kazuhiro Matsushima28.6K vues
Power shellmemo par ytanno
Power shellmemoPower shellmemo
Power shellmemo
ytanno918 vues
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する par shigeki_ohtsu
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するそうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu27.9K vues
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」 par Shinichi Hirauchi
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
Shinichi Hirauchi7.2K vues
シェル芸初心者によるシェル芸入門 par icchy
シェル芸初心者によるシェル芸入門シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy37.9K vues
Cost of ovs receiving process par Takuya ASADA
Cost of ovs receiving processCost of ovs receiving process
Cost of ovs receiving process
Takuya ASADA970 vues
Zabbix meeting 20101218_02-2 (Takanori Suzuki) par takanori suzuki
Zabbix meeting 20101218_02-2 (Takanori Suzuki)Zabbix meeting 20101218_02-2 (Takanori Suzuki)
Zabbix meeting 20101218_02-2 (Takanori Suzuki)
takanori suzuki4.2K vues
それでも僕はユニットテストを書きたい - Pester powered by PowerShell par Hidari Ikw
それでも僕はユニットテストを書きたい - Pester powered by PowerShellそれでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
Hidari Ikw6.6K vues
使ってみよう PowerShell par Kazuki Takai
使ってみよう PowerShell使ってみよう PowerShell
使ってみよう PowerShell
Kazuki Takai1K vues
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして par Shinichi Hirauchi
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとしてBlack jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Black jumbodogの新機能(webapi)~自動テストにおけるsmtpモックとして
Shinichi Hirauchi3.8K vues
Test::WWW::Stub par ast_j
Test::WWW::StubTest::WWW::Stub
Test::WWW::Stub
ast_j2.8K vues
シェル入門 par ina job
シェル入門シェル入門
シェル入門
ina job1.2K vues
B lack jumbodog 運転と改造のすすめ par Shinichi Hirauchi
B lack jumbodog 運転と改造のすすめB lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめ
Shinichi Hirauchi10.7K vues
シェル芸初心者によるシェル芸入門 (修正版) par icchy
シェル芸初心者によるシェル芸入門 (修正版)シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
icchy5.8K vues
Shibuya Pm Tt08 Advanced Mogilefs par guest172cfb
Shibuya Pm Tt08 Advanced MogilefsShibuya Pm Tt08 Advanced Mogilefs
Shibuya Pm Tt08 Advanced Mogilefs
guest172cfb971 vues

Similaire à PowerShell 紹介

Handlersocket etc. 20110906 par
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906akirahiguchi
3.4K vues27 diapositives
OpenStack + Common Lisp par
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lispirix_jp
4.6K vues44 diapositives
Windows PowerShell 2.0 の基礎知識 par
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
4.2K vues52 diapositives
無料セミナー20170321 awsから始めるlinux入門 par
無料セミナー20170321 awsから始めるlinux入門無料セミナー20170321 awsから始めるlinux入門
無料セミナー20170321 awsから始めるlinux入門Trainocate Japan, Ltd.
1.4K vues23 diapositives
ICHIGEKI-MT 2015/03/14 par
ICHIGEKI-MT 2015/03/14ICHIGEKI-MT 2015/03/14
ICHIGEKI-MT 2015/03/14Yasutaka Hamada
2.6K vues161 diapositives
Clrh 110827 wfho par
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfhoTomoyuki Obi
353 vues14 diapositives

Similaire à PowerShell 紹介(20)

Handlersocket etc. 20110906 par akirahiguchi
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
akirahiguchi3.4K vues
OpenStack + Common Lisp par irix_jp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
irix_jp4.6K vues
Windows PowerShell 2.0 の基礎知識 par shigeya
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya4.2K vues
Windows PowerShell 2.0 の基礎知識 par shigeya
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya3.3K vues
最新PHP事情 (2000年7月22日,PHPカンファレンス) par Rui Hirokawa
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa4.2K vues
SQL Server エンジニア のための コンテナ入門 par Tomoyuki Oota
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門
Tomoyuki Oota253 vues
サーバーを作ろう (毎週のハンズオン勉強会の資料) par ひとし あまの
サーバーを作ろう (毎週のハンズオン勉強会の資料)サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
Power shell の基本操作と処理の自動化 v2_20120514 par junichi anno
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514
junichi anno7.1K vues
クラウド開発に役立つ OSS あれこれ par Masataka MIZUNO
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO1.6K vues
IT Pro のための PowerShell スクリプティング par Kazuki Takai
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai11.5K vues
Dockerを使ったローカルでの開発から本番環境へのデプロイまで par Ryo Nakamaru
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru30.7K vues

Plus de tsudaa

Json型の使い方 par
Json型の使い方Json型の使い方
Json型の使い方tsudaa
2.9K vues21 diapositives
ぬぎんくす問題 par
ぬぎんくす問題ぬぎんくす問題
ぬぎんくす問題tsudaa
2K vues20 diapositives
Windows でも時刻合わせがしたい! par
Windows でも時刻合わせがしたい!Windows でも時刻合わせがしたい!
Windows でも時刻合わせがしたい!tsudaa
1.4K vues28 diapositives
Python と私の事情 par
Python と私の事情Python と私の事情
Python と私の事情tsudaa
4.7K vues21 diapositives
真理とは何か par
真理とは何か真理とは何か
真理とは何かtsudaa
1.4K vues25 diapositives
Excelのどうでもよいtipsの紹介 par
Excelのどうでもよいtipsの紹介Excelのどうでもよいtipsの紹介
Excelのどうでもよいtipsの紹介tsudaa
2K vues45 diapositives

Plus de tsudaa(18)

Json型の使い方 par tsudaa
Json型の使い方Json型の使い方
Json型の使い方
tsudaa2.9K vues
ぬぎんくす問題 par tsudaa
ぬぎんくす問題ぬぎんくす問題
ぬぎんくす問題
tsudaa2K vues
Windows でも時刻合わせがしたい! par tsudaa
Windows でも時刻合わせがしたい!Windows でも時刻合わせがしたい!
Windows でも時刻合わせがしたい!
tsudaa1.4K vues
Python と私の事情 par tsudaa
Python と私の事情Python と私の事情
Python と私の事情
tsudaa4.7K vues
真理とは何か par tsudaa
真理とは何か真理とは何か
真理とは何か
tsudaa1.4K vues
Excelのどうでもよいtipsの紹介 par tsudaa
Excelのどうでもよいtipsの紹介Excelのどうでもよいtipsの紹介
Excelのどうでもよいtipsの紹介
tsudaa2K vues
MySQL のユーザー定義変数と RDB のココロ par tsudaa
MySQL のユーザー定義変数と RDB のココロMySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロ
tsudaa2.3K vues
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る par tsudaa
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返るHiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る
tsudaa1.1K vues
ドメイン名の話 (データベース/SQL) par tsudaa
ドメイン名の話 (データベース/SQL)ドメイン名の話 (データベース/SQL)
ドメイン名の話 (データベース/SQL)
tsudaa4.8K vues
スターマークの話 par tsudaa
スターマークの話スターマークの話
スターマークの話
tsudaa1.4K vues
Powershell のセキュリティ (大都会ver) par tsudaa
Powershell のセキュリティ (大都会ver)Powershell のセキュリティ (大都会ver)
Powershell のセキュリティ (大都会ver)
tsudaa1K vues
昼の12時は午○何時? par tsudaa
昼の12時は午○何時?昼の12時は午○何時?
昼の12時は午○何時?
tsudaa861 vues
全角チルダ問題 par tsudaa
全角チルダ問題全角チルダ問題
全角チルダ問題
tsudaa104.3K vues
資格は役に立つか par tsudaa
資格は役に立つか 資格は役に立つか
資格は役に立つか
tsudaa4K vues
○○型言語と呼ばれるために備えるべき最低限の条件についての検討 par tsudaa
○○型言語と呼ばれるために備えるべき最低限の条件についての検討○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
tsudaa1.1K vues
文字数はおいくら?(Ruby版) par tsudaa
文字数はおいくら?(Ruby版)文字数はおいくら?(Ruby版)
文字数はおいくら?(Ruby版)
tsudaa867 vues
法律の読み方とか par tsudaa
法律の読み方とか法律の読み方とか
法律の読み方とか
tsudaa904 vues
C++入門? par tsudaa
C++入門?C++入門?
C++入門?
tsudaa3.6K vues

PowerShell 紹介