SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
使ってみよう PowerShell
PowerShell とは
 シェル
 conhost 上でホストされる powershell.exe
 Desktop / Server Core で利用可能
 スクリプト言語
 固有の言語体系・構文
 固有のコマンド(コマンドレット)
 スクリプト実行環境
 powershell.exe を実行エンジンとしてスクリプトファイルを実行
実は…
 PowerShell には大きく2種類ある
 Windows PowerShell
 PowerShell 1.0 ~ 5.1
 Windows 専用 / Windows Server 2008 以降はビルトイン
 .NET Framework 依存 / WMF の一部
 PowerShell Core
 PowerShell 6.0 ~
 Windows / macOS / Linux
 .NET Core 依存
 互換性は、あったりなかったり
 言語としては互換
 ランタイムは(完全には)互換ではない
PowerShell の特徴
 オブジェクトベース
 処理(パイプライン)を流れるのはオブジェクト
 型がある・型を意識する
 但し、デフォルトの設定だとかなり緩い
 暗黙的にある程度型変換(キャスト)される
 システム管理系のコマンドレットが充実している
 Windows Server の管理作業はほぼ全て実行可能
 概ね、Windows Server 2012 R2 以降
 GUI の管理ツールは、裏で PowerShell のコマンドレットを実行
何ができるか?
 基本、何でもできる
 Linux のシェルでやっているような事
 プロセス一覧で、特定ユーザのプロセスをフィルタして、メモリ使用量の高い順から10件分を表示
 テキストを処理・整形して、特定の URL へ POST
 ファイルのハッシュ値の計算
 GUI を表示
 ASDK Installer
 .NET Framework のユーザインタフェースクラスのインスタンスを生成
 イベントを監視して、イベントトリガーで処理を実行
 特定のフォルダにファイルが置かれたら、zip圧縮
 リモート処理
 .NET Framework / Core のクラスを直接操作
 WMI へのアクセス
何に使うか?(得意な事)
 Windows の管理
 管理ツールのすべての操作は、基本的に実行可能
 Azure の管理
 Azure Cloud Shell
 Office 365 / Microsoft 365 の管理
 Non-Microsoft Products の管理
 VMware vSphere (vCenter / ESXi) 等
Azure 等は PowerShell に依存しない管理コマンドも存在
 Azure CLI (az コマンド) (for Windows / macOS / Linux)
 Docker image
必ずしも PowerShell を使わないといけない、という訳ではない
PowerShell で実行可能なコマンド
 コマンドレット(Cmdlets)
 Pure powershell command
 エイリアス
 PowerShell の環境で定義されたエイリアス
 システム(デフォルト)定義とユーザ定義
 関数(Function)
 外部コマンド
オブジェクト
 コマンド(外部コマンド以外)の返り値はオブジェクト
 Get-Service
 $s = Get-Service
 $s.GetType()
 Object[]
 $s[0]
 $s[0].GetType()
 ServiceController
 Get-Service -Name wuauserv
 Get-Service -Name wuauserv | Stop-Service
 Get-Service -Name wuauserv
 (Get-Service -Name wuauserv).Start()
? と %
 ? : Where-Object の Alias
 オブジェクト(の配列)にフィルターをかける
 条件式が $true となるオブジェクト(の配列)を返す
 Get-Service | ? { $_.Status -eq "Running" }
 Get-Service | ? Status -eq "Running"
 % : ForEach-Object の Alias
 オブジェクトの配列を受け取り各要素に対して処理を実行する
 1..6 | % { Test-Connection -ComputerName 10.0.0.$_ -Count 1 -ErrorAction SilentlyContinue }
 $Error[0]
Sort
 sort : Sort-Object のエイリアス
 オブジェクトの配列を受け取り、指定したプロパティでソート
 複数プロパティを指定可能
 昇順・降順指定可能
 Get-Process
 Get-Process | Sort-Object -Property Id
 Get-Process | Sort-Object -Property WorkingSet –Descending
 Get-Process | Sort-Object -Property WorkingSet,CPU -Descending
 Get-Command sort -All
Select と uniq
 select : Select-Object の Alias
 オブジェクトの配列を受け取り
1. 特定のプロパティのみのサブセットに変換して返す
2. 先頭から or 末尾から指定した個数を返す
 Get-Process | Select-Object -Property ProcessName
 Get-Process | Sort-Object -Property WorkingSet -Descending | Select-Object -First 10
 Get-Unique
 オブジェクトの配列を受け取り、重複を排除して返す
 Get-Process | Sort-Object ProcessName | Select-Object ProcessName | Get-Unique –AsString
 Get-Process | Sort-Object ProcessName | Select-Object ProcessName -Unique
