tech.guitarrapc.cóm

Technical updates

PowerShell

WeatherHacks を触ってみる

Twitter を眺めていると面白そうなのをみつけたので、自分ならどう書くか考えてました。 https://www.baku-dreameater.net/archives/8741#more-8741www.baku-dreameater.net ただやるのでは楽しくないので、PowerShell との比較です。 目次 目次 コードサン…

Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる

ネットワークキャプチャといえば、Wireshark や Microsoft Message Analyzer が定番です。今回、USB や Bluetooth のキャプチャもできることを教わりました。 USBなど の通信ログは ETW (Event Tracing for Windows) に流れてくるのでEtwStreamでログをキャ…

パイプラインの処理を途中で打ち切る方法のPowerShell版

PowerShell の最大の特徴と言われた時に、おそらく掲げるべきはパイプラインだと思います。 それが、cmd や Linux/Unix シェルにおけるパイプラインと異なる挙動だったり、オブジェクトを伝搬するという性質も含めて良くも悪くも PowerShell を PowerShell …

PowerShell Cmdlet を人道的に使いたいから頑張ってみるお話

この記事は、PowerShell Advent Calendar 2015 最終日の記事です。 https://atnd.org/events/72226atnd.org 最近はもっぱら C# を使っており、PowerShell も Cmdlet を書いてたりしてスクリプトあまり書いていません。*1 しかしながら、Cmdlet はただ読み込…

Windows Management Framework 5.0 RTM (PowerShell 5.0 RTM) がリリースされました

2015/12/24 追記 WMF 5.0 RTM のインストールによって、環境変数の PSModulePath がデフォルト設定にリセットされるバグが見つかったため、現在ダウンロードセンターから外されています。 修正が確認できしだい再度公開される予定とのことですので、少しお待…

PowerShell v5 の ConvertFrom-Json では改行を含めたJSONが解釈可能に

PowerShell ではCmdletを介して JSON の利用ができます。型に当てずに解釈できるので、さくっと使うには本当に強力です。この点に関しては、jq や Json.Net などより触りやすいと思います。 さて、過去にも PowerShell での JSON の操作について説明してきま…

Register-ObjectEvent を .Dispose() すると PowerShell.exe が Unhandled Error で終了するのを回避する

PowerShell を使っていると、突然の PowerShell.exe の死にあうことがあります。 今回は、Register-ObjectEvent の Dispose に関してです。 目次 目次 PSEventJob のDispose() に失敗する例 PSEventJob のDispose() に成功する例 どういう状況で発生しえるの…

FormatMarkdown に見るPowerShellで避けたほうがいい配列処理

PowerShell をやってて、だれもが一度は作る Format-MarkDown。 自分で作ったのはもってたのですが、人の作ったのを見る機会があったのでソースをみていました。 www.powershellgallery.com このソース、配列を扱うにあたって PowerShell でやらないほうがい…

はじめようWindows PowerShell [Kindle版] を読んでみた

Twitter を眺めていると、SQL と Azure のこわい人が気になることをおっしゃっていました。 電子書籍読んでたら、突然のぎたぱそせんせーのブログ— Masayuki Ozawa (@Masayuki_Ozawa) November 19, 2015 @guitarrapc_tech https://t.co/nug0ZMudw5 を読んで…

.NET Framework を PowerShell DSC でインストール自動化

Connect での .NET Framework Core の RC に感化されたわけではないのです。が、.NET Framework 4.6.1 RC1 が先月でています。 https://blogs.msdn.com/b/dotnet/archive/2015/10/29/announcing-net-framework-4-6-1-rc.aspxblogs.msdn.com それも受けて、.N…

VS Code での PowerShell サポートが強化されました

Microsoft Connect (); // 2015 Developer Event Set for November 18-19 が現在開催されています。 channel9.msdn.com この中で Visual Studio Code (VS Code) の機能強化が発表され、PowerShell のデバッグ、インテリセンスサポートが追加されました。 今…

PackageMangement (a.k.a OneGet) の PowerShell 3.0 - 4.0 スタンドアローンインストール版について

