tech.guitarrapc.cóm

Technical updates

PowerShell

PowerShell で 関数実行結果の型をパイプラインの先に伝搬する

PowerShell といえば、型です。 文字列じゃなくて型。ということは、インテリセンスが何を使えるか教えてくれるわけです。インテリセンス使えないと辛いですよね。 自作の関数を作ったことがある人は多いと思います。でも、作った関数の出力結果がパイプライ…

PowerShell のString評価の方法と罠

以前 Gist にまとめていたんですが、記事にするのを忘れていたのです。 PowerShell は、文字列の中に変数を埋め込む時にいくつかの手法があります。でもその評価の違いって以外と知られてないようなので、まとめておきましょう。 目次 目次 5つの方法 インデ…

PowerShell で オブジェクトの数を計測するんです?

オブジェクトの数を数える時によく使われるものといえば? Measure-Object でしょうか? System.Linq.Enumerable でしょうか? 今回はさらっとちょっとだけ見てみましょう。 目次 目次 個数のカウント .Countプロパティって気持ち悪いけど便利 .Countプロパ…

PowerShell でTCP遅延Ack 設定を操作する

ネットワークチューニングの 1ついえば、TCP遅延ACK や Nagle ですね。 TCP遅延ACK - Wikipedia Windows ではどちらの設定も「レジストリを操作して再起動する」ことで調整可能です。 じゃぁ実際どうやって操作するか?TCP遅延Ackを操作するサンプルを紹介し…

Html Agility Pack と SgmlReader を使って PowerShell でスクレイピングしてみる

WebページのスクレイピングをPowerShell 単独でやるのはあまり楽しくありません。 が、C# で用いるように Html Agility Pack や SGMLReader を使えば楽に触れます。 今回は、 某ブログをこれらを使って少し見てみましょう。 目次 目次 HTMLパースに何を使う…

PowerShell で System.Diagnostic.Process にて BeginOutputReadLine() を使う

PowerShell の罠Cmdlet といえば Start-Process ですね。 ほんとアレ罠。きらい。大っ嫌いです。 で、代わりに何を使うかっていうと、System.Diagnostic.Process クラスです。ふつーに C# で書くのと同じように挙動が想定通りなので安心です。 Process クラ…

CI を 用いない 自動Pullをしたくて PowerShell でCIする

なにか作ったので公開しておきましょう。 目次 目次 なにがしたいの どう使うの 前提 実行 実行している様子 他の利用例 何ができるの ヘルプ Git認証情報の自動修復 gitリポジトリのClone/Pull Pull後のカスタムスクリプト実行 自動化 スケジュールをスクリ…

PowerShell DSC Advent Calendar 2014 : Day 13 PUSH と PULL の切り替え と MOF構成

