Submit Search
Upload
Powershell勉強会 v5 (こちらが最新です。)
•
Download as PPTX, PDF
•
4 likes
•
3,115 views
T
Tetsu Yama
Follow
Powershellの最新は v6 2017/12/30現在 目次を付けました! 基礎編はこれで完結です。 .Netモジュールの使い方等も解説したいですが、後々きっと。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 237
Download now
Recommended
PowerShell 初心者向け勉強会資料
使ってみよう PowerShell
使ってみよう PowerShell
Kazuki Takai
ビジネス、ITトレーニングのトレノケートの無料セミナー「はじめてのPowerShell」資料
はじめてのPowerShell
はじめてのPowerShell
Trainocate Japan, Ltd.
自社勉強会用資料
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Tetsu Yama
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
AWSとオンプレミスと繋ぐときに知っておきたいルーティングの基礎知識。 JAWS DAYS 2021の発表資料です。
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
TW社内勉強会用の資料です。内容は自社のインフラ技術者向けのPowerShellのプログラミング基礎となっています。基本的な使い方と文法の説明が中心です。
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
Shigeharu Yamaoka
JJUG CCC 2019 Spring Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
2021年11月26日LT発表
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
Recommended
PowerShell 初心者向け勉強会資料
使ってみよう PowerShell
使ってみよう PowerShell
Kazuki Takai
ビジネス、ITトレーニングのトレノケートの無料セミナー「はじめてのPowerShell」資料
はじめてのPowerShell
はじめてのPowerShell
Trainocate Japan, Ltd.
自社勉強会用資料
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Tetsu Yama
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
AWSとオンプレミスと繋ぐときに知っておきたいルーティングの基礎知識。 JAWS DAYS 2021の発表資料です。
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
TW社内勉強会用の資料です。内容は自社のインフラ技術者向けのPowerShellのプログラミング基礎となっています。基本的な使い方と文法の説明が中心です。
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
Shigeharu Yamaoka
JJUG CCC 2019 Spring Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
2021年11月26日LT発表
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
虎の穴 開発室
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
2019/08/23 第21回 Tokyo Jazug Night https://jazug.connpass.com/event/139300/ 動画: https://www.youtube.com/watch?v=YMAV8aqb9pk
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
2023/02/08 開催ニフクラ エンジニア ミートアップ「自宅サーバー環境構築超入門 2023年度版」における富士通クラウドテクノロジーズ株式会社 クラウドインフラ本部ファウンデーションサービス部 春名 英明のセッションスライド。 自宅サーバー環境に、Intel NUCなどを利用してvSphereの仮想環境の上にkubesprayを使ったKubernetesを導入するといった内容。自宅サーバー用の機材紹介や、選び方のコツなども。
自宅k8s/vSphere入門
自宅k8s/vSphere入門
富士通クラウドテクノロジーズ株式会社
2019年7月19日開催「インフラエンジニアが次に進むために ~ Azure インフラ管理超実践セミナー」の2つ目のセッション「Azure Monitor Logsで実現するモダンな管理手法」のスライド。
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
例外設計における大罪 Jun 27, 2012 @ java-ja
例外設計における大罪
例外設計における大罪
Takuto Wada
20191123 JJUG Serverless 時代の Java について
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
Datadog 入門に関するプレゼンテーションです
はじめての datadog
はじめての datadog
Naoya Nakazawa
PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
従来のWebアプリケーションとSPAの違いに着目し、Spring Boot × Vue.jsでSPAを作る際のポイントやハマりどころを紹介します。
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
ver1.0 公開 ver1.1 ディスクイメージを直接操作する方法を追加 (2015/02/20)
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
Swaggerを使ってAPI Gateway
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
SQLインジェクションを・・・駆逐してやる!! この世から・・・一匹残らず!! (PHPカンファレンス2015)
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
日本マイクロソフト株式会社 Digital Sales 事業本部 Digital Cloud Solution Architect 上坂 貴志 クロスプラットフォームに対応した .NET Core、.NET 5 を得てリリースされた .NET 6は待望の LTS (Long-term Support)です。新規開発であれば .NET 6 での開発を検討できますが、.NET Framework で作成された既存のシステムはどうすれば良いでしょうか。 .NET Framework は version 4.8 を最後に新機能の追加予定は今のところありません。今後のことを考えて .NET 6 へのアップグレードを検討したいところですね。 このセッションでは .NET Framework から .NET 6 へのアップグレードについての様々な情報をお伝えします。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
OSSコンソーシアム DB比較セミナー(2018/1/26)での講演資料です。
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
BigQuery の仕組みを深掘りします。BigQuery をどう使うのがベストなのか?クラウドのメリットを生かしたマネージド DWH としての魅力と運用におけるベストプラクティスを説明します。
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
2022年1月22日に開催した Windows Server & Cloud User Group Japan 第27回勉強会のセッション資料です。PowerShell 7.2 を中心とした最近の PowerShell 関連の Update について紹介します。
最近の PowerShell について
最近の PowerShell について
Kazuki Takai
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
Add domain to existing forest.
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Michio Koyama
自社勉強会用。 Powershell 初心者にも基礎からわかるように書いてみましたん。 目次をつける予定。 => v5 で目次つけました!
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
Powershell勉強会
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
More Related Content
What's hot
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Apache Kafka Meetup Japan #3 https://kafka-apache-jp.connpass.com/event/58619/ 発表資料
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
2019/08/23 第21回 Tokyo Jazug Night https://jazug.connpass.com/event/139300/ 動画: https://www.youtube.com/watch?v=YMAV8aqb9pk
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
2023/02/08 開催ニフクラ エンジニア ミートアップ「自宅サーバー環境構築超入門 2023年度版」における富士通クラウドテクノロジーズ株式会社 クラウドインフラ本部ファウンデーションサービス部 春名 英明のセッションスライド。 自宅サーバー環境に、Intel NUCなどを利用してvSphereの仮想環境の上にkubesprayを使ったKubernetesを導入するといった内容。自宅サーバー用の機材紹介や、選び方のコツなども。
自宅k8s/vSphere入門
自宅k8s/vSphere入門
富士通クラウドテクノロジーズ株式会社
2019年7月19日開催「インフラエンジニアが次に進むために ~ Azure インフラ管理超実践セミナー」の2つ目のセッション「Azure Monitor Logsで実現するモダンな管理手法」のスライド。
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
例外設計における大罪 Jun 27, 2012 @ java-ja
例外設計における大罪
例外設計における大罪
Takuto Wada
20191123 JJUG Serverless 時代の Java について
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
Datadog 入門に関するプレゼンテーションです
はじめての datadog
はじめての datadog
Naoya Nakazawa
PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
従来のWebアプリケーションとSPAの違いに着目し、Spring Boot × Vue.jsでSPAを作る際のポイントやハマりどころを紹介します。
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
ver1.0 公開 ver1.1 ディスクイメージを直接操作する方法を追加 (2015/02/20)
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
Swaggerを使ってAPI Gateway
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
SQLインジェクションを・・・駆逐してやる!! この世から・・・一匹残らず!! (PHPカンファレンス2015)
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
日本マイクロソフト株式会社 Digital Sales 事業本部 Digital Cloud Solution Architect 上坂 貴志 クロスプラットフォームに対応した .NET Core、.NET 5 を得てリリースされた .NET 6は待望の LTS (Long-term Support)です。新規開発であれば .NET 6 での開発を検討できますが、.NET Framework で作成された既存のシステムはどうすれば良いでしょうか。 .NET Framework は version 4.8 を最後に新機能の追加予定は今のところありません。今後のことを考えて .NET 6 へのアップグレードを検討したいところですね。 このセッションでは .NET Framework から .NET 6 へのアップグレードについての様々な情報をお伝えします。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
OSSコンソーシアム DB比較セミナー(2018/1/26)での講演資料です。
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
BigQuery の仕組みを深掘りします。BigQuery をどう使うのがベストなのか?クラウドのメリットを生かしたマネージド DWH としての魅力と運用におけるベストプラクティスを説明します。
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
2022年1月22日に開催した Windows Server & Cloud User Group Japan 第27回勉強会のセッション資料です。PowerShell 7.2 を中心とした最近の PowerShell 関連の Update について紹介します。
最近の PowerShell について
最近の PowerShell について
Kazuki Takai
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
Add domain to existing forest.
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Michio Koyama
What's hot
(20)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
自宅k8s/vSphere入門
自宅k8s/vSphere入門
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
例外設計における大罪
例外設計における大罪
Serverless時代のJavaについて
Serverless時代のJavaについて
はじめての datadog
はじめての datadog
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
最近の PowerShell について
最近の PowerShell について
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Active Directoryドメインを作ってみよう ~フォレストに新しいツリーのドメインを追加~
Similar to Powershell勉強会 v5 (こちらが最新です。)
自社勉強会用。 Powershell 初心者にも基礎からわかるように書いてみましたん。 目次をつける予定。 => v5 で目次つけました!
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Tetsu Yama
Powershell勉強会
Powershell基礎_20180521用
Powershell基礎_20180521用
Tetsu Yama
更新版 10/25用
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Tetsu Yama
10/25
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Tetsu Yama
2010/5/29 「技術ひろば.net」発表資料 収録ビデオはこちら http://technet.microsoft.com/ja-jp/edge/video/ff973102
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
TW社内勉強会用の資料です。内容は自社のインフラ技術者向けのPowerShellのプログラミング基礎となっています。基本的な使い方と文法の説明が中心です。 ※第1回と内容が少し被っているのは前回できなかった参加者がいるためです
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
Shigeharu Yamaoka
シェルスクリプトワークショップの資料です。
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
bsdhack
2012年5月18日 XPagesDay でのプレゼンテーション
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
Cloud OS MVP Roadshow 2014年6月 (2014/06/14 開催) のセッション資料です。
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai
2005年7月30日 XWJ (XOOPS West Japan)2005 神戸市中小企業支援センター 「新・XOOPS実践カスタマイズ」
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
Tom Hayakawa
2014/09/06 実施の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
CHEFの必要性、概要、設定例について説明しています。 それから、Dockerとの比較も少し
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
Maho Takara
2015年7月11日、日本マイクロソフト品川本社で行われたイベント「Interact × Cloud Samurai Roadshow 2015 年 7 月」の登壇資料です。 デモ動画はYouTubeをご覧ください。 https://www.youtube.com/watch?v=ZnMJdJtS1EE https://www.youtube.com/watch?v=QOUYmU3E7nA https://www.youtube.com/watch?v=a9mEnmQjymw
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
Satoru Nasu
StackStorm Meetup JP #11(https://youtu.be/I-pThNJ7q6c)の発表資料
StackStorm MeetupJP #11
StackStorm MeetupJP #11
Ohyama Hiroyasu
2021-05-28 に実施しました StackStorm MeetupJP #11 の発表資料です。
StackStorm MeetupJP #11
StackStorm MeetupJP #11
Ohyama Hiroyasu
2017/06/30の講義で用いたもう少し踏み込んだ入門です
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
tak9029
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
2014/09/06 開催の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
2018年6月13日に実施した勉強会の講演資料です。 [TensorFlow分散学習]Horovodによる分散学習の実装方法と解説 発表者:LeapMind Inc. Hideaki Masuda
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
LeapMind Inc
PHP 5.3用フレームワーク「FuelPHP」の紹介プレゼン資料
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Similar to Powershell勉強会 v5 (こちらが最新です。)
(20)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell基礎_20180521用
Powershell基礎_20180521用
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
StackStorm MeetupJP #11
StackStorm MeetupJP #11
StackStorm MeetupJP #11
StackStorm MeetupJP #11
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
Recently uploaded
2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
2024/05/25 serverless Meetup osaka
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
https://iotlt.connpass.com/event/318403/
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
Ayachika Kitazaki
Security-JAWS【第33回】 勉強会 https://s-jaws.doorkeeper.jp/events/173294
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
keikoitakurag
第23回 Customer系エンジニア座談会 の LT 公開用スライドです。 https://customer-x-engineer.connpass.com/event/314639/ クラウド電話システム CallConnect に興味を持った方はこちら。 https://www.callconnect.jp/?slideshare お気軽にフォロー/DM お待ちしています。 https://x.com/24guchia https://www.facebook.com/eiichi.nishiguchi
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
瑛一 西口
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料) 2024年4月24日(水) 株式会社NTTデータグループ 技術開発本部 笠原 辰仁
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
YouTube nnabla channelの次の動画で利用したスライドです。 【AI論文解説】Consistency ModelとRectified Flow https://youtu.be/3IKCrAPe55k Consistency ModelとRectified Flowに関連する以下の論文を紹介しています。 Consistency models(解説編Part1で紹介) - “Consistency Models,” ICML 2023. - “Improved Techniques for Training Consistency Models,” ICLR 2024. - “Consistency Trajectory Models: Learning Probability Flow ODE Trajectory of Diffusion,” ICLR 2024. Rectified flow(解説編Part2で紹介) - “Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow,” ICLR 2023. - “InstaFlow: One Step is Enough for High-Quality Diffusion-Based Text-to-Image Generation,” ICLR 2024.
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
サイバーエージェントAI事業部の新卒研修で利用したスライドを公開します。
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
Recently uploaded
(11)
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
Powershell勉強会 v5 (こちらが最新です。)
1.
Windows Powershell 基礎 勉強会 2017/08/30(Wed)
自社・・・・第1回 2017/09/27(Wed) 自社・・・・第2回 2017/10/25(Wed) 自社・・・・第3回 2017/11/29(Wed) 自社・・・・第4回 山本 てつや
2.
目次 ・自己紹介 ・Powershellとは (他のスクリプト言語との比較) ・Powershellを実行するための準備 ・実行ポリシー ・基本的なコマンドレットの使い方、書式 ・変数 ・配列 ・入出力 ・パイプライン ・構文 ・課題 ・エラー処理 ・関数 ・スクリプトで引数を受け取る
3.
山本 てつや (通称:やまぞん) •
金融系システムの更改案件に参画。担当はビルド、配 布処理機能の更改。(2017/09〜2017/3) => 作りきる • Windows 系のシステムを担当することが多く、 Powershellを学ぶようになった。 • 文系大学出身。SE は4年目。お手柔らかに。(気持ち はいつだって真剣。) • 今の目標はAWS / Ruby を学んでインフラエンジニア として成長すること ( もっと人の役に立つぞ ) • AWS Solution Architect Associate 取得@2017/11/19 • 次は、Professional => 2018/01 2週目 • 今話題のWEBサイト、「yamazoon.com 」の管理人
4.
1. Powershellとは (他のスクリプト言語との比較)
5.
インフラエンジニアから見たPowershell 1. WSH(VBS)に変わって登場した管理用スクリプト 言語 2. 高機能
(WSFC、Active Directory、Hyper-Vのモジ ュールもある) 3. WinRMを使ったリモートサーバ管理が可能
6.
他の言語との比較
7.
1. バッチ (.cmd
/ .bat) 1. MS-DOS時代からある、今でも利用者の多いスクリプト 2. コマンドがたくさんあって結構なんでもできる 3. 実行ファイルや他のスクリプトを呼び出すのが得意 4. プログラミング言語で行うような構造的な文法記述には 不向き( for 文が独特だったり、エスケープが難しい) 5. 今後もOSバージョンに合わせて拡張され続ける★
8.
2. VBS (.vbs) 1.
Visual Basic のスクリプト版で、兄弟はVBA 2. Windows歴の長い一定数の人から根強い人気 3. バッチで出来ないことをするために使うことが多 い 4. 今後拡張される予定はない★
9.
3. Jscript (.js) 1.
JavascriptのMS版として、VBSと同時期に誕生 2. 現場では2〜3年に1回ぐらい見かける気がする ( かなり私見かも) 3. 今後拡張される予定はない★
10.
4. Powershell (.ps1) 1.
2006年に誕生した割と新しいスクリプト 2. 各社がPowershell用にコマンドレットを出している(例:AWS Tools For Powershell、VMware PowerCLI) 3. 利用者数が急増中 4. 今後もOSバージョンに合わせて拡張され続ける★ 5. GithubよりLinux,MacOS向けにも展開中 6. 標準で付属しているIDE (ISEエディタ) が便利
11.
参考:ISEエディタ Powershellのアイコンを右 クリックすると出てくる
12.
補完機能 実行ボタン 検索機能 スクリプト記述エ リア
13.
リモートホストのPowershellに 接続
14.
VBS vs Powershell
15.
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)
16.
凡例: ◎ :
インストール済み △ : インストール可能 - : 未対応 バージョン 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 - - - ◎ △
17.
バージョン 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 - - - - ◎
18.
Powershell を実行するための準備
19.
必要なもの 1. PC (Windows
7 以上のスペックであれば可)
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.
おまけ:配列ではオブジェクトへのリファレンスを保持している
116.
連想配列 • $hash =
@{} # ⇦ 空配列作成 • $hash = @{key1=value1} # ⇦ 要素入り配列作成 • $hash += @{key1=value1; key2=value2} # ⇦要素追加① • $hash[key3] = value3 # ⇦要素追加② • $hash[key3] = new-value3 # ⇦値変更 • $hash.key1 # ⇦値取り出し
117.
118.
119.
120.
変数、配列の削除 • $a を削除する場合 •
Remove-Variable a
121.
122.
使用している変数・配列の確認 • Get-Variable
123.
124.
入出力
125.
• 標準出力 • Write-Output
“Hello” • echo “Hello” • “Hello” • 標準入力 • Read-Host
126.
127.
• ファイル出力 • “Hello”
|out-file Hello.txt • “漢字” |out-file 漢字.txt -encoding unicode ※漢字は文字化けするのでunicodeに変換する • ファイル入力 • gc Hello.txt # gc はGet-Contentのエイリアス • gc 漢字.txt
128.
129.
標準出力(>)をNORMAL.logに、 標準エラー出力(2>)をERROR.logに出力 リダイレクトも使えます!
130.
標準出力の切り替えによく使うリダイレクト記号「>」は、 「1>」の省略形。 1> ・・・・標準出力 2> ・・・・標準エラー出力 ※1番目のファイル記述子、という意味です。 同じ意味
131.
標準出力(>)をC:¥All.logに入れて、 そのあとに標準エラー出力(2>)を、 標準出力に混ぜる(&1)・・・・と、いつかの私は覚えました 。 >logfile 2>&1
132.
ちなみに、順番を入れ替える(2>&1 >logfile)と、うまく動きま せん。 コマンドの出力は標準出力が先に出るからです。 なので正しくは・・・・「先に出てきた標準出力(>)をlogfile に入れて、 次に出る標準エラー出力(2>)を、標準出力に混ぜる(&1)。」 です。
133.
と思ったら動いてる・・・・ Powershellすごい・・・ でもシェルスクリプトだと動かないから、 極力 ”>logfile 2>&1”
と書きましょう。
134.
参考:シェルスクリプトだと動きが変わる例
135.
• 特殊文字(よく使うもの) • エスケープ文字「`」 •
改行「`n」 • キャリッジリターン「`r」 • タブ「`t」
136.
Windowsの改行(CRLF)を特殊文字で表現 CR=`r LF=`n Windowsの改行(CRLF)をタブに置換 タブ=`t
137.
number.txtの1111を7777に置換
138.
Windowsの改行(CRLF)を####に置換した はずが、 変わらない・・・・
139.
解説:cat (Get-Content) は改行(CRLF)を区切りにして、 1行ずつ読み込み表示している。 そのため、読み込んだテキストの改行(CRLF)は 既に取り除かれているため置換できない。
140.
cat (Get-Content)の出力結果を、Out-Stringコマンドレッ トに渡す。 Out-Stringコマンドレットは受け取った出力を、 「ひとまとまりの文字列」 として出力する。
141.
出力結果は一見同 じ
142.
cat (Get-Content) の出力から、行末のCRLFは、取 り除かれている
143.
CR LF CR LF Out-String は受け取った出力を 「ひとまとまりの文字列」にする
144.
• CSV出力 • dir
|convertto-csv • dir |export-csv dir.csv -encoding unicode ※コマンドの出力をCSV形式に変換 • CSV入力 • Import-Csv dir.csv • (Import-Csv dir.csv).fullname # ヘッダ指定
145.
各プロパティ毎に列出力する
146.
Export-CSV でファイル出力する前に どういう形式で出力されるか コンソール上で確認するときに使う でも、わかりにくいよね・・・・
147.
スクロールできる Out-Gridview コマンドレ ットで ビュー表示できる。
148.
パイプライン
149.
• Where-Object (エイリアス:?) •
パイプラインから渡されるオブジェクト を1行ずつ特殊変数「 $_ 」に格納し、 スクリプトブロック内で比較を行い、結 果を出力する。比較には比較演算子、文 字列演算子を用いることができる。
150.
• dirコマンドの出力結果から、名前(ファイル 名、フォルダ名)に「a」を含む行を抽出す る例 dir |
? {$_.name -match “^.*a.*$” }
151.
正規表現(.*`.txt)に 一致したnameプロパティ を取り出す。 ※Where-Objectを使わない例
152.
dirコマンドレットの出力結果の中で、 nameプロパティが、 正規表現(.*`.txt)に 一致したレコード(オブジェクト)を取 り出す。 ※Where-Objectを使う 例
153.
? (Where-Object) を使うと、 コマンドレットの出力をフィルターで きる。 フィルターして、そこからさらに必要 なプロパティを取り出すことが可能。
154.
abcd.txt から”aaaa”を含む行を抜粋
155.
• Foreach-Object (エイリアス:%) •
パイプラインから渡されるオブジェクト を1行ずつ特殊変数「 $_ 」に格納し、 スクリプトブロック内で処理を行い、結 果を出力する。処理には標準のコマンド レットを用いる。
156.
パイプラインを経由して渡された各要 素を、 一つ一つ、 %{} 内のコマンド(echo “times:$_”
)に 渡す。 $_ には各要素が入る。
157.
dirコマンドレットの出力結果の 中から 各要素のfullnameプロパティを 出力
158.
? (Where-Object) と組み合わせ ること多し。?で抽出、パイプで 渡して%で処理が基本になる。
159.
• Measure-Object (エイリアス:measure) •
数字リストの最大値、最小値、平均値、 合計値、要素数を算出する • 行数を合計するオプションもある(-Line)
160.
1,2,3,4 の最大・最小値、合計、平 均を取得
161.
参考:ファイルサイズ取得
162.
• Select-String • 入力元のテキストやファイルから、指定 したテキストを検索する。unixのgrepコ マンド。検索には正規表現を用いる。ま たプロパティとして、一致した行の行番 号(linenumber)などを返す。
163.
abcd.txt から”aaaa”を含む行を出力
164.
abcd.txt から”abcd”を含む行の 行番号を出力 ※0ではなく1から始まる
165.
• Select-Object (エイリアス:select) •
プロパティ値を指定して取り出す。必要 な出力だけ参照したいときに使用。 export-csvのCSV出力サイズを小さくし たいときに便利だったり。
166.
必要な列を抜粋できる
167.
168.
• Group-Object • 入力オブジェクトを指定したプロパティ 値でグループ化する。
169.
配列を同じ要素でグループ 化 Aが一番多い(4回)
170.
• Sort-Object • 入力されたオブジェクトを昇順で並び替 え。降順にするときは
-desc をつける。
171.
昇順で並び替え
172.
降順で並び替え
173.
構文
174.
• For文 • 例: for
($i=1;$i -le 10;$i++) {“$i 回目”}
175.
1から10まで1ずつ加算 (10までインクリメント)
176.
個人的に使ったことのある実例。 (次のスライドに続く)
177.
先月の1日から最終日(上の例では31日)までの ログ(xxxx_yyyyMMdd.log)をローカルにコピーしてくる 。 $i -as [string]で文字列型に型変換し、 padleftメソッドで、10未満の数の前に”0”をつけている 。
178.
先月(2017/08)の1日から最終日(31日) のログが取れる ※画面はechoしてるだけで実際にコピーは してない
179.
• while文 • 例: while
($i -lt 10) {$i++;“$i 回目”} do{$i++;“$i 回目”} while ($i -lt 10)
180.
181.
特殊変数「$True」を用いた無限ループ。 netstat の結果から127.0.0.1を含むコネクシ ョンを 1秒間隔で出力
182.
• if文 • 文字列演算子や比較演算子を用いて比較する •
例: if ($i -lt 10) {“$i”} else {“over 10”} if (“$i” -match “^a$”) {“$i”} else {“x”}
183.
184.
• switch文 • 文字列演算子や比較演算子を用いて比較する •
if文でいう「else」は、「default」 を使う • 正規表現を使う際は -regex オプションを使う • 例: switch (“$a”) { “a” {“a”} default {“NOT a”} }
185.
文字列比較 オプション無し 完全一致 -regex 正規表現 -wildcard
ワイルドカード -casesensitive 大文字小文字区 別
186.
数値比較 ※一致したらbreakで抜 けることも可能(数値に 限らず)
187.
ブール値比較
188.
課題
189.
• 前提:Listener サービスの起動後、 Listener.logに、「Listener
completed notification to CRS on start」が出力されていな い場合、Listenerが内部で起動ハングしていま す。 • その場合、出力されていないことを検知し て、処置としてListenerを再起動する必要が あります。
190.
• 課題:Listenerサービスの起動処理後に、「 Listener completed
notification to CRS on start」 と出力されていれば、”OK”と出力し、出力され ていなければ”NG”と出力する処理(問題の検知部 分)を作成してください。
191.
• 条件:pid=xxxxで起動しました。」から3行( リスニングしています・・・・)までは毎回 必ず出力されているものとします。
192.
いちばん最後の起動。正常終了 。これをチェックしたい Listener.log 最後から1回前の起動。正常終了
193.
課題解答 https://qiita.com/lucky_happy_jicchoku_engineer/items/b3fcd85 dfd719cbf5c2d
194.
エラー処理
195.
•エラー時に処理を止める?続ける? • $ErrorActionPreference • エラー発生時の動きを定義している特殊変数 項目 (主なもの) 説明 continue 赤文字でエラー内容を表示し、 処理を継続する
★デフォルト silentlycontinue 赤文字でエラー内容を表示せずに、 処理を継続する stop 赤文字でエラー内容を表示し、 処理を中断する
196.
• 変更するには下記のようにする $ErrorActionPreference =
“stop”
197.
⇨ スクリプト先頭に記述すると、 スクリプトで使用しているコマンド全てに適用される。 (つまり、記述した箇所以降から適用される) ⇨各コマンドごとに制御することも可能。 後述しますが、$ErrorActionPreferenceをstopにした際の動作は、try-catch構 文とtrap構文で異なるため、変更をお勧めしません。$ErrorActionPreferenceはそっ としておく。 スクリプトを書くときは、各コマンドの後処理を考えることになるので、各コマ ンドごとに動作定義するのが良いと考えます。
198.
各コマンドごとに制御する オプションに -erroraction (エイリアス:
-ea)を使う • dir notexistfolder -erroraction “stop” • dir notexistfolder -ea “stop” • -erroraction はすべてのコマンドレットに存在する共通パラ メータ。
199.
•エラー時に処理を止めた後に、何かする
200.
1. エラーが発生した場合に検知し、何かコマンドを 実行する (try~catch~finally)
201.
try { エラー発生の可能性があるコマンド1 -ea
“stop” エラー発生の可能性があるコマンド2 -ea “stop” } catch [エラーの型] { エラー発生時に実行するコマンド return または exit (処理終了の場合) } finally { # エラー発生有無に関わらず最後に実行するコマンド } $command after try-catch-finally ※[エラーの型]は省略可能。 省略した場合、すべてのエラーがcatchされる(Exceptionクラス)
202.
※ReturnまたはExitをしない場合、 tryで失敗してcatchに入り、finallyを実行した後は、 finallyブロックの次の行にいく。 ※スクリプトの先頭で$ErrorActionPreferenceの値をstopにしていて も、です。 (後述のTrap構文では、stopのときスクリプトが終了します。) (tryブロック中にある、catchされたコマンド以後の行のみ、スキップ する)
203.
• catch内でエラー発生時の処理を行い、関数やスクリプトを終了す るには下記を記述。 Return・・・・引数を返して関数を終了する ※関数は後述 Exit・・・・・引数を返してスクリプトを終了する
204.
→コーディング次第では、try-catchのリトライ処理も可能です。 ググると出てきます。(残念ながらretry文は無い)
205.
• コマンドで発生したエラーの型を調べる方法 $error.exception.gettype().fullname • 例:Copy-Item
でコピー元ファイルがない時のエラー型 System.Management.Automation.ItemNotFoundException • 例:Copy-Item でコピー先フォルダがない時のエラー型 System.IO.IOException
206.
* クラスライブラリ(2017/11/26現在) https://msdn.microsoft.com/en- us/library/ms714469(v=vs.85).aspx * Windows
PowerShell コマンドレットのタスク別ガイド https://technet.microsoft.com/ja- jp/scriptcenter/dd772285.aspx
207.
• エラー型ごとに複数のcatchを作る例(catchは複数可能)
208.
⇨ 複数catchを作るとき、 どこか1つの[エラー型]に”exception”を指定すると、全てのエラーが ”exception”のcatchに入ってしまう。 ⇨ エラー型を指定する場合、指定しないエラー型をcatchできなく なる。(他にやり方あるかも)
209.
Powershellスクリプトでは、(.Netの)エラー型での処理分岐はあまり 現実的ではない。(コマンドレットの例外エラー型を網羅するのは至 難に思う。) [エラー型]に”exception”を記載 (または記載自体を省略しても同じ)し 、全てのエラーをcatchするのが良いと考える。 フォルダの存在確認などは、Test-Pathコマンドなど、確認用のコマ ンドが用意されている。事前に実行して、switch文などでブール値判 定しておくとよい、かも。
210.
tryに一連の処理を記述し、エラーがあればcatchしてログ出力する例
211.
• $Error って何? •
コマンドで発生したエラーの出力を保存している特殊変数(読み 取り専用)
212.
• $Error をログファイルに出力 $Error
>> c:¥err.log 注意点:$errorは追記されていくため、$error を出力する処理が複数回ある場合 、前回のエラーがもう一度出力されてしまう。 →各コマンドでの出力をリダイレクトすると同じになる 例: dir hogefolder -ea stop 1>>c:¥err.log 2>&1
213.
2. スクリプトの途中でエラーが発生した場合に検知し、 何かコマンドを実行する (trap)
214.
trap { 1. エラー発生時に実行するコマンドレット(複数可) コマンドレット1・・・・ コマンドレット2・・・・ 2.
continue (処理継続) または break (処理終了) }
215.
■補足 trapは、スクリプト文中のどこに記載しても同じように動作する。 (先頭でも最後尾でも同じ動き) Trapは、$ErrorActionPreference = “stop” が指定されている場合、 または
実行したコマンドレットに -ea = “stop” が指定されている場合のエラー発生時に作動する。
216.
• 後続処理の継続または終了 continue・・・エラーの発生した次の行から処理を継続する break・・・・エラーの発生した行でスクリプトを終了する trap文で break
または continue を記載しない場合、 次ページのようになる。 挙動がわかりづらいので、記載するのがオススメ。
217.
• $ErrorActionPreference =
“stop” を設定した状態で、コマ ンドレットの実行エラーが発生したとき ⇨ trap文が実行され、そのままスクリプト終了 • $ErrorActionPreference = “continue”(デフォルトのまま)を 設定した状態で、コマンドレットのオプションに”-ea stop”を指定し、実行エラーが発生した時 ⇨ trap文が実行され、エラーの発生した次の行から 処理継続
218.
• trap ステートメント内で、日付時刻と
$Error の内容をログファイルに 出力し、スクリプトを終了する例 trap { get-date >> c:¥err.log $Error >> c:¥err.log break }
219.
•最後の補足 • trap文とtry~catch文では、try~catch文が優先される。(try~catch文でcatchしたエラ ーはtrapには掛からない) • try~catch文のfinallyブロックは省略できる •
エラー処理についてはインターネットにあまり情報がないため、本資料が役に立つ ことを祈る。 • 基本的にtry-catchで補足して処理し、意図しない例外のために一応trapを書いてお く。$ErrorActionPreferenceは触らないで、continueのままにしておく。エラーは 各コマンド毎に取得するようにする。コマンドにはエラー時停止命令を書いておく 。 # コマンド -ea stop >>$log 2>&1 上記↑にてtry-catchやtrapに引っかかり、処理ごとにログが出せる
220.
関数
221.
• 関数定義 • 引数なし function
関数名 { コマンド } • 引数あり function 関数名 (引数) { コマンド }
222.
# 例1:関数 function hello-yamazoon
($first,$last) { “Hello ${last} ${first} !! Welcome to Yamazoon !!” } # 関数実行 hello-yamazoon “Yamamoto” “Tetsuya” ⇨ Hello Tetsuya Yamamoto !! Welcome to Yamazoon !!
223.
# 例2:begin process
end 関数 function count-value { begin { $count = 0 } process { $count++ echo “$count 回目の値 : ${_}” } end { echo “数え終わりました。” } }
224.
# 実行 1,1,2,3,5,8,13 |count-value #
結果 1 回目の値 : 1 2 回目の値 : 1 3 回目の値 : 2 4 回目の値 : 3 5 回目の値 : 5 6 回目の値 : 8 7 回目の値 : 13 数え終わりました。
225.
• 関数の結果返却 Return・・・・引数を返して関数を終了する Exit・・・・・引数を返してスクリプトを終了する
226.
例:第一引数をそのまま返却する、test-return 関数 関数を実行した 結果を変数格納
227.
関数の実行結果には、returnの引数だけではなく、 標準出力が含まれる。
228.
なので、コマンドの実行結果の出力などは消すようにする。 command >$null 2>&1
# $null はnullを表す特殊変数
229.
スクリプトで引数を受け取る
230.
• パターン1/2 • スクリプト側にデフォルトの定義なし •
第一引数・・・・args[0] • 第二引数・・・・args[1] • 第三引数・・・・args[2] • 第四引数・・・・args[3]
231.
•quotion.ps1
232.
233.
• パターン2/2 • スクリプト側にデフォルトの定義あり
234.
•quotion2.ps1
235.
236.
• 多い引数を連想配列にまとめて与える
237.
• おまけ:終了系コマンドまとめ Exit・・・・・引数を返してスクリプトを終了する Return・・・・引数を返して関数を終了する Break・・・・switch文の中:switch文を抜ける while文の中 :while文を抜ける trap文の中
:スクリプトを終了する Continue・・・trap文の中 :スクリプトを継続する
Download now