しばたテックブログ

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

PowerShell

PowerShellの起動時に読まれるps1xmlファイルについて

最高に誰得なエントリです。 PowerShellの起動時に読まれるps1xmlファイル stknohg.hatenablog.jp で触れましたが、PowerShell 1.0~5.0ではpowershell.exeの起動時に$PSHOMEにある*.format.ps1xmlと*.types.ps1xmlを読み込み、オブジェクトの書式設定やオブ…

WMF 5.1の新機能をざっくり説明する - 4. PowerShell エンジンの機能強化 編

今回は、 新シナリオと機能 編 バグ修正 編 コンソール機能強化 編 の続きです。 今回の対象範囲 WMF 5.1 の PowerShell エンジン機能強化 についてわかる範囲で補足を入れていく感じにします。 パフォーマンス パフォーマンスの改善について いくつかの重要…

WMF 5.1の新機能をざっくり説明する - 3. コンソール機能強化 編

今回は 新シナリオと機能 編 バグ修正 編 の続きです。 今回の対象範囲 WMF 5.1 のコンソール機能強化 についてわかる範囲で補足を入れていく感じにします。 VT100 のサポート Windows 10 では、VT100 エスケープ シーケンスのサポートが追加されました。 Po…

WMF 5.1の新機能をざっくり説明する - 2. バグ修正 編

前回の続きです。 今回の対象範囲 今回は、 WMF 5.1 のバグ修正 についてわかる範囲で補足を入れていく感じにします。 モジュールの自動検出の完全な受け入れ TODO : もう少し調べる MSDNを読んでもいまいちなんのためのバグ修正なのかわかりませんでした...…

WMF 5.1の新機能をざっくり説明する - 1. 新シナリオと機能 編

WMF 5.1のプレビュー版も出たので、そろそろWMF 5.1の機能について触れないとダメかなと思いエントリを書きます。 一回では書ききれないので何回かに分けて書く予定です。 公式情報 WMF 5.1についてはMSDNの、 WMF 5.1 リリース ノート でリリースノートが出…

Windows Management Framework (WMF) 5.1のプレビュー版がリリースされました

【2017/01/22追記】 つい先日WMF 5.1の正式版がリリースされました。 詳細はこちらのエントリをご覧ください。 stknohg.hatenablog.jp 【追記ここまで】 公式ブログより。 blogs.msdn.microsoft.com ブログの日付が7/16日ですが、本日のリリースです。 WMF 5…

Nano ServerのPowerShellについてざっくりとした話

基本的にはこちらの記事の内容をかいつまんだ感じです。 https://technet.microsoft.com/en-us/windows-server-docs/compute/nano-server/powershell-on-nano-servertechnet.microsoft.com technet.microsoft.com まだ日本語に翻訳されてないみたいなので、…

VirtualBoxでNano Serverを動かしてみる

そろそろNano ServerとPowerShell Coreに触れていかないといけないかなぁと思ったので。 普段使いの環境がVirutalBox + Vagrantなので、Nano ServerもVirtualBoxで動かしたいと思い環境を作ったのですが、ちょっとハマりどころがあったので、その辺を含めて…

第101回CLR/H勉強会 ~日本の夏、MR の夏~でLTしてきました

先週の土曜にインフィニットループさんのセミナールームをお借りして第101回CLR/H勉強会 ~日本の夏、MR の夏~を開催しました。*1 clrh.connpass.com 生憎の雨天でしたが、多くの方に参加していただき勉強会・懇親会と大いに盛り上がりました。 会場を貸し…

2016 Microsoft MVPアワードを受賞しました

Cloud and Datacenter ManagementのカテゴリでMicrosoft MVPアワードを受賞させていただきました。 この一年CLR/Hやきたあずでコミュニティ活動しつつPowerShellの情報を発信してきた事が評価された結果だと考えております。 あまりいい感じのことが言えない…

Test-Connectionが遅い理由と対策方法について