その他
 cat
 Get-Content
 grep
 Select-String -Path
 Select-String -Path C:¥Apps¥config.ini -Pattern "^[^#]“
 Get-Content -Path C:¥Apps¥config.ini | Select-String -Pattern "^[^#]“
 wc
 (Object[]).Length
 (Get-Process).Length
 (Get-Process).Count
-match と -replace
 演算子 -match
 文字列 -match 正規表現
 "abcde" -match "bc“
 "abcde" -match "Bc“
 "abcde" -cmatch "Bc"
 演算子 -replace
 文字列 -replace 正規表現 置換表現
 "abcde" -replace "abc","ABC“
 "abcde" -replace "aBc","ABC“
 "abcde" -creplace "aBc","ABC“
 "abcde" -replace "^.*(bc).*$",'$1‘
表示する
 ft : Format-Table の Alias
 表形式に整形して、テキストとして出力
 Get-ChildItem C:¥ | ft Name,Mode,LastWriteTime,Length
 fl : Format-List の Alias
 リスト形式に整形して、テキストとして出力
 Get-ChildItem C:¥ | fl Name,Mode,LastWriteTime,Length
組み合わせると…
 Get-Process -IncludeUserName | ? UserName -eq “user1" | Sort-Object -
Property WorkingSet -Descending | Select-Object -First 10 | ft
Id,ProcessName,@{Label="Mem(GB)";Expression={[int]($_.WorkingSet/1024
/1024)}}
 プロセス一覧を取得
 ユーザ名でフィルタ
 メモリ使用量で降順ソート
 上位10件を取得
 整形して表示
リモーティング
 いくつかの操作方法
 -ComputerName パラメータ
 Invoke-Command
 New-PSSession / Enter-PSSession
 Get-VM
 $cred = Get-Credential
 $pass = ConvertTo-SecureString "Password" -AsPlainText -Force
 $cred = New-Object System.Management.Automation.PsCredential "Administrator",$pass
 $s = New-PSSession -VMName win2016 -Credential $cred
 Get-PSSession
 Enter-PSSession $s
 hostname
 Get-PSSession | Remove-PSSession
どの層でリモート処理されているのか注意
PowerShell のリモーティングを使用する場合、Remoting のバージョン及び認証などに注意
PowerShell の使い方
 PowerShell らしい使い方
 なるべくオブジェクトのまま取り扱う
 出力する際に変換する
 テキストへの変換
 テキストの整形
PowerShell は遅い?
 遅い…かもしれないし、速いかもしれない
 「遅い」とは?
 基本的に、コードの実行については、他の言語
(スクリプトベースの言語)と大きな差異はない
 遅い(コストの高い)処理を多用するようなコードは遅い
 PowerShell 実行エンジンの初期化には、少し時間がかかる
 .NET Framework の実行環境を整えるのに時間がかかる
 Windows 10 Ver.1803 だとかなり改善されている
困ったときには
 Get-Help
 Get-Command
 -Syntax
 Get-Member
 Object.GetType()
[Appx.1] PowerShell を使う
 PowerShell Console
 PowerShell ISE
 Visual Studio Code
 PowerShell Gallery
 yum のリポジトリみたいなもの
 運営は Microsoft が行っているが、誰でも登録可能
 PowerShell DSC
 あるべき設定に実際の設定をあわせる機構
 Ansible みたいなもの
[Appx.2] コマンドが無い…時には
 .NET Framework のオブジェクトを直接操作
 例 ハッシュ取得
 WMI / CIM のオブジェクトを取得して操作
 例 OS設定変更

Más contenido relacionado

La actualidad más candente

できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
ClojureではじめるSTM入門
ClojureではじめるSTM入門ClojureではじめるSTM入門
ClojureではじめるSTM入門sohta
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learninglispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep LearningSatoshi imai
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へTakaki Hoshikawa
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Masahito Zembutsu
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 
広告がうざい
広告がうざい広告がうざい
広告がうざいGen Ito
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門Akira Shimosako
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...Insight Technology, Inc.
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったかHiroshi Tokumaru
 
from Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Worksfrom Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu WorksZhen Wei
 

La actualidad más candente (20)

Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道 淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
 
