しばたテックブログ

PowerShellを中心に気分で書いている技術ブログです。

PowerShell

IISにMDwikiをホストする

小規模でお手軽な、できれば「Markdownで文章書いてアップして終わり」くらいお手軽なWikiサーバーが欲しくなり、いろいろ探してみたところMDwikiが良さそうだったので導入して試してみました。 github.com IISにMDwikiをホストする このMDwikiは基本的には…

Windows 10で利用可能なSSHサーバー、クライアントまとめ

Windows 10ではSSHサーバー、クライアントの機能が使える様になっているのですが、バージョンによって色々違いがあり自分でも混乱してきたのでわかる範囲でまとめました。 必要があれば随時更新します。 Microsoft SSH Server Windows 10 Anniversary Update…

Windows PowerShellとTLS 1.2

昨今のセキュリティ情勢を受けてトランスポート層の暗号化プロトコルにTLS 1.2を強制するサイトが増えてきています。 身近な例としては、GitHubが今年の2月にHTTPS通信においてTLS 1.2以前のプロトコルを廃止しています。 githubengineering.com 本エントリ…

PowerShell Core 6.0の初期セットアップスクリプトを作りました

blog.shibata.tech 前にPSCoreUpdateというPowerShell Coreのアップデートを自動化するモジュールを作ったとお知らせしました。 このエントリ中で、 なお、このモジュールはあくまで更新のためのツールなので最初にPowerShell Core 6.0をインストールするの…

PowerShell Core 6.0をデバッグ実行する - Visual Studio 2017編

前回の続き的な。 blog.shibata.tech 前回の時点では「まだVisual Studio 2017でのビルドはうまく動作しない」と説明しましたが、つい最近Visual Studioで動作させるための修正が完了したので実際に試してみました。 github.com はじめに 基本的なところは前…

PSCoreUpdateというPowerShellモジュールを公開しました

個人的な不便さからPowerShell Coreのアップデートを自動化するためのモジュールを作りました。 ソースと基本的な使い方はGitHubに上げています。 github.com 作った動機 現在、Windows環境においては一度インストールしたPowerShell Core 6.0のアップデート…

AutomationNullとは何なのか?

ちょっと前のはなしなのですがこちらのGistを読みました。 powershell-gives-you-wrongs.md · GitHub こちらのGistではPowerShellを使う上でハマりがちな罠について詳しく記述されておりPowerShellに対する非常に良い批判となっています。 で、このGistの中…

PowerShell Remoting over SSHを試す - 再び

以前に試した blog.shibata.tech ですが、PowerShell Core 6.0が正式リリースされ当時の内容では正しく動作しなくなっていたので改めてやり直しました。 PowerShell Remoting over SSHとは 従来のPowerShell Remoting Protocol(PSRP)では通信の下回りにHTTP/…

PowerShellの三項演算子について

あまりにも今更なはなしなのですが、根強い需要があるみたいなのでざっくりブログに書いておきます。 PowerShellの三項演算子 はじめに結論を書いておくと、現在、PowerShellに三項演算子はありません。 PowerShell 1.0 ~ PowerShell Core 6.0に至るまでど…

PowerShell Core 6.0 破壊的変更まとめ

公式情報はこちら。 https://github.com/PowerShell/PowerShell/blob/master/docs/BREAKINGCHANGES.md Breaking Changes for PowerShell 6.0 | Microsoft Docs 公式情報では結構説明が端折られており、元になったIssueやPull Requestを読み込まないとわかり…

PowerShell Core 6.0 新機能まとめ

基本的には公式ドキュメントの内容をベースに説明が不足している個所を補足してまとめています。 正確な情報が必要な場合は英語版の公式ドキュメントをあたってください。 公式ドキュメント 英語版 What's New in PowerShell Core 6.0 日本語版 PowerShell C…

VagrantのWinSSH Communicatorを試してみた

www.vagrantup.com Vagrant 1.9.4からWindowsゲストに対してWindowsにポートされたWin32-OpenSSHを使いSSHで通信を行うWinSSH Communicatorが導入されており*1、先日この機能を知り気になったので試してみました。 WinSSH Communicatorは利用者が全然いない…

PowerShell 6.0がリリースされました

既に日本語情報も出回っていますが、2018/1/10(PST)*1にPowerShell 6.0が正式リリースされました。 公式情報は以下になります。 blogs.msdn.microsoft.com 2016年にPowerShellがオープンソースになりPowerShell 6.0のアルファ版がリリースされてから約1年半…

Windows 7にPowerShell 6.0をインストールする - 再び

blog.shibata.tech の続きです。 前回はPowerShell 6.0アルファ版で試しましたが、今回はGAリリース直前のRC2で試しています。 基本的な手順は前回と変わらないのですが、前提条件が若干変わったため、その点を補足するかたちで本エントリを書きます。 前提…

PowerShell 6.0からジョブの実行に & が使える様になります

PowerShell 6.0 Beta.2からジョブの実行方法が拡張され、文の最後*1にアンパサンド(&)を付けることでジョブを起動することができる様になりました。 これはBash等のシェルにある機能と同等のものですが、PowerShellには従来からバックグラウンドで別プロセス…

PowerShell 6.0で範囲演算子(..演算子)が拡張される話