はじめに きっかけは@Pyromaniaさんのこのツイートから。 Test-Connection でQuiet オプションつけないと、ICMPのあとにNetBIOS Name Query なげててLinux系の鯖だと時間かかるっぽいという知見をえた。困った時のWiresharkさまさまやでー(— Pyromania (@Py…

Visual Studio CodeのターミナルをPowerShellに変える際に注意すべきこと

Visual Studio Codeのバージョン1.2.0からターミナル機能が搭載され、早速このターミナルをPowerShellに変える方法が紹介されています。 blogs.msdn.microsoft.com pglib.hateblo.jp 本エントリではターミナルをPowerShellに変える際に注意すべきことについ…

PowerShellでmountvolコマンドを代用する

ディスクボリュームのマウント・アンマウントやドライブレターの割り当てを行うのに便利なmountvolコマンドですが、本エントリではこれをPowerShellで代用する方法について説明します。 Storage Cmdletの使用 Windows 8/Windows Server 2012以降であれば、St…

PowerShellからコマンドプロンプトを呼んだ時にちょっとだけ便利にする方法

需要は少ないと思いますが、地味に便利な方法です。 はじめに 突然ですが質問です。 下の画像は何のプログラムを起動していると思いますか? 正解はPowerShellコンソールから起動したコマンドプロンプト(cmd.exe)でした。 Process Explorerで見るとこんな感…

はてなから"シンタックス・ハイライト機能で対応してほしい言語"を聞かれたのでPowerShellを追加してください。お願いします。

お題「シンタックス・ハイライト機能で対応してほしい言語」 developer.hatenastaff.com 何でもはしませんけど何卒よろしくお願いします。 PowerShell 1.0のリリースから今年で10周年とキリもよいので何卒よろしくお願いします。 【2016/07/01追記】 対応し…

PowerShellの多値返却と多重代入について

cloudpackさんのこの記事とその元記事を見て、以前にも同じようなブログだったかTwitterのツイートを見たのを思い出して結構誤解されてるんだなぁと思ったのでこのエントリを書きます。 blog.cloudpack.jp inokara.hateblo.jp PowerShellの多値返却 まず、Po…

CLR/H #clrh99 ~サクラサク~ でPowerShellについて話してきました

先日行われたCLR/H #clrh99 ~サクラサク~で久しぶりに勉強会で登壇しました。 clrh.connpass.com 勉強会について 登壇した時間以外は受付か懇親会の手配をしていたので他のセッションは全然見れませんでした...スイマセン いつも通りえんぷらさんがTogetterにま…

第6回 PowerShell 勉強会に参加しました

以前からPowerShell勉強会に行ってみたいと思いつつも機会に恵まれなったのですが、今回やっと参加することができました。 jpposh.doorkeeper.jp LTしてきました "PowerShell"を学ぶ方法 from 素敵な おひげ www.slideshare.net 「"PowerShell"を学ぶ方法」…

PowerShellでNICチーミング(NetLBFO)を操作する

Windows ServerでNICチーミングを利用することがあったので調べた結果をブログにまとめます。 検証環境はWindows Server 2012 R2ですがWindows Server 2012でも同様だと思います。 NICチーミング(NetLBFO)の基本 NICチーミング(NetLBFO)の基本的な話は以下の…

powershell.exe -Commandパラメーターの謎挙動について (解決編)

stknohg.hatenablog.jp 前のエントリの謎挙動についてですが、やっと何が起きてるかわかったので追記エントリを書きます。 解決のヒント 解決のヒントは以下の記事にありました。 Escaping in PowerShell この記事ではPowerShellからADSIの機能を呼び出した…

powershell.exe -Commandパラメーターの謎挙動について

【2016/03/30追記】 謎挙動の原因がわかりましたので追記エントリを書きました。 stknohg.hatenablog.jp こちらも併せてご覧ください。 きっかけはQiitaのこのエントリ。 qiita.com 対応方法を調べてコメントする際に謎挙動に気が付きました。 何が謎挙動な…

Write-Outputとはいったい何なのか?

以前に書いた stknohg.hatenablog.jp に対するさらなる補足です。 本当はもう少し早い時期に書きたかったのですがなかなか書けずにおりました... 別にWrite-Outputを使わなくても... 先のエントリで触れた様にWrite-Outputは 説明 Write-Output は、"出力ス…

Get-DateはGet-DateであってNew-Dateではないお話し

最近ブログを書く気力が薄れてしまっているので軽いネタでリハビリします。 小ネタがいくつかたまっているので何とか消化したいですね... New-Object System.Datetime と Get-Date の違い 先ずはこちらのコードをご覧ください。 PS C:\> $Date1 = New-Object…

PowerShellでwttr.inを表示してみる

はじめに 先日Twitterのタイムラインを見ててwttr.inというcurlコマンドで各地の天気予報が見れるwebサービスがあることを知りました。 以下の図はcygwin上のcurlコマンドでの実行例ですが、こんな感じで各地域の天気を知ることが出来ます。 地味に便利なweb…

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

PowerShellで気軽に乱数を生成できるGet-Randomコマンドレットですが、乱数生成に使われるアルゴリズムについては一切ドキュメント化されていません。 とりあえずで使う分には問題ないでしょうが真面目に乱数を扱う場合にアルゴリズムが不明なのは致命的だと…

昇格したPowerShellコンソールおよびPowerShell ISEを起動させるファンクションを書きました

PowerShellでもsuコマンド的なものが欲しかったので。 タスクバーを右クリックして「管理者として実行する」「ISE を管理者として実行する」と同じことをコマンドでもしたかったのです。 昇格したPowerShellコンソールとPowerShell ISEを起動させるファンク…

Write-HostとWrite-Outputの表示の違い

前回のエントリの補足です。 stknohg.hatenablog.jp 前回はWrite-HostとWrite-Outputの違いについて触れ、全くの別物であることを説明しました。 別物であるとはいえ、実際の利用においては両方ともコンソールに文字列を表示する用途で同様に扱うことが多い…

Write-HostとWrite-Outputの違い

新年一発目のエントリなのでPowerShellの基本的なことについて書きます。 PowerShellの基本的なことがわかってなかったシリーズ第8弾でもあります。 このエントリを書く動機 Google等でWrite-Host Write-Output 違いなワードで検索すると非常にアレな感じだ…

Vagrant 1.8.0で追加されたvagrant powershellコマンドについて

先日Vagrant 1.8.0がリリースされたのでサクッと手元の環境を更新しました。 本エントリではVagrant 1.8.0で追加された新機能のうち、vagrant powershellコマンドについて詳しく触れていきたいと思います。 Vagrant 1.8.0の新機能について Vagrant 1.8 - Has…

PowerShellでレジストリ操作する小ネタ

メモがてらの小ネタ集です。 HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER以外のキーを扱う デフォルトの状態ではPowerShellから扱えるレジストリキー(PSDrive)はHKEY_LOCAL_MACHINEとHKEY_CURRENT_USERの2つだけです。 Get-PSDriveでレジストリプロバイダーを確…

PowerShellで使うと便利…かもしれないVB.NETの機能

本エントリはVisual Basic Advent Calendar 2015 11日目、兼、PowerShell Advent Calendar 2015 11日目の記事になります。 qiita.com atnd.org 何とかVB.NETのネタがないか無理やり考えたらこんなエントリを思いついてしまいました。 本当に便利になるかは保…

コマンドレットを使う時に知っておくとちょっとだけ便利なこと

PowerShell Advent Calendar 2015 6日目の記事です。 atnd.org 小ネタです。 たいしたことではないですが地味に便利です。 コマンドレットを使う時に知っておくとちょっとだけ便利なこと Microsoftから標準で提供されるコマンドレットは原則-Nameや-Pathパラ…

WindowsでFabricで遊ぶ - 再び

以前に、 stknohg.hatenablog.jp なんて記事を書いたのですが、ちょっと前にMicrosof公式のSSHDが発表されたので、freeSSHdで試していた部分をOpenSSHに変えて遊びなおしてみました。 github.com WindowsにFabricをインストールする 前回同様Windows 8.1にFa…

PowerShellの演算子一覧

PowerShell Advent Calendar 2015 3日目の記事です。 基本的にはabout_OperatorsやPowerShellの言語仕様書(PowerShell 2.0、PowerShell 3.0)を見ればわかる話なのですが、一覧で参照したかったのと、PowerShellには一見演算子に見えない特殊な演算子が結構あ…

大量のファイルをPowerShellのコマンドで一括リネームする

クラスメソッドさんのこのエントリが人気を博してるので人気にあやかるためにPowerShellで同じことをしてみました。 dev.classmethod.jp 前提 動作はPowerShell 4.0な環境で確かめてますが他のバージョンでも動くはずです。 今回は適当なディレクトリC:\Temp…

Set-StrictModeについてちょっとだけ詳しく説明してみる

PowerShellの基本的なことがわかってなかったシリーズ第7弾です。 基本的にはヘルプを見ればわかる話ですが、ヘルプではわかりにくかった部分があったので補足する形でこのエントリを書きます。 Set-StrictModeについて Get-Help Set-StrictMode -Fullでこの…

PowerShellのCountプロパティについてあれやこれや

PowerShellの基本的なことがわかってなかったシリーズ第6弾です。 便利なCountプロパティ コマンドを実行して出力した結果の件数を取得したい場合、([コマンド]).Countとするとその件数を取得することができます。 たとえば以下の様にコマンドを実行するとC:…

PowerShell 3~4向けのPackage Management Preview for PowerShellが出たので試してみた

Package Management Preview for PowerShell 4 & 3 is now availableの記事にある通り、PowerShell 3-4向けのPackage Management(Preview版)が出てたので試してみました。 PackageManagement自体はWindows 10で既にリリースされており、ぎたぱそ先生の tech.…

PowerShell ISEとPowerShellコンソール(powershell.exe)の違い

本エントリは、 Differences between the ISE and PowerShell console - Windows PowerShell Blog - Site Home - MSDN Blogs の内容をまるっと翻訳というか要約というかした感じの内容です。 古い情報もあったのでその辺は更新しています。 中の人が誰かWind…

Out-Host -Pagingについてのちょっとした話し

ちょっと今Out-Defaultの内部動作について調べてて、その最中に気が付いたことについてのメモになります。 Out-Hostの-Pagingパラメーター Out-Hostコマンドレットの-Pagingパラメーターを使うと以下の様に1ページ、または1行ずつコンソールの表示を進めてく…

All Windows Serverな環境でOracle Real Application Clusters(RAC)を構築してみる - 2.Storage構築編

本シリーズの概要と一覧はこちらからどうぞ。 前回に続いてストレージ(iSCSI)を構築します。 本エントリではWindows ServerをiSCSIターゲットにします。 また、RAC Node側の手順ですが、iSCSIイニシエーターの設定も本エントリで触れることにします。 初期設…

All Windows Serverな環境でOracle Real Application Clusters(RAC)を構築してみる - 1.AD構築編

本シリーズの概要と一覧はこちらからどうぞ。 RACを構築するにあたり、最初にドメイン環境を作成します。 RACではActive Directoryは必須ではありませんが、SCANなどの名前解決のためにDNSが必要であったり、ワークグループ環境だとインストールユーザーやOr…

Connect-IscsiTargetの罠

どう考えても需要ゼロな話しなのですが、しょーもない罠に引っかかって小一時間無駄にしたので愚痴を書きます。 Connect-IscsiTargetの罠 罠が見つかった環境はWindows Server 2012 R2です。ほかのバージョンで発生するかは未確認です。 iSCSI Cmdletsにある…

(個人用メモ)ドメインを作ったり昇格させたり降格させたりするスクリプト

何気に検証環境で作り捨てのActive Directory環境を作成する事が多いのでGistにメモ。 基本的にはServer Managerのウィザードが生成するスクリプトにちょっとだけ手を入れたものです。 ちなみに環境はWindows Server 2012 R2です。 GUIでドメインを作る手順…

(IT管理者向け)Wi-Fiセンサーをいろいろな方法で殺す

最初に言っておきます。私はこのWi-Fiセンサーが最高に嫌いです。 まだ実害を被ってはいないもののIT管理者的な立場からするとこの機能に対しては恨み言しか出ません。 なので本エントリでは色々な方法でこの機能を殺すための方法を紹介しようと思います。 W…

Out-Stringを使ってSelect-Stringをより便利に使う

前回のエントリの補足的な感じです。 stknohg.hatenablog.jp コンソールに出力される文字列はSelect-Stringの検索対象になるとは限らない 前回のエントリで書いた様にSelect-Stringは入力されたオブジェクトをString型に変換した文字列を検索します。 ここで…

Select-Stringは具体的に何を検索しているのか?

PowerShellの基本的なことがわかってなかったシリーズ第5弾です。 PowerShell版のGrepともいえるSelect-Stringコマンドレットですが、ヘルプには、 文字列とファイル内のテキストを検索します。 としか記載されていません。 PowerShellでは基本オブジェクト…

Windows10で暗いテーマカラーを使用するか否かを設定するファンクション書きました

この記事を見てサクッとPowerShellのファンクションを作りました。 ダークなテーマは格好良いですね。 【やじうまPC Watch】Windows 10の配色を“クールなブラック”にする方法 〜ストアや設定がホワイトからブラックに - PC Watchpc.watch.impress.co.jp Wind…

PowerShellの比較演算子についてあれやこれや

PowerShellの基本的なことがわかってなかったシリーズ第四弾です。 比較演算子についてあれやこれやと書いていきます。 とはいえ半分くらいは愚痴かも... 基本的には-eq演算子について触れますが他の演算子も大体同様なはず。 1.文字列の比較がデフォルトでI…

PowerShellにおける"戻り値"と"Return"について

PowerShellの基本的なことがわかってなかったシリーズ第三弾です。 内容としては、牟田口さんのブログの winscript.jp で書かれていることそのまんまです。 なので詳しいことを知りたい方はそちらをご覧いただければ十分かと思います。 今回わざわざパクリエ…