これは、PowerShell DSC Advent Calendar 2014 - Adventar 13日目の記事です。 時空の歪みが観測でき(略 PUSH 飽きたので(おぅ、PULL にしましょう。というのは冗談ですが、実際PUSHで伝えることは伝えたのでもうありません。次はPULLです。 目次 目次 LCM …

PowerShell DSC Advent Calendar 2014 : Day 12 あるべき状態と現在の差異を確認する

これは、PowerShell DSC Advent Calendar 2014 - Adventar 12日目の記事です。 時空の歪みが観測できてます? 今日は対象ノードをあるべき状態に収束させたことを確認してみましょう。 目次 目次 ノードに適用されたコンフィグレーションを確認する Get-DscC…

PowerShell で SelectManyもどきが欲しい

PowerShell では、IEnumerable[] は相性悪いわけですが、シーケンスを平坦にしたいものはしたく。 PowerShell の 標準出力の配列は展開される 特性を使うと、あたかもForeach-Objectが平坦化してるように見えますがびみょーんです。 なので、Zipに続き Selec…

PowerShell DSC Advent Calendar 2014 : Day 11 Configurationに記述したパスワードの暗号化

これは、PowerShell DSC Advent Calendar 2014 - Adventar 11日目の記事です。 時空のゆがみ。 さて、前回まででシンプルなコンフィグレーションをプッシュで反映させる方法を見てきました。 今回は、センシティブな情報。そう、パスワードをどうやってリモ…

PowerShell DSC Advent Calendar 2014 : Day 10 Push であるべき状態へ収束させる

これは、PowerShell DSC Advent Calendar 2014 - Adventar 10日目の記事です。 ん?時差が?気のせいです。 今日は対象ノードをあるべき状態に収束させる方法として PUSHモードを使います。 目次 目次 PUSH振り返り 想定するあるべき状態 実行 コンフィグレ…

PowerShell DSC Advent Calendar 2014 : Day 9 Resourceの配置

これは、PowerShell DSC Advent Calendar 2014 - Adventar 9日目の記事です。 さて、9日目ったら9日目です。 今日はリソース(Resource) の配置です。標準のリソース以外の操作をしたくなったらこれですね!では見てみましょう。 目次 目次 リソースってなん…

PowerShell DSC Advent Calendar 2014 : Day 8 ConfigurationData を使ったロールや属性の指定

これは、PowerShell DSC Advent Calendar 2014 - Adventar 8日目の記事です。 7日目は、MOFファイルの生成について説明しました。コンフィグレーションの実行でMOFファイルがコンパイルされる。はい簡単です。 8日目の今日は、コンフィグレーションの実行時…

PowerShell DSC Advent Calendar 2014 : Day 7 MOFファイル の生成

これは、PowerShell DSC Advent Calendar 2014 - Adventar 7日目の記事です。 6日目は、コンフィグレーションの記述について説明しました。ベストプラクティスから現状のコンフィグレーションの問題、v5での改善点など多岐にわたっています。 今日は書いたコ…

PowerShell DSC Advent Calendar 2014 : Day 6 Configuration の記述

これは、PowerShell DSC Advent Calendar 2014 - Adventar 6日目の記事です。 5日目は、DSC のエンジンである LCM(Local Configuration Manager) について説明しました。 今日は、コンフィグレーション(Configuration)構文と記述について見ていきましょう。…

PowerShell DSC Advent Calendar 2014 : Day 5 Local Configuration Manager(LCM)というDSC のエンジン

これは、PowerShell DSC Advent Calendar 2014 - Adventar 5日目の記事です。 4日目は、DSC の2つのモード PUSH、PULL と利用シーンを説明しました。 今日はDSCのエンジンについてずらっとみてみましょう。シンプルですが大事な機能なので抑えておきましょう…

PowerShell DSC Advent Calendar 2014 : Day 4 Pull と Push

これは、PowerShell DSC Advent Calendar 2014 - Adventar 4日目の記事です。 3日目に、DSC の用語をChefと照らし合わせながら説明しました。 Chef が、CM ツールとして備える基本的な機能を DSC も備えていることが何となく見えましたか? さて4日目は、当…

PowerShell DSC Advent Calendar 2014 : Day 3 Chef と PowerShell DSC のこれまでと用語まとめ

これは、PowerShell DSC Advent Calendar 2014 - Adventar 3日目の記事です。 1日目、2日目を通して、DSC や CMツールがなぜ必要なのかその意義について説明しました。頑張らなくてもできるけど、めんどくさいことを任せられるっていうのは IaaS -> PaaS -> …

PowerShell DSC Advent Calendar 2014 : Day 2 なぜ Configuration Management が必要なのか

これは、PowerShell DSC Advent Calendar 2014 - Adventar 2日目の記事です。 1日目は、以下の2点を説明しました。 DSC は データセンターのあらゆる機器の Configuration Management(CM => 構成管理) Platform となることを志向していること *1 ただ構成管…

PowerShell DSC Advent Calendar 2014 : Day 1 PowerShell DSC とは何か。

これは、PowerShell DSC Advent Calendar 2014 - Adventar 1日目の記事です。 2013年10月に公開された PowerShell DSC ですが、 Azure を中心に Windows プラットフォームで静かに、しかし着実に実績を残しつつあります。 初日は、PowerShell DSC についてさ…

PowerShell v3 でも ファイルのハッシュ値 (File hash) を確認したい

ファイルの変更を検知する時に一般的に行われるのが ハッシュ値の比較です。ファイルの変更検知はすなわち改ざんがないか、ファイルが更新されてないかなど、あいまいではない変化の検知を意味するのでこういうのって大事です。*1 日付やファイル名での判断…

PowerShell Desired State Configuration for DevOps and ALM practitioners の公開とConfig as Code

先日、Visual Studio ALM Rangers から、表題のガイダンスが公開されました。 CodePlex Archive Microsoft を含む ALM Rangers が公開したこの資料は、Windows において PowerShell DSC を利用した Config as Code がDevOps に果たす役割を具体的に、シナリ…

第4回PowerShell 勉強会資料の公開 PowerShell - When

先日、2014/Oct/12 に大阪で行われた 第4回PowerShell勉強会では、開発のシーンをターゲットにして PowerShell っていつ使うのかを考えてみました。 第 4 回 PowerShell 勉強会 - Japan PowerShell User Group (JPPOSH) | Doorkeeper 今回、資料公開のご紹介…

第3回PowerShell 勉強会の資料公開 Dive into PowerShell DSC PULL

ということで、今更....!やっと公開しました:) 前回、2014/July/12 に東京で行われた第3回PowerShell勉強会では、第2回で行ったPUSHに続いて 「PowerShell DSC PULL」について紹介しました。 第 3 回 PowerShell 勉強会 - Japan PowerShell User Group (JPPO…

Windows 10 Tech Preview における PowerShell をみてみよう

はい。みます。 目次 目次 What's New in Windows PowerShell Win + X Search PSVersionTable Cmdlet数 Ctrl + v ISE PowerShell.exe のプロパティ さらっとNew Feature に触れておきましょう。 RunSpace Debugging PowerShell Script Debugging Different V…

PowerShell Script の エディタ と Visual Studio

PowerShellスクリプトを書く時のエディタには、いくつか人気のものがあります。 PowerShell ISE Visual Studio PoweGUI PowerShell Plus や いくつか他にも利用者がいるものはあるのですが、いずれも完成度が上記より低い印象が強いため、3つに絞っています…

Disposable にする時に考慮するべきこと

先日 neuecc と話していて「サーバーをDisposableにする時って何が問題になるの?」 といわれたので、その時に答えた内容を備忘録も兼ねて。 目次 目次 Disposable にするとは 捨てられるサーバーと捨てられないサーバー 捨てられないサーバー 捨てられるサ…

PowerShellのパイプライン遊び

Hey, Script Guy! Blog にある記事があります。 簡単にいうと、こういうことが PowerShell のワンライナーでできるよー。というものです。 Fun with the number one in #PowerShell: 1..8 | ForEach {$n="1" * $_;"{0,9} x {0,9} = {1}" -f $n, ("$n * $n" |…

PowerShell DSC Resource の公開

謎社では C# を中心として、PowerShell が隙間産業的に必要なところで使われています。 その一つが PowerShell Desired State Configuration (DSC) です。 今回、謎社で作成/利用している一部の DSC Resource を公開しました。 目次 目次 GitHub 公開内容 Sc…