とあるPull RequestがきっかけでPowerShell 6.0 RC1から範囲演算子(..演算子)が拡張され、Int型だけでなくChar型も扱える様になりました。 本エントリではその内容について説明します。 範囲演算子でChar型が扱える様になります もともと範囲演算子(..)は、 …

PowerShellGetをアップデートしよう

PowerShell Advent Calendar 2017、18日目です。 qiita.com PowerShell 5.0以降、Windows 10やWindows Server 2016では標準でインストール済みのPowerShellGetの機能について、現時点での最新バージョンはVer.1.6.0なのですが、例えばWindows 10においてはFa…

続・Get-Randomで使われている乱数生成アルゴリズムについて調べてみた

PowerShell Advent Calendar 2017、13日目です。 qiita.com 以前に書いた、 blog.shibata.tech の続きになります。 本エントリではPowerShell 6.0でGet-Randomで使われている乱数生成アルゴリズムがどう変化したか調べた結果について説明します。 はじめに …

PowerShell Core 6.0をデバッグ実行する - Visual Studio Code編

PowerShell Advent Calendar 2017、11日目です。 qiita.com PowerShell 6.0のGAリリースも間近となりビルド・デバッグ手順も固まってきたと思えたので本エントリを書きます。 はじめに PowerShellがオープンソース化した時点でPowerShellのビルドはVisual St…

PowerShellにおける"配列リテラル"について

PowerShell Advent Calendar 2017、9日目です。 qiita.com 久しぶりのPowerShellの基本がわかっていなかったシリーズです。 以前のオープンソースカンファレンス2017 Hokkaidoでの登壇などで、ふつうに PowerShellには配列リテラルがあります。 と説明してい…

Application Request Routing(ARR)を使ったRedmineの設定について

blog.shibata.tech 以前に構築したWindows Server上のRedmineですが「IISと一緒に80番ポートでアクセスできる様にしたいなぁ。」と思ったのでリバースプロキシとしてApplication Request Routing(以降ARR)を導入してみました。 ARRを使ったRedmineの設定につ…

Windows 10のPowerShellモジュール変更点まとめ

まとめ、というか作成予定地です。 Windows 10の各バージョンごとでのPowerShellモジュールの変更点についてGistに簡単なメモをまとめたのでリンクを張っておきます。 時間があればちゃんとした記事としてまとめ直したいと思います。 変更点の調査方法 各バ…

PowerShell 6.0からファイル出力に関わるエンコーディングが変わります

現在開発中のPowerShell 6.0ではクロスプラットフォーム化することを主な契機としてファイル出力のエンコーディングに大きな破壊的変更が入ります。 現在最新のPowerShell 6.0 Beta.9でその変更が一部反映されたため本エントリで紹介します。 1. -Encodingパ…

Pester 4がリリースされました

というか結構前にしていました。 The first stable release of Pester 4 is out! Thanks to all contributors, most importantly @MSH_Dave @Jaykul @alx9r @ITpraktyk & me @nohwnd pic.twitter.com/wRm50U9GjM— Pester (@PSPester) 2017年9月13日 9月の中…

Pesterでカスタムアサーションを行う - 正式版

blog.shibata.tech 以前Pesterの機能をハックしてカスタムアサーションを行うエントリを書きましたが、Pester 4.0.5より正式にカスタムアサーションを追加する方法が提供されました。 本エントリではその方法を紹介します。 Pesterでカスタムアサーションを…

PowerShell 6.0からPowerShellのプログラム名がpwshに変わります

発端はGitHubのこちらのIssueから github.com もともと「PowerShellのプログラム名であるpowershell.exe(powershell)は長いので略称があった方が良いよね。」という提案から始まっています。 新しいPowerShellの略称について 先のIssueを見ればわかりますが…

PowerShell 6.0でアイコンが新しくなる話とPosh-ChanことPowerShellさんについて

ちょっとしたことですが意外と大きな変化です。 PowerShell 6.0の新しいアイコン PowerShell 6.0の開発においてこれまでは味気ないコンソールアプリのデフォルトアイコンが使用されていましたが、PowerShell 6.0 Beta.8から黒色をベースとした新しいアイコン…

PowerShell既定のフォーマット設定に介入する方法について (補足)

前回のエントリに対する補足を軽く書いておきます。 blog.shibata.tech format.ps1xmlのDefaultSettingsタグ PowerShell既定のフォーマット設定に介入するには、適当なforamt.ps1xmlファイルを作ってPropertyCountForTableタグに更新したい値を設定すればよ…

PowerShell既定のフォーマット設定に介入する方法について

きっかけはカナダのMVP、Thomas Raynerさんのブログエントリから。 thomasrayner.ca PowerShellにおいて予め*.format.ps1xmlによって表示書式が定められてないオブジェクトは、表示されるプロパティの数が4個以下の場合はTableフォーマットを、5個以上になる…

PowerShellでmkdirしたディレクトリにcdする方法

クラスメソッドさんの dev.classmethod.jp が人気なので便乗してPowerShellだとどうすれば良いか軽く書いておきます。 本エントリの内容はWindows 10、PowerShell 5.1、PSReadline 1.2な環境で動作確認しています。 1. $$自動変数を使う Bashでは$_が「ひと…