ClojureではじめるSTM入門
ClojureではじめるSTM入門ClojureではじめるSTM入門
ClojureではじめるSTM入門
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learninglispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へ
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門
 
広告がうざい
広告がうざい広告がうざい
広告がうざい
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
はじめてのPowerShell
はじめてのPowerShellはじめてのPowerShell
はじめてのPowerShell
 
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
 
from Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Worksfrom Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Works
 

Similar a 使ってみよう PowerShell

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Tetsu Yama
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングKazuki Takai
 
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版junichi anno
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Ryo RKTM
 
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回Shigeharu Yamaoka
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive ExtensionsShin Ise
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4AdvancedTechNight
 
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようPHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようYuya Takeyama
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発Nomura Yusuke
 
PowerShell 紹介
PowerShell 紹介PowerShell 紹介
PowerShell 紹介tsudaa
 

Similar a 使ってみよう PowerShell (20)

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 
AWS Tools for Windows PowerShell
AWS Tools for Windows PowerShellAWS Tools for Windows PowerShell
AWS Tools for Windows PowerShell
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
 
CLRH_120414_WFTDD
CLRH_120414_WFTDDCLRH_120414_WFTDD
CLRH_120414_WFTDD
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
 
Spring AMQP × RabbitMQ
Spring AMQP × RabbitMQSpring AMQP × RabbitMQ
Spring AMQP × RabbitMQ
 
運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回運用構築技術者の為のPSプログラミング第2回
運用構築技術者の為のPSプログラミング第2回
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
20080524
2008052420080524
20080524
 
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようPHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
 
PowerShell 紹介
PowerShell 紹介PowerShell 紹介
PowerShell 紹介
 

Más de Kazuki Takai

Azure Arc Automanage Machine Configuration による構成の管理と適用
Azure Arc Automanage Machine Configuration による構成の管理と適用Azure Arc Automanage Machine Configuration による構成の管理と適用
Azure Arc Automanage Machine Configuration による構成の管理と適用Kazuki Takai
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Kazuki Takai
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionKazuki Takai
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
Arc 対応サーバーへの SSH アクセス
Arc 対応サーバーへの SSH アクセスArc 対応サーバーへの SSH アクセス
Arc 対応サーバーへの SSH アクセスKazuki Takai
 
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...Kazuki Takai
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeKazuki Takai
 
Windows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewWindows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewKazuki Takai
 
Past and Future of PowerShell
Past and Future of PowerShellPast and Future of PowerShell
Past and Future of PowerShellKazuki Takai
 
Introducing Windows Terminal
Introducing Windows TerminalIntroducing Windows Terminal
Introducing Windows TerminalKazuki Takai
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringKazuki Takai
 
5分で分かる Windows Server 2019 HCI 超概要
5分で分かる Windows Server 2019 HCI 超概要5分で分かる Windows Server 2019 HCI 超概要
5分で分かる Windows Server 2019 HCI 超概要Kazuki Takai
 
Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019Kazuki Takai
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるKazuki Takai
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows ContainersKazuki Takai
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell CoreKazuki Takai
 
Windows とコンテナの話
Windows とコンテナの話Windows とコンテナの話
Windows とコンテナの話Kazuki Takai
 
Azure Stack の使い道 - 2017年11月版 -
Azure Stack の使い道 - 2017年11月版 -Azure Stack の使い道 - 2017年11月版 -
Azure Stack の使い道 - 2017年11月版 -Kazuki Takai
 

Más de Kazuki Takai (20)

Azure Arc Automanage Machine Configuration による構成の管理と適用
Azure Arc Automanage Machine Configuration による構成の管理と適用Azure Arc Automanage Machine Configuration による構成の管理と適用
Azure Arc Automanage Machine Configuration による構成の管理と適用
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
 
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox Edition
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
Arc 対応サーバーへの SSH アクセス
Arc 対応サーバーへの SSH アクセスArc 対応サーバーへの SSH アクセス
Arc 対応サーバーへの SSH アクセス
 
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...
Insight into Azure Active Directory #02 - Azure AD B2B Collaboration New Feat...
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & Scope
 
Windows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewWindows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition Overview
 
Azure Arc 概要
Azure Arc 概要Azure Arc 概要
Azure Arc 概要
 
Past and Future of PowerShell
Past and Future of PowerShellPast and Future of PowerShell
Past and Future of PowerShell
 
Introducing Windows Terminal
Introducing Windows TerminalIntroducing Windows Terminal
Introducing Windows Terminal
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover Clustering
 