PackageManagemtn(以下 OneGet) は、PowerShell 5.0 が含まれる WMF 5.0 (現在は ProductionPreview) で利用できました。つまり、Windows 10 以前の 7 SP1 / 8.1 では、WMF 5.0 を入れないとだめでした。 が、ようやく PowerShell 3.0 (WMF 3.0) と 4.0 (WMF…

#ComuPlus Comm Tech Festival 2015 のセッション資料公開

@ufcpp さんにお話しをいただいて Comm Tech Festival に参加してきました。 comuplus.doorkeeper.jp セッション資料をここで公開します。 目次 目次 セッション資料 補足 VS API Deploy まとめ セッション資料 speakerdeck.com 補足 お気づきの方もいらっし…

VisualStudio の .csproj でビルド構成に依存せずApp.config のConfiguration Transformを行おう

Visual Studio で C#など を書いていると、データベースの接続設定などアプリケーションで利用する値を外部ファイルに外出ししたくなることが多々あります。この時利用するのが アプリケーション構成ファイル App.config です。 How to: Add an Application …

Azure Web App のカスタムデプロイを使って特定のディレクトリをGithubと同期する

Azure で一番好きなサービスはダントツで Web App です。以前は Azure WebSite と呼ばれていました。やりすぎず、でも必要なことはできる。このバランス感が今でも崩れていないのはすごいです。 さて、Azure は各種SCM からのデプロイをサポートしており、そ…

そろそろ PowerShell の一次配列の罠と回避について一言いっておくか

タイトルは一度いってみたかっただけです、生意気言ってごめんなさい。 他の言語同様、PowerShell にも一次配列があります。こんなやつ。 gist.github.com PowerShell は、型を持っているので Object[] 以外にも T[] (型の配列) などもあるのですが、他言語…

PackageManagement (aka. OneGet) の プライベートパッケージソースを NuGet Server で立ててみよう

OneGet では、パッケージの取得先のことを パッケージソース (PackageSource)と呼びます。OneGetにはデフォルトで2つのパッケージソース(PackageSource) が入っています。*1 Get-PackageSource Name ProviderName IsTrusted IsRegistered IsValidated Locati…

PackageManagement (aka. OneGet) の利用時の簡単な注意

Windows 10 でデフォルトで入っている PowerShell v5 からは、PackageManagement(以降 OneGet と称しておきます) が利用できるようになっています。*1 OneGetですが、知らないともどかしい気分になることが多いので少し情報を整理しましょう。 なお、ここで…

PowerShell 5.0 で搭載された using namespace シンタックスの概要

PowerShell から .NET クラスを呼び出して操作するときの最大の苦行。それが、クラスの名前空間を毎回毎回書かないといけないことです。 たとえば、List(T) を扱うとこうなります。無駄に使ってみましょう。 gist.github.com ジェネリクスの扱いつらぽよ。 I…

PowerShell ISE のオプションをPowerShell から操作しよう

言いたいことは1つだけです。font はお願いだから Consolas にしてくれ。 ということで簡単なネタを。 目次 目次 すべては $psISE.Option に 変更可能な内容 まとめ すべては $psISE.Option に いいから黙ってこれをどうぞ gist.github.com これが こうなり…

PowerShell 5.0 と Windows10 と RTM のリリースについて

Windows Management Framework 5.0 (WMF5.0) の ロードマップが PowerShell Team から公開されました。 https://blogs.msdn.com/b/powershell/archive/2015/08/06/windows-management-framework-wmf-5-0-roadmap.aspx 一方で Windows 10 にはすでに WMF5.0 …

NTFS の ACL (アクセス許可) をPowerShell DSC で制御しよう

Windows において、特定のフォルダのアクセス制御をするのはいくつか手段があります。 原則としては *nux 系と同様、ファイルシステム(NTFS) のアクセス許可 (ACL) を制御するのが楽でしょう。 今回は、NFTS のアクセス許可という刺身タンポポを卒業しようと…

Active Directory の GPO で ExecutionPolicy が設定されているとVS2015 RTM と VS2013 Update 5 において Package Manager Consoleでエラーが出る場合の対処

VS2015 RTM と VS2013 Update 5 がリリースされました。 さて、これらをActiveDirectoryに参加したWindowsで起動すると PackageManagerConsole の起動に失敗する場合があります。今回はこの対処。 Package Manager Console がここで停止するので、一切 Insta…

PowerShell v5 におけるPowerShellGet による Powershell Module の導入はどう変わるのか

久々に書きます。 「PowerShell に新しく関数やCmdletを入れたい。」 こうなった時、基本は Module を導入することになります。しかし v4までは、モジュールパスにファイルを配置する操作が手間で、開発者が WebClientでのダウンロードを提供したり、手動コ…

TopShelf によるWindowsサービスの配置をDSCで自動化してみよう

しばらく C# のみ触っており その中で LightNode + TopShelf を使ったセルフホストな Windows サービスを構築していました。 運用を自動化するために、CIでビルドした生成物を、どうやって本番にデプロイするのかが懸念となります。これを行うために 久々にD…

Windows Management Framework 5.0 Preview April 2015 がリリースされました

Windows Management Framework 5.0 は、PowerShell を コアとした機能です。ようは、PowerShell v5 と思ってもらえれば簡単ぽん? 今回のリリースは、これまでよりも確定した機能が多くいよいよ先がみえてきたのでさくっと見ておきましょう。 目次 目次 名称…

OneGet が PackageManagement に名称変更となります

ふと PR の通知を見ていると、OneGet が PackageManagement になるとのこと。 github.com 作者の @fearthecowboy は 2015/3/24 時点でこれに触れています。 Nearly done my great rename change of "OneGet" -> "PackageManagement" ... https://t.co/5B5OhO…

PowerShell へのフィードバックは Microsoft Connect へ

Microsoft製品に関するフィードバックは、User Voice だったり Connect だったりいろいろありますね。 今回、PowerShell チームから公式にフィードバック先に関して記事があがったので確認しておきましょう。 https://blogs.msdn.com/b/powershell/archive/2…

PowerShell Team の GitHub リポジトリへの開発移行 と DSC Res Kit の公開

久々に記事を書きます。 Microsoft は GitHub にて多くの製品を公開しています。中には CodePlex などから移行した Roslyn から、公開されてなかった MSBuild、そして DNX や ASP.NET まで。すごくうれしいですよね。そしてとても助かります。 github.com gi…

PowerShell も Windows Store Apps 同様に Windows.Security.Credentials namespace を使って認証情報を管理できるようにしてみる

以前、P/Invoke して Windows Credential Manager で PowerShell の認証情報を格納したり取得する簡単なモジュールを紹介しました。 実際これは、valentia を初めとして、認証を必要とするモジュールで使っています。 もっといい方法ないかなぁと、Windows S…