先日Windows向けの作業のちょっとした自動化のためにPowerShellのスクリプトを書いたので、少し躓いたポイントを書きます。 大人しくLinux版のPowerShellもインストールします WSL2のEmacsから快適に編集するためにシンタックスなどのエラーレポートなどがやはり欲しいですね。 Powershell - LSP Mode - LSP support for Emacs を使えば普通にLSPが利用可能ですが、インストールするためにpwshが実行ファイルとしてPATHに認識されている必要があります。 しかしWSL2上で作業しているのですから、 Windows上のpwsh.exeを使えば多重にインストールする必要がなくなるのではと考えました。 そこでlsp-pwsh-exeにpwsh.exeを追加してみたのですが、 Windows上のPowerShellをWSL2上で動かす
PowerShellに関しては、2021年に1回まとめたのだが、あれから3年も経過したので最新情報も含めて、簡単に解説したい。なお、それぞれのこれまでの経緯などは、過去記事に記載しているので参考にしてほしい。 ●あらためて「PowerShell」の現状と登場後の経緯を整理する https://ascii.jp/elem/000/004/052/4052789/ 結論から言えば、PowerShellには、Windowsに同梱されている「Windows PowerShell」と、ユーザーがインストールする必要がある「PowerShell」がある。コマンドラインを使う頻度が高いようならば、最新のPowerShellをインストール、そうでなければWindows PowerShellで十分である。 PowerShellのインストーラーなどに表示される奇妙な人物イラストを見たことがある人もいるだろう。
Microsoftは、VBScriptとNTLM(NT LAN Manager)を非推奨化の後に廃止する旨を表明した。前者はWindows 95時代の技術でOSに限らず、WebサーバーのIIS(Internet Information Server)でも動作するスクリプト言語である。当時はJavaScriptを直接使用するのか、JavaScript互換のJScriptを選択すべきか判断できず、趣味のawkスクリプトを書きながら動向を観察するにとどまっていたものだ。 WSH(Windows Script Host)のコアエンジンに採用されたVBScriptはOSの動作も制御できたため、バッチファイルを置き換える存在として注目を集めたが。その後はWindows PowerShell、PowerShellと、自動実行の基盤は変化していく。 2023年現在、VBScriptをOSやWebサーバーで
Windowsでは、文字コードに「ユニコード」を使う。Windowsに搭載されているフォントはさまざまあるが、ユニコード文字を表示できるように、多数の文字の形が組み込まれている。 今回は、Windowsでユニコードを“見る”方法について解説する。なお、WindowsではUTF-16LEエンコードをUnicodeと表記する。ここでは、エンコードと混同されないために、文字仕様のUnicodeは「ユニコード」とカナ書きすることにする。 GUIアプリでユニコードを使う ユニコード文字は多数ある。それぞれの文字に割り当てられた文字コードをユニコードでは「コードポイント」と呼ぶ。コードポイントは、「U+」の後ろに16進数4桁または6桁で指定するのが正式な表記方法だ。たとえば、「漢」は「U+6F22」となる。ユニコード関連の文書やもちろん、インターネット内のウェブページでも同様の表記をすることが多い。
JPCERT/CCは、2019年6月から継続して攻撃を行っている標的型攻撃グループDangerousPassword [1][2](CryptoMimicまたは、SnatchCryptoとも呼ばれる)に関連すると思われる、暗号資産交換事業者の開発者を狙った攻撃を5月末に確認しています。この攻撃は、マシン上にPythonやNode.jsがインストールされたWindows、macOS、Linux環境をターゲットとしたものです。 今回は、JPCERT/CCが確認した攻撃および使用されたマルウェアについて解説します。 Pythonマルウェアを起点としたWindows環境における攻撃 攻撃者は、QRコードを扱うためのPythonモジュール(https://github.com/mnooner256/pyqrcode)のbuilder.pyというファイルに不正なコードを挿入したものをあらかじめ用意し、
Microsoft が開発したシェルであり、スクリプト言語です。 Windows 用に開発されましたが、中核である PowerShell Core は Linux や macOS にも移植されています。 拡張子は *.ps1 です。 Linux のパイプラインは文字列情報を引き渡すのに対し、PowerShell ではオブジェクト情報を引き渡すことができます。 変数名、関数名等の大文字・小文字は無視されます。 他言語ではエスケープにバックスラッシュ(\)を使うことが多いですが、PowerShell ではバッククォート(`)を使用します。 環境変数やレジストリをドライブとして参照することができます。 ここではある程度他の言語を習得している方を対象に、PowerShell の概要について簡単に説明していきます。バージョンは 7.4.0 を対象としています。 Windows のデフォルト設定では管
PowerShellを開くとこのメッセージが…… PowerShellを開くと、「最新のPowerShellをインストールしてください」と表示される。新しいPowerShellのインストールは必要なのだろうか、インストールする場合はどうすればいいのだろうか。このメッセージの対処方法を紹介しよう。 Windowsターミナルなどで「PowerShell」を開くと、「新機能と改善のために最新のPowerShellをインストールしてください!」と表示され、最新版をインストールしなければならないのか、どうすれば最新にできるのか、迷っていないだろうか。 本Tech TIPSでは、この「最新のPowerShellをインストールしてください」の対処方法を紹介しよう。 「最新のPowerShell」とは? 前述の通り「PowerShell」を開くと、「新機能と改善のために最新のPowerShellをインスト
関連キーワード Windows | Microsoft(マイクロソフト) | OS MicrosoftのクライアントOS「Windows」が標準搭載するコマンド実行ツール「PowerShell」。システム管理者はこれを使いこなすことで、さまざまな業務の自動化ができる。PowerShellの“プロ”になるには、どうすればいいのか。PowerShellが学べるオンライン学習コースを紹介する。 4.まず基礎から学ぶ「PowerShell 7 Fundamentals」 併せて読みたいお薦め記事 連載:PowerShellを学ぶオンラインコース10選 第1回:「PowerShell」の学習方法とは? 初級から上級向けのオンラインコース 「PowerShell」を活用するには 「Windows」のキオスクモードを「PowerShell」で設定する方法 PowerShell「while」「do whi
ネットワークでトラブルが発生した場合、その初手で疎通を確認するのは「常識」である。「まずping」と言われるくらい王道だ。 PowerShellで疎通確認するコマンドには「Test-Connection」と「Test-NetConnection」がある。PowerShell 7では前者のみとなるので注意したい。 ICMPでネットの状態確認 疎通確認にはICMP(Internet Control Message Protocol)が使われる。ICMPの目的は2つある。 1つはエラー通知。IPパケットが途中で届かなかった場合に、送信元にエラーを通知する。もう1つが問い合わせで、相手の端末に送る「ICMPエコー要求」と、それが届いた相手が返してくる「ICMPエコー応答」とを組み合わせ使う。
はい、Copilot なめてました。すみません。 この記事は PowerShell を書くのがめんどくさい、もしくは普段書かない方のために、Copilot を利用して 一文字も書かず 望みの PowerShell が生成されて感動したというだけの大したことない記事です🤣 1. はじまり 「Intune で管理されてるデバイスに最後にサインインしたユーザーが知りたい」 そんなことを時々言われるのです。 15 年くらい前に Configuration Manager のサポートエンジニアをやってた時代にもよく聞かれてた話で、WMI や監査ログでゴリゴリ頑張ってもいいんだけど、確か資産インテリジェンス(今は非推奨) を追加するとひっそりレポート増えたよなーとか、もはやどうでも良い思い出。 しかし、この SIEM だ UEBA だ XDR と言われる分析・自動化の世の中でもサインインログってまだ
山市良のうぃんどうず日記 Windowsコンポーネントの「Windows PowerShell」とオープンソースの「PowerShell」 Windowsのコンポーネントである「Windows PowerShell」は「5.1」が現行バージョンであり、その後のロードマップは示されていません。 その代わり、Microsoftはオープンソースプロジェクトである「PowerShell」(旧称:PowerShell Core)を提供し、機能強化やパフォーマンス改善を実施してきました。現在の最新バージョンは「7.4.1」です。「PowerShell Core 6」のリリース以降、Windows PowerShellを起動すると、「新しいクロスプラットフォームのPowerShell」を試すように案内されるようになりました(画面1)。ちなみに、「powershell.exe -nologo」を実行すれば
そもそもPowerShellのプロファイルとは PowerShellやWindows PowerShell(以下、PowerShellと総称)で、いつも同じオブジェクトを使うことがある。こうしたとき、Profile(プロファイル)と呼ばれる機能を使うことで、起動時に変数や関数などを登録できる。 Profileは、テキスト形式のスクリプトファイルであり、起動時に読み込まれて、その内容に従って、変数や関数、エイリアスなどの定義をする。 プロファイルには、ユーザー、ホストにより4種類の組み合わせがある。 ユーザーの種別は、すべてのユーザー用と現在のユーザー用の2つがある。またホストは、すべてのホスト用と現在のホスト用の2つがある。ホストの種別は、リモートシェル操作をするときに利用される。ローカルホストでは「すべてのホスト」と「現在のホスト」用が順に適用される。 リモートシェルの場合には、リモート
Microsoftは2024年1月の月例アップデートの一部としてCVE-2024-20666に対処する更新プログラム「KB5034441」をリリースしているが、一部の環境では、インストール時にWindows Updateの画面にエラーコード「0x80070643」が表示され、アップデートを継続できないという問題が発生している。 Windows UpdateでKB5034441の適用時に「0x80070643」エラーが発生してしまう場合も、このスクリプトを使用すればエラーを回避して修正できる。 PowerShellスクリプトの概要 CVE-2024-20666に対処するには、WinREパーティションを更新した上で、BitLocker用にWinREの再設定を行う必要がある。今回公開されたPowerShellスクリプトは、その手順を自動化するもの。詳細は次のサポートページにまとめられている。 K
はじめに Windows10 Update でKB5034441の0x80070643エラーが発生する場合の対処方法を備忘録的に軽く記載します。 (色々面倒なことがあったので参考情報を記載します) ある程度再現性を重視して、手順には、PCを普段から使っている人には冗長な内容も記載しています。 目次 前提 エラー概要 対処方法 参考文献 前提 本件エラーの解決を確認した環境等をまとめます。 対象者 Windows UpdateでKB5034441の0x80070643エラーが発生した人 Windows 10 ユーザー Windows 11 ユーザーも対象の可能性あり(実機で未確認) 普段ICT関連に詳しいけど、たまにPowerShellとかになると操作方法忘れる人 普段ICT関連触れている程度の人(ICT見習い系) 動作確認環境 OS Windows 10 version 22H2 CPUア
Windowsを使っていると、ときどきWindowsセキュリティ(Defender)からの通知を見ることがある。今回は、このWindowsセキュリティの機能をコマンドラインから使う方法を解説する。 Windowsセキュリティの「ウィルスと脅威の防止」が、Microsoft Defender Antivirusのウィンドウになる。すべての履歴を見るには、「フィルター」で「フィルターのクリア」を選択する そもそもDefenderとは? 以前からWindowsを使っているユーザーからすれば、Windowsのセキュリティ機能といえば「Defender」を思い浮かべるだろう。Defenderの名称は、Windows XP時代の2006年(これ以前にベータ版が配布されていた)にスパイウェア対策ソフトに使われた。これは買収した製品(GIANT Company SoftwareのGIANT AntiSpa
仕事で「エクセルの案件表を別のエクセルにクエリで表示し、それをフィルター関数でシート毎に担当者別の表にし、VBAで条件付き書式を設定して罫線などで修飾し、定期的に遠隔地のプリンタから出力する」という課題をこなしたので、方法を記録しておきます。 仕事のデータは使えないので替わりに下記のデータを利用します。 なかなかちょうど良い感じのが無くて困りました… 厚生労働省|女性の活躍推進企業データベースオープンデータ 作業の都合上、遠隔地のプリンタでは無く自PC内にPDFデータを出力することにします。 実現すること 1. 既存の参照元からエクセルにパワークエリでデータを読みこみ、自動更新 2. フィルター関数で特定項目ごとにデータを分けて表示する 3. データの行数に応じてVBAで条件付き書式を適用し、可変の罫線や背景色を付ける 4. 一定の日時に自動でシート毎のPDFファイルを作成する エクセルフ
実行時間の長いコマンドを使うとき、実行している間に別の作業をしたくなることがある。WindowsはGUIなので、別のコンソールウィンドウを開けば、別のセッションとしてシェルが起動するので、基本はこれで間に合う。 しかし、今のセッションと同じ環境でコマンドを使いたいといった場合は、この方法は使えない。たとえば、すでに変数などを使って何かの作業をしているときなど、別のセッション(ウィンドウ)では実行環境が異なる。こうした場合、PowerShellにはバックグラウンド実行という方法がある。 まずは簡単な例を紹介 まずは簡単な例を使って、バックグラウンド実行を使ってみよう。たとえば、dirコマンド(get-childItemコマンドのエイリアス)をバックグラウンドで実行させてみる。簡易な方法としてバックグラウンド演算子“&”を使う方法がある。これは、Linuxのbashなどと同じ記法だ。ただし、こ
PowerShell is an interactive shell and scripting language from Microsoft. It’s object-oriented — and that’s not just a buzzword, that’s a big difference to how the standard Unix shells work. And it is actually usable as an interactive shell. Getting Started PowerShell is so nice, Microsoft made it twice. Specifically, there concurrently exist two products named PowerShell: Windows PowerShell (5.1)
複数のユーザーでファイルやフォルダを共有して業務を進めることは、もはや当たり前のことになっています。現在は、社内LAN内でWindows ServerやLinuxサーバ、NAS(Network Attached Storage)を利用するだけでなく、クラウドのファイル共有サービスを利用するなど、さまざまな方法でファイル/フォルダを共有できるようになりました。 Windowsネットワーク環境で簡単にファイル/フォルダを共有する方法が、Windowsの標準機能「SMB(Server Message Block)」プロトコルを使用したネットワークファイルシステムです。その歴史は古く、「Microsoft One Drive」や「Microsoft Teams」といったファイルを共有できるクラウドサービスの出現以前から、企業ITシステムを支えてきました。 このWindowsネットワークのファイル/
やりたかったこと ビルドやデプロイなど数分単位でかかる処理を待つのが嫌、だけどターミナルに張り付くのは時間の無駄ということで、自動的に通知してくれる仕組みを作りました。 ↓こんな感じ 動作環境 Windows11 Pro 23H2 WSL 2.0.9.0 Ubuntu 22.04.3 LTS Bash 5.1.16 WSLからWindows側にデスクトップ通知を出す PowerShellでデスクトップ通知(トースト通知と言うらしい)を簡単に出せます。 スクリプトを書いて、WSLから呼び出す形が良さそうです。 PowerShellで出せる通知の種類やカスタマイズについてはこちらの記事が参考になりました。 実行ポリシー WSLからPowerShellスクリプトを実行するために実行ポリシーの変更が必要でした。 PowerShellを管理者権限で開き、下記のコマンドを実行します。 param (
PowerShellで文字化けが生じる場合がある 直接実行すると問題なく表示されるのに、PowerShellの変数に格納する、あるいはファイルに出力すると文字化けする外部コマンドがある。 具体的には、wsl.exeやwinget.exeなどだ。文字化けするのは、PowerShellの変数への格納や、cmd.exeでファイルにリダイレクトしたあと、変数やファイルを表示したときである。 先に結論から言えば、wsl.exeとwinget.exeの場合、標準出力にはバイトマークなしのUnicode(UTF-16LE)エンコードされた文字列が出力されているため、そのままでは文字化けしてしまう。 画面に出力したときに文字化けしない理由は、標準出力とは異なる方法で画面表示しているからだと思われる。ソースコードを調べたわけではないが、たとえば、コンソールAPIなどを使って画面出力しているのではないかと思わ
Windows 10 Home and Pro, version 21H2 Windows 10 Enterprise and Education, version 21H2 Windows 10 IoT Enterprise, version 21H2 Windows 10 Home and Pro, version 22H2 Windows 10 Enterprise Multi-Session, version 22H2 Windows 10 Enterprise and Education, version 22H2 Windows 10 IoT Enterprise, version 22H2 Windows 11 Home and Pro, version 21H2 Windows 11 Enterprise Multi-Session, version 21H2 Window
これは、画像ファイル中のExif(Exchangeable image file format)情報などを取り出しているものだ。.NET Frameworkにも、こうした画像の情報を扱う機能があり、PowerShellから簡単にアクセスができる。ただし、Windowsは内部的には、Exifファイルを解析しているものの、すべての情報を出力することができない。それでも撮影日など主要な情報に関しては、取得することか可能だ。 画像ファイルのプロパティを取得 画像ファイルからプロパティ情報を取得するには、System.Drawing.Bitmapクラスを使う。PowerShellならそのままオブジェクトを作ればよく、Windows PowerShellならば、Add-Typeで「System.Drawing」アセンブリを読み込む。画像ファイルを指定してSystem.Drawing.Bitmapを作っ
概要 PowerShellのBeep音で音階を指定することができます。 それを利用し「カエルの歌」をBeep音で奏でるプログラムを作成します。 (本当に2023年最後の記事がネタ記事で良いのだろうか... 環境 Windows: 10 Powershellバージョン $ PSVersionTable Name Value ---- ----- PSVersion 5.1.19041.3803 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.3803 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 $R
みなさん、こんにちは。イノベーションLABのハヤシです。 オフィスに出社する際にお土産を持ってくると「野球観に行ってきたんですか?」と聞かれます。 だいたい合ってます。聞かれたいのでお土産を買っているところがあります。 夏の甲子園が終わっても、秋の大学野球に、神宮大会。まだまだ楽しみは尽きません。 さて、今回は開発環境構築についてのお話です。 以前、 GitBash での環境構築についての記事を書きました。 blog.css-net.co.jp 最近は、WSL(Windows Subsystem for Linux) 2 が安定してきたのもあってすっかり WSL2 がメイン開発環境になっています。 そこで、今回はすでに WSL2 を活用している方向けに、ディストリビューションの名前や場所を変更する方法についてご紹介します。 このように困っている方の助けになれば幸いです。 最初にディストリビ
本記事はマイクロソフト社員によって公開されております。 こんにちは、Windows サポートチームの栗木です。 本記事では、サイズの大きいファイルやフォルダを見つける PowerShell スクリプトをご紹介します。ドライブの空き容量が枯渇した際に実行し、容量を取っているファイルやフォルダを確認するのに利用できます。紹介しているスクリプトは、管理者として起動した PowerShell で実行してください。 基本的に空き容量枯渇の原因としては、単純にファイル サイズの大きいファイルがあるまたは特定のフォルダの配下に大量のファイル(ログ ファイル等)があることが考えられますが、ファイル システムの管理領域による空き容量枯渇もございますので、その場合は、別の対処が必要になります。 適用対象の OS Windows 8.1 Windows 10 Windows Server 2012 Window
コマンドラインでコマンドを実行すると、長い出力が出てしまうことが多い。この問題は、コンピューターがまだ機械式端末装置などで印字出力をしていたときからの問題なので、さまざまな解決策が用意されている。今回はその対策を解説する。 Windowsでは、旧来のmore.comも利用できるが、Out-GridViewコマンドを使うとGUIウィンドウにコマンドの出力を表示できる まずは基本的となる対策 MS-DOS時代からの対策は、more.comコマンドである。more.comは、画面1面分の出力をすると、そこで出力を停止して、キー入力待ちとなる。Unix/Linux系では、その発展型となるlessコマンドもあり、逆方向にスクロールさせることも可能だ。 more.comは、cmd.exeでもPowerShellでも利用できる。どちらも「C:\Windows\System32\more.com」が呼び出
Windowsのコマンドのいくつかパイプ処理を想定しておらず、平気で1件のレコードを複数行で出力する。どちらかというと人が見て分かりやすい書式で出力されている。おそらく、cmd.exeでは満足なパイプ処理が行えなかったからだろう。これに対してUnix/Linux系のコマンドは1件1行とするものが多く、人間が見やすいようにするには別途オプション指定するなど、パイプ処理を基本にしている。 Windows XPで追加されたtasklist.exeのような一部のコマンドは少しまともである。1行1件の出力を行えるし、“/FO csv”オプションを付けることでCSV形式での出力ができる。しかし、同じXPから搭載されたサービス管理コマンドsc.exeなどは1件の情報を複数行に出力する。 PowerShellには、サービス関連のコマンドが用意されているのでsc.exeを使う必要はない。問題はPowerSh
もし初めて見たという方はコマンドプロンプト(PowerShellはNG)で実行してみてください。Chromeが起動してQiitaのページが表示されるはずです。 ※Chromeをインストールしてない場合は代わりに msedge や firefox を指定してみてください さて、このコマンドを見て不思議に思いませんか? なぜ C:\Program Files (x86)\Google\Chrome\Application\chrome.exe のようにフルパスを指定していないのにブラウザが起動するのか? この記事ではその理由について解説してみます。 startコマンド startコマンドとは Microsoftのドキュメントによると、startコマンドは指定したプログラムまたはコマンドを実行するコマンドで、Windowsのコマンドプロンプトの組み込みコマンドのようです。 例えば
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く