5分で分かる Windows Server 2019 HCI 超概要
5分で分かる Windows Server 2019 HCI 超概要5分で分かる Windows Server 2019 HCI 超概要
5分で分かる Windows Server 2019 HCI 超概要
 
Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019Application Platform としての Windows Server 2019
Application Platform としての Windows Server 2019
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows Containers
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell Core
 
Windows とコンテナの話
Windows とコンテナの話Windows とコンテナの話
Windows とコンテナの話
 
DSC 再入門
DSC 再入門DSC 再入門
DSC 再入門
 
Azure Stack の使い道 - 2017年11月版 -
Azure Stack の使い道 - 2017年11月版 -Azure Stack の使い道 - 2017年11月版 -
Azure Stack の使い道 - 2017年11月版 -
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/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論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

使ってみよう PowerShell

  • 2. PowerShell とは  シェル  conhost 上でホストされる powershell.exe  Desktop / Server Core で利用可能  スクリプト言語  固有の言語体系・構文  固有のコマンド(コマンドレット)  スクリプト実行環境  powershell.exe を実行エンジンとしてスクリプトファイルを実行
  • 3. 実は…  PowerShell には大きく2種類ある  Windows PowerShell  PowerShell 1.0 ~ 5.1  Windows 専用 / Windows Server 2008 以降はビルトイン  .NET Framework 依存 / WMF の一部  PowerShell Core  PowerShell 6.0 ~  Windows / macOS / Linux  .NET Core 依存  互換性は、あったりなかったり  言語としては互換  ランタイムは(完全には)互換ではない
  • 4. PowerShell の特徴  オブジェクトベース  処理(パイプライン)を流れるのはオブジェクト  型がある・型を意識する  但し、デフォルトの設定だとかなり緩い  暗黙的にある程度型変換(キャスト)される  システム管理系のコマンドレットが充実している  Windows Server の管理作業はほぼ全て実行可能  概ね、Windows Server 2012 R2 以降  GUI の管理ツールは、裏で PowerShell のコマンドレットを実行
  • 5. 何ができるか?  基本、何でもできる  Linux のシェルでやっているような事  プロセス一覧で、特定ユーザのプロセスをフィルタして、メモリ使用量の高い順から10件分を表示  テキストを処理・整形して、特定の URL へ POST  ファイルのハッシュ値の計算  GUI を表示  ASDK Installer  .NET Framework のユーザインタフェースクラスのインスタンスを生成  イベントを監視して、イベントトリガーで処理を実行  特定のフォルダにファイルが置かれたら、zip圧縮  リモート処理  .NET Framework / Core のクラスを直接操作  WMI へのアクセス
  • 6. 何に使うか?(得意な事)  Windows の管理  管理ツールのすべての操作は、基本的に実行可能  Azure の管理  Azure Cloud Shell  Office 365 / Microsoft 365 の管理  Non-Microsoft Products の管理  VMware vSphere (vCenter / ESXi) 等 Azure 等は PowerShell に依存しない管理コマンドも存在  Azure CLI (az コマンド) (for Windows / macOS / Linux)  Docker image 必ずしも PowerShell を使わないといけない、という訳ではない
  • 7. PowerShell で実行可能なコマンド  コマンドレット(Cmdlets)  Pure powershell command  エイリアス  PowerShell の環境で定義されたエイリアス  システム(デフォルト)定義とユーザ定義  関数(Function)  外部コマンド
  • 8. オブジェクト  コマンド(外部コマンド以外)の返り値はオブジェクト  Get-Service  $s = Get-Service  $s.GetType()  Object[]  $s[0]  $s[0].GetType()  ServiceController  Get-Service -Name wuauserv  Get-Service -Name wuauserv | Stop-Service  Get-Service -Name wuauserv  (Get-Service -Name wuauserv).Start()
  • 9. ? と %  ? : Where-Object の Alias  オブジェクト(の配列)にフィルターをかける  条件式が $true となるオブジェクト(の配列)を返す  Get-Service | ? { $_.Status -eq "Running" }  Get-Service | ? Status -eq "Running"  % : ForEach-Object の Alias  オブジェクトの配列を受け取り各要素に対して処理を実行する  1..6 | % { Test-Connection -ComputerName 10.0.0.$_ -Count 1 -ErrorAction SilentlyContinue }  $Error[0]
  • 10. Sort  sort : Sort-Object のエイリアス  オブジェクトの配列を受け取り、指定したプロパティでソート  複数プロパティを指定可能  昇順・降順指定可能  Get-Process  Get-Process | Sort-Object -Property Id  Get-Process | Sort-Object -Property WorkingSet –Descending  Get-Process | Sort-Object -Property WorkingSet,CPU -Descending  Get-Command sort -All
  • 11. Select と uniq  select : Select-Object の Alias  オブジェクトの配列を受け取り 1. 特定のプロパティのみのサブセットに変換して返す 2. 先頭から or 末尾から指定した個数を返す  Get-Process | Select-Object -Property ProcessName  Get-Process | Sort-Object -Property WorkingSet -Descending | Select-Object -First 10  Get-Unique  オブジェクトの配列を受け取り、重複を排除して返す  Get-Process | Sort-Object ProcessName | Select-Object ProcessName | Get-Unique –AsString  Get-Process | Sort-Object ProcessName | Select-Object ProcessName -Unique
  • 12. その他  cat  Get-Content  grep  Select-String -Path  Select-String -Path C:¥Apps¥config.ini -Pattern "^[^#]“  Get-Content -Path C:¥Apps¥config.ini | Select-String -Pattern "^[^#]“  wc  (Object[]).Length  (Get-Process).Length  (Get-Process).Count
  • 13. -match と -replace  演算子 -match  文字列 -match 正規表現  "abcde" -match "bc“  "abcde" -match "Bc“  "abcde" -cmatch "Bc"  演算子 -replace  文字列 -replace 正規表現 置換表現  "abcde" -replace "abc","ABC“  "abcde" -replace "aBc","ABC“  "abcde" -creplace "aBc","ABC“  "abcde" -replace "^.*(bc).*$",'$1‘
  • 14. 表示する  ft : Format-Table の Alias  表形式に整形して、テキストとして出力  Get-ChildItem C:¥ | ft Name,Mode,LastWriteTime,Length  fl : Format-List の Alias  リスト形式に整形して、テキストとして出力  Get-ChildItem C:¥ | fl Name,Mode,LastWriteTime,Length
  • 15. 組み合わせると…  Get-Process -IncludeUserName | ? UserName -eq “user1" | Sort-Object - Property WorkingSet -Descending | Select-Object -First 10 | ft Id,ProcessName,@{Label="Mem(GB)";Expression={[int]($_.WorkingSet/1024 /1024)}}  プロセス一覧を取得  ユーザ名でフィルタ  メモリ使用量で降順ソート  上位10件を取得  整形して表示
  • 16. リモーティング  いくつかの操作方法  -ComputerName パラメータ  Invoke-Command  New-PSSession / Enter-PSSession  Get-VM  $cred = Get-Credential  $pass = ConvertTo-SecureString "Password" -AsPlainText -Force  $cred = New-Object System.Management.Automation.PsCredential "Administrator",$pass  $s = New-PSSession -VMName win2016 -Credential $cred  Get-PSSession  Enter-PSSession $s  hostname  Get-PSSession | Remove-PSSession どの層でリモート処理されているのか注意 PowerShell のリモーティングを使用する場合、Remoting のバージョン及び認証などに注意
  • 17. PowerShell の使い方  PowerShell らしい使い方  なるべくオブジェクトのまま取り扱う  出力する際に変換する  テキストへの変換  テキストの整形
  • 18. PowerShell は遅い?  遅い…かもしれないし、速いかもしれない  「遅い」とは?  基本的に、コードの実行については、他の言語 (スクリプトベースの言語)と大きな差異はない  遅い(コストの高い)処理を多用するようなコードは遅い  PowerShell 実行エンジンの初期化には、少し時間がかかる  .NET Framework の実行環境を整えるのに時間がかかる  Windows 10 Ver.1803 だとかなり改善されている
  • 19. 困ったときには  Get-Help  Get-Command  -Syntax  Get-Member  Object.GetType()
  • 20. [Appx.1] PowerShell を使う  PowerShell Console  PowerShell ISE  Visual Studio Code  PowerShell Gallery  yum のリポジトリみたいなもの  運営は Microsoft が行っているが、誰でも登録可能  PowerShell DSC  あるべき設定に実際の設定をあわせる機構  Ansible みたいなもの
  • 21. [Appx.2] コマンドが無い…時には  .NET Framework のオブジェクトを直接操作  例 ハッシュ取得  WMI / CIM のオブジェクトを取得して操作  例 OS設定変更