Soumettre la recherche
Mettre en ligne
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
•
Télécharger en tant que PPTX, PDF
•
6 j'aime
•
6,291 vues
T
Tetsu Yama
Suivre
自社勉強会用資料
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 194
Télécharger maintenant
Recommandé
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
Powershell勉強会 v5 (こちらが最新です。)
Powershell勉強会 v5 (こちらが最新です。)
Tetsu Yama
Fiberの使いどころ
Fiberの使いどころ
Tomoya Kawanishi
QUICとNATと
QUICとNATと
Yuya Rin
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
Akihiro Kuwano
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
Takafumi ONAKA
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
Recommandé
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
Powershell勉強会 v5 (こちらが最新です。)
Powershell勉強会 v5 (こちらが最新です。)
Tetsu Yama
Fiberの使いどころ
Fiberの使いどころ
Tomoya Kawanishi
QUICとNATと
QUICとNATと
Yuya Rin
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
Akihiro Kuwano
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
Takafumi ONAKA
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
Kentarou Takeda
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
最速C# 7.x
最速C# 7.x
Yamamoto Reki
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすか
Shun Fukazawa
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Shigeharu Yamaoka
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
agileware_jp
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
Git入門
Git入門
小川 昌吾
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
Kenshi Muto
ドメイン分析勉強会
ドメイン分析勉強会
Kosuke Fujisawa
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Mei Nakamura
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
Contenu connexe
Tendances
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
Kentarou Takeda
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
最速C# 7.x
最速C# 7.x
Yamamoto Reki
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすか
Shun Fukazawa
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Shigeharu Yamaoka
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
agileware_jp
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
Git入門
Git入門
小川 昌吾
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
Kenshi Muto
ドメイン分析勉強会
ドメイン分析勉強会
Kosuke Fujisawa
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Mei Nakamura
Tendances
(20)
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
Docker Compose 徹底解説
Docker Compose 徹底解説
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
最速C# 7.x
最速C# 7.x
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすか
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Git入門
Git入門
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
書籍向け汎用マークアップのあり方―Re:VIEWの開発を通して
ドメイン分析勉強会
ドメイン分析勉強会
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Similaire à Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
はじめてのPHP
はじめてのPHP
Go Tanaka
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
Shigeharu Yamaoka
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Net opscoding#4発表資料
Net opscoding#4発表資料
Kenta Hattori
PHPフレームワーク入門
PHPフレームワーク入門
Sho A
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
Tokyor23 doradora09
Tokyor23 doradora09
Nobuaki Oshiro
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
bsdhack
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
Similaire à Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
(20)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell基礎_20180521用
Powershell基礎_20180521用
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
はじめてのPHP
はじめてのPHP
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
知って得する標準関数の使い方
知って得する標準関数の使い方
Net opscoding#4発表資料
Net opscoding#4発表資料
PHPフレームワーク入門
PHPフレームワーク入門
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Ruby on Rails 入門
Ruby on Rails 入門
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
Tokyor23 doradora09
Tokyor23 doradora09
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Dernier
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Dernier
(12)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
1.
Windows Powershell 基礎 勉強会 2017/08/30(Wed)
自社・・・・第1回 2017/09/27(Wed) 自社・・・・第2回 山本 てつや
2.
山本 てつや (通称:ヤマゾン) •
金融系システムの更改案件にて、 運用スクリプト、配布APの構築を 担当(2017/09〜) • 最近の夢はRuby on RailsでWEBア プリを作って、誰かに喜んでもら うこと • AWS (Yamazon Web Service)も勉 強中 • 今話題のWEBサイト、「 yamazoon.com 」の管理人
3.
目次 1. Powershellとは (他のスクリプト言語との比較) 2.
Powershellを実行するための準備 3. 基本的なコマンドレットの使い方、書式 4. スクリプトの作り方、動かし方
4.
必要なもの 1. PC (Windows
7 以上のスペックであれば可)
5.
1. Powershellとは (他のスクリプト言語との比較)
6.
インフラエンジニアから見たPowershell 1. WSH(VBS)に変わって登場した管理用スクリプト 言語 2. 高機能
(WSFC、Active Directory、Hyper-Vのモジ ュールもある) 3. WinRMを使ったリモートサーバ管理が可能
7.
他の言語との比較
8.
1. バッチ (.cmd
/ .bat) 1. MS-DOS時代からある、今でも利用者の多いスクリプト 2. コマンドがたくさんあって結構なんでもできる 3. 実行ファイルや他のスクリプトを呼び出すのが得意 4. プログラミング言語で行うような構造的な文法記述には 不向き( for 文が独特だったり、エスケープが難しい) 5. 今後もOSバージョンに合わせて拡張され続ける★
9.
2. VBS (.vbs) 1.
Visual Basic のスクリプト版で、兄弟はVBA 2. Windows歴の長い一定数の人から根強い人気 3. バッチで出来ないことをするために使うことが多 い 4. 今後拡張される予定はない★
10.
3. Jscript (.js) 1.
JavascriptのMS版として、VBSと同時期に誕生 2. 現場では2〜3年に1回ぐらい見かける気がする ( かなり私見かも) 3. 今後拡張される予定はない★
11.
4. Powershell (.ps1) 1.
2006年に誕生した割と新しいスクリプト 2. 各社がPowershell用にコマンドレットを出している(例:AWS Tools For Powershell、VMware PowerCLI) 3. 利用者数が急増中 4. 今後もOSバージョンに合わせて拡張され続ける★ 5. GithubよりLinux,MacOS向けにも展開中 6. 標準で付属しているIDE (ISEエディタ) が便利
12.
参考:ISEエディタ Powershellのアイコンを右 クリックすると出てくる
13.
補完機能 実行ボタン 検索機能 スクリプト記述エ リア
14.
リモートホストのPowershellに 接続
15.
VBS vs Powershell
16.
PowershellよりVBSを使うべき時 1. 今動いてるVBSが問題ない時(わざわざリファクタリングする必要ない) 2. Powershellが入っていない環境(WindowsXP,Windows
Server 2003)のシステム管理 3. Powershellが入っていない環境に、Powershellをインストールするためのスクリプトを 作る時 4. メモリやCPUがかなり枯渇している中で、どうしても動かしたい処理がある時 (WSHの 方が動作エンジンが軽いため。) (参考記事:https://mcpmag.com/articles/2015/03/19/vbscript-instead-of-powershell.aspx)
17.
凡例: ◎ :
インストール済み △ : インストール可能 - : 未対応 バージョン 1.0 2.0 3.0 4.0 5.0 Windows Server 2003 △ SP1 △ SP2 - - - Windows Server 2003 R2 △ SP1 △ SP2 - - - Windows Server 2008 - △ SP1 △ SP2 - - Windows Server 2008 R2 - ◎ △ SP1 △ SP1 △ SP1 Windows Server 2012 - - ◎ △ △ Windows Server 2012 R2 - - - ◎ △
18.
バージョン 1.0 2.0
3.0 4.0 5.0 Windows XP x64 △ - - - - Windows XP △ SP2 △ SP3 - - - Windows Vista △ △ SP1 - - - Windows 7 - ◎ △ SP1 △ SP1 △ SP1 Windows 8 - - ◎ - - Windows 8.1 - - - ◎ △ Windows 10 - - - - ◎
19.
Powershell を実行するための準備
20.
準備 エクスプローラ開く ⇨ 「表示」⇨「拡張子を表示する」に設定
21.
・拡張子が表示されていればOK
22.
・試しに1つ、デスクトップに拡張子が.ps1のPowershellファイルを作る。 ダブルクリックすると、メモ帳で開く。
23.
• GUIでは、右クリックし「Powershellで実行」を クリックし実行できる
24.
• コンソールでは、Powershell.exe の引数にPowershell スクリプトのパスを指定して実行することができる
25.
実行ポリシー
26.
1. Powershell スクリプトを右クリックし、「 Powershell
で実行」をクリックした際の動作
27.
2. Powershell.exe の引数にPowershell
スクリプトを 指定して実行した際の動作
28.
• 実行ポリシーの種類 項目 (主なもの) 説明 Restricted 実行できるスクリプトはありません。 PowerShell は対話モードでのみ使用可能です。 AllSigned 信頼できる発行元が署名したスクリプトのみを 実行できます。 RemoteSigned ダウンロードしたスクリプトは信頼できる発行 元が署名した場合にのみ実行できます。デフォ ルト。 Unrestricted 制限なし。すべての
Windows PowerShell スク リプトを実行できます。
29.
実行ポリシーは・・・ • Get-Executionpolicy コマンドレットにて確認可能 •
Set-Executionpolicy コマンドレットにて変更可能 例:Unrestricted に設定 Set-Executionpolicy Unrestricted
30.
31.
⇨ ローカルコンピュータの設定を恒久変更するため注意。
32.
一時的な実行ポリシー変更 ※ローカルコンピュータの設定を恒久変更せずに、 指定したPowershellスクリプトだけを、指定したポリシーで実行する方法。
33.
1. バッチ(.bat /.cmd)
実行により起動する場合 • 下記のように記載したバッチを作成 (Call-Hello.ps1) Powershell -Executionpolicy Unrestricted “C:¥Hello.ps1”
34.
35.
2. ショートカットファイル実行により起動する場合 • ターゲットに下記のように記載したショートカットを作成 Powershell
-Executionpolicy Unrestricted “C:¥Hello.ps1”
36.
37.
3. Powershellスクリプトを対話モードから実行する場合 • Set-ExecutionPolicyの「-Scope」オプションに「 process」を指定する Set-Executionpolicy
<値> -Scope process
38.
39.
基本的なコマンドレットの使い方、書式
40.
コマンドレット (動詞)-(名詞) の形式を取る。 動詞は主に「Get」か「Set」。
41.
• Get-Command • (コマンドレット一覧)を(参照) •
Set-Executionpolicy • (実行ポリシー)を(設定)
42.
• オプションの調べ方 • 先頭にman
を付ける 例:man get-service • 末尾に-? を付ける 例:get-date -?
43.
44.
Get-Serviceコマンドレットを用いて、BITS のサービス 状態を取得する例
45.
今月の1日の日付を取 得 2017/1/1を取得
46.
コマンドレットの持つ、 プロパティとメソッド
47.
プロパティ 特徴や性質に関する情報 • iPhoneで例えると下記のような情報 • バージョン
(6、6S、SE、7) • 色 (赤、黒、白) • 容量 (32、64、128 GB) • キャリア (au、docomo、Softbank)
48.
メソッド 提供している操作 • iPhoneで例えると下記のような操作 • 導入済みアプリの起動 •
連絡先への通話 • 写真を撮る • 音声での機能検索
49.
• 各コマンドレットが持つプロパティ、 メソッドの調べ方 • パイプでGet-Memberに渡す 例:get-service
| Get-Member
50.
51.
• プロパティの使い方 • コマンドレットを括弧()
でくくって 、「.プロパティ名」 例:(Get-Childitem).fullname
52.
• Get-Childitem (=dir)
コマンドレットから、 fullnameプロパティを取得する例
53.
54.
55.
日付プロパティを取得
56.
• メソッドの使い方 • コマンドレットを括弧()
でくくって 、「.メソッド名(引数)」 例:(Get-Service -name “BITS”).start()
57.
• Get-Serviceコマンドレットの start() メソッドを使い、BITSのサービスを開 始する例
58.
59.
今日の日付を yyyyMMddで取得 今日の日付に10日加 算してyyyyMMddで取 得 今月の1日から1日引き算して 、先月の最終日をyyyyMMdd で取得
60.
エイリアス
61.
各コマンドレットに用意された省略系。 Unixのコマンドを意識して作られている。下記は抜粋。 ls ・・・・・Get-Childitem cat ・・・・・Get-Content
(gc) sleep ・・・・Start-Sleep mkdir ・・・・New-Item -type directory cd ・・・・・Set-Location pushd・・・・Push-Location popd ・・・・Pop-Location
62.
cp ・・・・・Copy-Item mv ・・・・・Move-Item rm
・・・・・Remove-Item clear (cls) ・・Clear-Host ps ・・・・・Get-Process kill ・・・・・Stop-Process pwd ・・・・Get-Location tee ・・・・Tee-Object wget (curl) ・・Invoke-WebRequest
63.
64.
65.
66.
コマンドレットの出力行数を指定
67.
• (コマンドレット)[n] • n
は 0 から始まる数字で、0を指定すると1行目の出 力が取れる • Get-Childitem (ls) の出力結果より、1行目を取得 する例 (Get-Childitem)[0]
68.
69.
• (コマンドレット)[n..o] • n行目〜o行目の出力が取れる •
Get-Childitem (ls) の出力結果より、1行目 〜4行目を取得する例 (Get-Childitem)[0..3]
70.
71.
• (コマンドレット)[-1] • 最終行の出力が取れる •
Get-Childitem (ls) の出力結果より、最終 行を取得する例 (Get-Childitem)[-1]
72.
73.
おまけ①:Get-Childitem のfullnameプロパティにつ いて、1行目、最終行を出力する例
74.
おまけ②:プロパティやメソッドにも、プロパティや メソッドは付いており(Get-Memberで確認できる)、使う ときにはピリオドでつなげる。
75.
おまけ③: Lengthプロパティは出力行数を返すプロパティ。 しかし、出力が1行のときは1行中の文字数を返す。一方Count プロパティは基本的に出力行数を返す。 7行 7行 7行 5文字 1行
76.
変数
77.
${VAL} の形式を取る。 $VAL とも記述可能。
78.
スコープ (ほんの少しだけ厄介) • global・・・スクリプト外も可 •
script・・・スクリプト内 ※デフォルト • local・・・同一ブロック内・子ブロック内 • private・・同一ブロック内
79.
• 使い方 • $script:valname
80.
親ブロック内 子ブロッ ク内 親ブロック内でprivateとして定義した $pは子ブロックでは参照不可 親ブロックの外では、親ブロック内で scripとして定義した $sのみ参照可
81.
スコープについて補足 • 変数(A)を子ブロック(関数)で操作するとき • 「+=
」だとローカル変数として変数(A)の値を 継承せずに、右辺が加算される。 • 「++」だと、ローカル変数として変数(A)の値 を継承し、右辺が加算される。
82.
インクリメントされる スコープを指定して参照すると、親スコープで定義した$aの値は変更 されていないとわかる ++
83.
300にはならずに、値を200として、 新たなローカル変数が作成される +=200
84.
そもそも、スコープを意識しなきゃいけないほど 階層的なスクリプトを書かないこと。 親ブロックで定義した変数を子ブロックで参照し たり、書き換えするときは、スコープを書くよう にする (例:$script:a +=
1)。 また、親ブロックで定義したものと同じ名前の変 数を子ブロックで使わないようにする。 ⇨抑えるべき点
85.
型 ⇨代入すると自動で型変換される • $a =
1 # ⇦System.Int32 (数値) • $b = "1" # ⇦System.String (文字列) • $a + $b # ⇦2 ※先の$aの型に $bが変換される • $b + $a # ⇦11 ※先の$bの型に $aが変換される
86.
87.
型指定して代入することも可能 ※異なる型での上書き禁止になる • [int32]$a =
1 # ⇦System.Int32 (数値) • [int32]$b = "1" # ⇦System.Int32 (数値) • [string]$b = "1" # ⇦System.String (文字列) • [string]$b = 1 # ⇦System.String (文字列)
88.
89.
変数でなくても、先の型が優先される
90.
• 型の調べ方 • 「変数名.gettype()」 例:$a.gettype()
91.
92.
93.
型の変換 int32型(数値)に変換 • $a =
$a -as [int32] string型(文字列)に変換 • $a = $a -as [string]
94.
95.
変数にもプロパティやメソッドは存在。 ⇨パイプラインで Get-Member コマンドレ ットに渡して調べる
96.
文字列型
97.
98.
数値型
99.
100.
コマンドの出力結果を変数に代入する • 例 • $a
= ls • $a = (ls)[0]
101.
102.
a.txt の末尾に、 yyyyMMdd形式の日付を付与する例 ※ログローテーションなどに使用
103.
フルパス 拡張子 フォルダパス 拡張子無しのファイル名 日付(yyyyMMdd) 名称変更する処理
104.
net config workstation
の実行結果から、所属し ているドメイン名を変数格納する ※下の場合は「WORKGROUP」
105.
106.
バッチでドメイン名を変数格納してみる ※インタラクティブに動かす場合は ”%1” だが、バッチ ファイルとして動かす場合は
“%%1” と書く。
107.
for /f "tokens=3"
%1 in ('net config workstation ^|findstr /R /c:"^Workstation.*domain.*$"') do set domainname=%1
108.
配列
109.
配列 • $list =
@() # ⇦ 空配列作成 • $list = 1,2,3,4 # ⇦ 要素入り配列作成 • $list += 5,6,7,8 # ⇦要素追加① • $list += 9,”string” # ⇦要素追加②
110.
111.
文字列演算子・・・文字列として比較し、一致したものを出力 。 • -match #
正規表現比較 • -notmatch # 正規表現比較(不一致) • -like # ワイルドカード比較 • -notlike # ワイルドカード比較(不一致) • -replace # 置換
112.
113.
比較演算子・・・数値として比較し、一致したものを出力。 • -eq #
左辺が右辺と等しい • -ne # 左辺が右辺と等しくない • -ge # 左辺が右辺と等しい、または右辺より大きい • -gt # 左辺が右辺より大きい • -le # 左辺が右辺と等しい、または右辺より小さい • -lt # 左辺が右辺より小さい
114.
115.
連想配列 • $hash =
@{} # ⇦ 空配列作成 • $hash = @{key1=value1} # ⇦ 要素入り配列作成 • $hash += @{key1=value1; key2=value2} # ⇦要素追加① • $hash[key3] = value3 # ⇦要素追加② • $hash[key3] = new-value3 # ⇦値変更 • $hash.key1 # ⇦値取り出し
116.
117.
118.
119.
変数、配列の削除 • $a を削除する場合 •
Remove-Variable a
120.
121.
使用している変数・配列の確認 • Get-Variable
122.
123.
入出力
124.
• 標準出力 • Write-Output
“Hello” • echo “Hello” • “Hello” • 標準入力 • Read-Host
125.
126.
• ファイル出力 • “Hello”
|out-file Hello.txt • “漢字” |out-file 漢字.txt -encoding unicode ※漢字は文字化けするのでunicodeに変換する • ファイル入力 • gc Hello.txt # gc はGet-Contentのエイリアス • gc 漢字.txt
127.
128.
標準出力(>)をNORMAL.logに、 標準エラー出力(2>)をERROR.logに出力 リダイレクトも使えます!
129.
標準出力の切り替えによく使うリダイレクト記号「>」は、 「1>」の省略形。 1> ・・・・標準出力 2> ・・・・標準エラー出力 ※1番目のファイル記述子、という意味です。 同じ意味
130.
標準出力(>)をC:¥All.logに入れて、 そのあとに標準エラー出力(2>)を、 標準出力に混ぜる(&1)・・・・と、いつかの私は覚えました 。笑 >logfile 2>&1
131.
ちなみに、順番を入れ替える(2>&1 >logfile)と、うまく動きま せん。 コマンドの出力は標準出力が先に出るからです。 なので正しくは・・・・「先に出てきた標準出力(>)をlogfile に入れて、 次に出る標準エラー出力(2>)を、標準出力に混ぜる(&1)。」 です。
132.
と思ったら動いてる・・・・ Powershellすごい・・・ でもシェルスクリプトだと動かないから、 極力 ”>logfile 2>&1”
と書きましょう。
133.
参考:シェルスクリプトだと動きが変わる例
134.
• 特殊文字(よく使うもの) • エスケープ文字「`」 •
改行「`n」 • キャリッジリターン「`r」 • タブ「`t」
135.
Windowsの改行(CRLF)を特殊文字で表現 CR=`r LF=`n Windowsの改行(CRLF)をタブに置換 タブ=`t
136.
number.txtの1111を7777に置換
137.
Windowsの改行(CRLF)を####に置換した はずが、 変わらない・・・・
138.
解説:cat (Get-Content) は改行(CRLF)を区切りにして、 1行ずつ読み込み表示している。 そのため、読み込んだテキストの改行(CRLF)は 既に取り除かれているため置換できない。
139.
cat (Get-Content)の出力結果を、Out-Stringコマンドレッ トに渡す。 Out-Stringコマンドレットは受け取った出力を、 「ひとまとまりの文字列」 として出力する。
140.
出力結果は一見同 じ
141.
cat (Get-Content) の出力から、行末のCRLFは、取 り除かれている
142.
CR LF CR LF Out-String は受け取った出力を 「ひとまとまりの文字列」にする
143.
• CSV出力 • dir
|convertto-csv • dir |export-csv dir.csv -encoding unicode ※コマンドの出力をCSV形式に変換 • CSV入力 • Import-Csv dir.csv • (Import-Csv dir.csv).fullname # ヘッダ指定
144.
各プロパティ毎に列出力する
145.
Export-CSV でファイル出力する前に どういう形式で出力されるか コンソール上で確認するときに使う でも、わかりにくいよね・・・・
146.
スクロールできる Out-Gridview コマンドレ ットで ビュー表示できる。
147.
パイプライン出力を操作する (オブジェクト操作)
148.
• Where-Object (エイリアス:?) •
パイプラインから渡されるオブジェクト を1行ずつ特殊変数「 $_ 」に格納し、 スクリプトブロック内で比較を行い、結 果を出力する。比較には比較演算子、文 字列演算子を用いることができる。
149.
• dirコマンドの出力結果から、名前(ファイル 名、フォルダ名)に「a」を含む行を抽出す る例 dir |
? {$_.name -match “^.*a.*$” }
150.
正規表現(.*`.txt)に 一致したnameプロパティ を取り出す。 ※Where-Objectを使わない例
151.
dirコマンドレットの出力結果の中で、 nameプロパティが、 正規表現(.*`.txt)に 一致したレコード(オブジェクト)を取 り出す。 ※Where-Objectを使う 例
152.
? (Where-Object) を使うと、 コマンドレットの出力をフィルターで きる。 フィルターして、そこからさらに必要 なプロパティを取り出すことが可能。
153.
abcd.txt から”aaaa”を含む行を抜粋
154.
• Foreach-Object (エイリアス:%) •
パイプラインから渡されるオブジェクト を1行ずつ特殊変数「 $_ 」に格納し、 スクリプトブロック内で処理を行い、結 果を出力する。処理には標準のコマンド レットを用いる。
155.
パイプラインを経由して渡された各要 素を、 一つ一つ、 %{} 内のコマンド(echo “times:$_”
)に 渡す。 $_ には各要素が入る。
156.
dirコマンドレットの出力結果の 中から 各要素のfullnameプロパティを 出力
157.
? (Where-Object) と組み合わせ ること多し。
158.
• Measure-Object (エイリアス:measure) •
数字リストの最大値、最小値、平均値、 合計値、要素数を算出する • 行数を合計するオプションもある(-Line)
159.
1,2,3,4 の最大・最小値、合計、平 均を取得
160.
参考:ファイルサイズ取得
161.
• Select-String • 入力元のテキストやファイルから、指定 したテキストを検索する。unixのgrepコ マンド。検索には正規表現を用いる。ま たプロパティとして、一致した行の行番 号(linenumber)などを返す。
162.
abcd.txt から”aaaa”を含む行を出力
163.
abcd.txt から”abcd”を含む行の 行番号を出力 ※0ではなく1から始まる
164.
• Select-Object (エイリアス:select) •
プロパティ値を指定して取り出す。必要 な出力だけ参照したいときに使用。 export-csvのCSV出力サイズを小さくし たいときに便利だったり。
165.
必要な列を抜粋できる
166.
167.
• Group-Object • 入力オブジェクトを指定したプロパティ 値でグループ化する。
168.
配列を同じ要素でグループ 化 Aが一番多い(4回)
169.
• Sort-Object • 入力されたオブジェクトを昇順で並び替 え。降順にするときは
-desc をつける。
170.
昇順で並び替え
171.
降順で並び替え
172.
構文
173.
• For文 • 例: for
($i=1;$i -le 10;$i++) {“$i 回目”}
174.
1から10まで1ずつ加算 (10までインクリメント)
175.
個人的に使ったことのある実例。 (次のスライドに続く)
176.
先月の1日から最終日(上の例では31日)までの ログ(xxxx_yyyyMMdd.log)をローカルにコピーしてくる 。 $i -as [string]で文字列型に型変換し、 padleftメソッドで、10未満の数の前に”0”をつけている 。
177.
先月(2017/08)の1日から最終日(31日) のログが取れる ※画面はechoしてるだけで実際にコピーは してない
178.
• while文 • 例: while
($i -lt 10) {$i++;“$i 回目”} do{$i++;“$i 回目”} while ($i -lt 10)
179.
180.
特殊変数「$True」を用いた無限ループ。 netstat の結果から127.0.0.1を含むコネクシ ョンを 1秒間隔で出力
181.
• if文 • 文字列演算子や比較演算子を用いて比較する •
例: if ($i -lt 10) {“$i”} else {“over 10”} if (“$i” -match “^a$”) {“$i”} else {“x”}
182.
183.
• switch文 • 文字列演算子や比較演算子を用いて比較する •
if文でいう「else」は、「default」 を使う • 正規表現を使う際は -regex オプションを使う • 例: switch (“$a”) { “a” {“a”} default {“NOT a”} }
184.
文字列比較 オプション無し 完全一致 -regex 正規表現 -wildcard
ワイルドカード -casesensitive 大文字小文字区 別
185.
数値比較 ※一致したらbreakで抜 けることも可能(数値に 限らず)
186.
ブール値比較
187.
課題
188.
• 前提:Listener サービスの起動後、 Listener.logに、「Listener
completed notification to CRS on start」が出力されていな い場合、Listenerが内部で起動ハングしていま す。 • その場合、出力されていないことを検知し て、処置としてListenerを再起動する必要が あります。
189.
• 課題:Listenerサービスの起動処理後に、「 Listener completed
notification to CRS on start」 と出力されていれば、”OK”と出力し、出力され ていなければ”NG”と出力する処理(問題の検知部 分)を作成してください。
190.
• 条件:pid=xxxxで起動しました。」から3行( リスニングしています・・・・)までは毎回 必ず出力されているものとします。
191.
いちばん最後の起動。正常終了 。これをチェックしたい Listener.log 最後から1回前の起動。正常終了
192.
類似サンプル
193.
194.
# 今回の資料で記載しきれなかったもの.md エラー処理(try catch
finally / trap) 終了コード設定、判定(exit n / $lastexitcode) 引数の受け取り方($Args[n] / Param= / オプション化) .NetFrameworkの使い方
Télécharger maintenant