PowerShellのバージョン確認する方法2選 と 最新バージョンの調べ方

PowerShellバージョン確認をおこなうコマンドを2つ紹介します。

 

しばらくPowerShellを使っていなかったので久々に利用しようと思い、

先に自分のPCにインストールされているバージョン確認をすることにしました。

 

また、最新バージョンが新しく出ていればバージョンアップも検討したいなと思い、

ついでに最新バージョンも確認しておきました。

最新バージョンの確認方法も後述していますので合わせて参考にしてください。

 

それではまず、インストール済みのPowerShellのバージョンを確認する方法を2つご紹介します。

 

バージョン確認方法1:GET-HOSTコマンドを使う。

手順1:PowerShellを起動

手順2:GET-HOSTと入力しエンターキーを押下して実行

手順3:出力結果のVersionの値を確認する

 

GET-HOSTコマンドでのバージョン確認の実行結果例:

PS C:\WINDOWS\system32> get-host

Name : ConsoleHost
Version : 5.1.17134.228
InstanceId : 7080b63e-f0ff-4fe7-afce-dfcc5026b913
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : ja-JP
CurrentUICulture : ja-JP
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace

 

 

 

バージョン確認方法2:$PSVersionTableの変数を確認する

手順1:PowerShellを起動

手順2:$PSVersionTableと入力しエンターキーを押下して確認

手順3:出力結果のPSVersionの値を確認する

 

$PSVersionTableでのバージョン確認の実行結果例:

PS C:\WINDOWS\system32> $PSVersionTable

Name Value
—- —–
PSVersion 5.1.17134.228
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.17134.228
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

 

 

上記のバージョン確認によって、

私が利用しているWindows PowerShellのバージョンが

5.1系だとわかりました。

 

次にPowerShellの最新バージョンを確認してみます。

 

 

最新のPowerShellのバージョン確認

調べ方はいくらでもありそうですが、最新バージョンは

Windows PowerShellの生みの親であるMicrosoft社の公式ページで

確認するのが一番正確で間違いなさそうですね。

 

手順1:Microsoft社のPowerShellのページにアクセスする

以下がMicrosoft社のPowerShellのページです。

 

手順2:適当に詳細な下層ページにアクセスする

どの項目でもよいので、詳細な下層ページに移動してください。

ex. https://docs.microsoft.com/powershell/scripting/powershell-scripting

 

手順3:PowerShellのバージョンを確認する

PCだとサイドバー、スマホだとcontentsメニューボタンに

現在までのPowerShellのバージョン情報が載っています。

 

概要 -> 新機能と進むと、最新情報が載ってます。

どうやらPowerShell Core 6.1がリリースされていそうです。(2018/11現在)

 

 

最新バージョンの6.1にしようかと思ったんですが、

どうやら5系とかなり違うみたいで、

影響が出るなんてことが書いてました。

 

今回はちょっと利用したかっただけなので

結局5.1をそのまま利用することにしました。

 

 

PowerShellでIEを操作。ブラウザでURLに自動アクセスする方法【簡単・解決】

PowerShellでIE(Internet Explorer)を操作する方法を紹介します。

 

この方法によりPowerShellで対象のURLにブラウザ上から自動アクセスすることができるようになり、様々なことができるようになります。

 

PowerShellを用いた特定URLへの自動アクセスの利用例

・サイトの動作確認・テスト

・特定URL先の定期的な監視・更新状況確認

・特定URL先の定期的な自動情報収集

など。

 

利用方法はあなたの発想と技量次第です。PowershellでのURL自動アクセスを利用し、あなたの仕事や趣味などに活用していきましょう。

 

 

IEの起動

$ie = new-object -com InternetExplorer.Application;

$ie.visible=$true;

 

IEでURLにアクセスする

$ie.navigate2(“https://www.yahoo.co.jp/”);

 

IEの終了

$ie.Quit();

 

 

よくあるパターンとしては、URLを動的に生成し、アクセスすることなどがあります。特にGETパラメータを利用するページなどは動的リンクを生成しやすく多くの情報を取得でき、自動アクセスで利用しやすいです。

 

POSTパラメータを操作して、サイトに自動ログインするなどもできますが、少し複雑な話しになり趣旨がずれるため今回は割愛します。

 

 

Powershellはタスクスケジューラとの相性が良い

PowershellはWindows製ということで、相性が良いのが同じくWindows製の「タスクスケジューラ」です。

「タスケジューラ」を利用し、指定した日時や曜日に、Powershellのスクリプトを仕込んでおくことで、自動で定期的にPowershellを実行することができるようになります。

 

今回のIE操作においても、定期的に自動で特定のURLにアクセスできるようになるので、何かと応用例が広く重宝することだと思います。

 

Powershellを上手に活用して、良い自動化ライフを過ごしましょう。

 

 

.ps1拡張子ファイルを使うソフト「PowerShell」とは??【Windows PowerShell】

「.ps1」という拡張子をファイル名の末尾にもつファイル。ときどきWindowsパソコンの中で見つけるかと思いますが、その「.ps1」ファイルは、Windows PowerShellというWindowsが標準搭載しているアプリケーションソフトで利用するファイルになります。

知っている人からすれば何でもないファイルですが、知らない人から見れば、何かわからず不安だったり、削除してよいかわからなかったり、使い方がわからないファイルです。

今回は「.ps1」の拡張子を持つファイルと、Windows PowerShellについてご紹介します。

 

Windows PowerShellとはどんなアプリケーション??

プログラマーの人に向けた説明

Windows用としてWindowsに初期インストールされているCUIです。PowerShellはコマンドプロンプトとは違い、linuxで利用できたコマンドの一部が利用できます。CUI好きのかたであれば、PowerShellについて学ぶことで、一般的なシェルやCUIと同じような幅広い応用が可能となります。

プログラマーではない人に向けた説明

PowerShellとはWindowsのパソコンをプログラミングによって制御・操作したり、自動処理を行うようなプログラマー向けのソフトです。はじめからWindowsに標準搭載されているアプリケーションソフトで、特に不安になるようなソフトではありません。ただし「ps1」ファイルの実行においては注意が必要です。詳しくは後述の内容をご覧ください。

 

「.ps1」の拡張子を持つファイルはどんなことをするファイル?

「.ps1」ファイルは、PowerShellでパソコンに処理を行わせるプログラミングが書かれたファイルです。PowerShellで「.ps1」ファイルを実行することで、「.ps1」ファイルに書かれているプログラミングの処理が実行されます。自分自身で作った「.ps1」ファイルであれば何が実行されるかわかっているので好きに利用すれば良いですが、もし自分が作ったものではない「.ps1」ファイルをPowerShellで実行する場合は、注意が必要です。その「.ps1」ファイルを実行することによりWindowsのパソコンが何らかのプログラミングされた処理を行うことになるからです。信用しているところから用意した「.ps1」ファイルであれば大丈夫でしょうが、基本的に中身のプログラミングの内容が理解できない「.ps1」ファイルは何を実行されるかわからないので実行しないほうが良いでしょう。

 

「.ps1」ファイルは削除しても良いの?

自分で作ったものやネットからダウンロードした「.ps1」ファイルであれば自己責任のもと自由に削除すべきです。しかしながら、もしWindowsに初めから準備されている「.ps1」ファイルであれば、何かのタイミングで自動実行されたり、必要となるファイルの可能性があります。

そのため、Windowsに初めから入っていたと思われる「.ps1」ファイルは中身が理解できなければ、削除せずにそのまま置いておきましょう。Windowsで使うファイルくらいに考えておくと良いと思います。

 

「.ps1」ファイルを削除してしまった

Windowsに元から入っていた「.ps1」ファイルを削除してしまった場合、こればかりはどういうプログラミング処理が書かれていたかによって、どう対処すれば良いかも変わってきます。

ただ、影響のないファイルの可能性もありますのでひとまずは様子を見てください。その時に注意することは、削除前と削除後でパソコンの動きに何かの変化が無いかを意識しながら、パソコンを利用するように心がけましょう。もし削除後にパソコンの動きがおかしいと思えば、パソコンの購入元やメーカー会社に「何月何日に○○というファイルを削除してからパソコンの動きが△△になってしまった」と相談してみましょう。

 

「.ps1」ファイルはプログラマーでないかたは特に自ら利用することもないファイル

基本的に「.ps1」ファイルはPowerShellを用いてパソコンにプログラミング処理を行わせるファイルですので、プログラマーでないかぎり、特に自ら実行するようなことはありません。Windowsの生みの親であるMicrosoftや、パソコンのメーカー会社、パソコンに詳しい知人からのアドバイスなどが無い限り特に実行する必要はありません。

逆にWindowsを使っているプログラマーの人にとってはPowerShellは便利なソフトですのでどんどん利用していくと良いでしょう。

PowerShellでファイルコピーやフォルダコピーするやり方【らくらく簡単】自動化も可能

PowerShellファイルコピーフォルダコピーするコマンド使い方をご紹介します。

コマンド1行を実行するだけで手軽にコピーすることができますし、シェルでの実行のため、定期的な自動実行処理としても利用できるのでとても便利です。

 

ファイルやフォルダをコピーする方法

以下のコマンドを実行します。

※同じファイル名やフォルダ名のものがある場合、強制的に上書きするので実行には注意してください。上書きコピーしない方法は、後述していますので下部を参考にしてください。

 

【コマンド】

Copy-Item コピー元のファイルパス コピー先のファイルパス コピー -Recurse -Force

 

【コマンドの使用例】

・tmpフォルダからcopiedフォルダにテキストファイルをコピーする場合

Copy-Item c:\tmp\a.txt c:\copied\ -Recurse -Force

 

・tmpフォルダからcopiedフォルダにa.txtファイルをb.txtファイルとしてコピーする場合

Copy-Item c:\tmp\a.txt c:\copied\b.txt -Recurse -Force

 

【コマンドの説明】

Copy-Item コマンドによりファイルやフォルダをコピーします。

オプションとして-Recurseを指定することで再帰的にコピーできます。また、-Forceを指定することで同じファイル・フォルダ名のものが存在する場合、強制的に上書きします。同じ名前のものが存在する場合に上書きしたくない場合は、-Forceオプションを指定せずに実行します。

 

【同じ名前のものが存在する場合に上書きしないコピー方法】

Copy-Item コピー元のファイルパス コピー先のファイルパス コピー -Recurse

【コマンドの使用例】

・tmpフォルダからcopiedフォルダにテキストファイルをコピーする場合(同じ名前のファイルが存在する場合は上書きコピーしない)

Copy-Item c:\tmp\a.txt c:\copied\ -Recurse

 

 

ファイルをシェルで自動コピーするような処理は利用機会も多いです。是非活用してみてださい。自動処理する場合はWindowsの標準機能であるタスクスケジューラにセットして自動実行してください。

 

Windows PowerShellの本

PowerShellを勉強するなら手元に本があるとなお便利です。

 

 

 

【Windows PowerShell】ファイルの権限を確認する【コマンドで簡単にまとめて権限確認】

Powershellを使って、ファイルに設定されているファイルへのアクセス権限確認する方法を紹介します。

 

ファイルの権限確認は業務を遂行していると何かと重要になってきます。

Powershellで特定のファイルを実行するときはもちろん、ファイルを上書き更新する際は書き込み権限(write権限)が必要になったり、ファイルを読み込むときは読み取り権限(read権限)が必要になります。

なお、ファイルだけでなく、フォルダにおいても同様に権限が必要になります。

 

以下の手順でコマンドを入力することで対象のディレクトりにあるファイルはもちろんフォルダの権限もまとめて確認することができます。

 

# 対象のディレクトリに移動

cd \c:\tmp

# 現在のディレクトリ配下のファイルの権限一覧を表示する

Get-ChildItem . -Recurse | Get-ACL

 

もしファイルに出力したい場合は以下のように出力処理も

パイプで 追加してあげれば出力できます。

Get-ChildItem . -Recurse | Get-ACL |Export-Csv c:\list.csv

 

 

Windows PowerShellの本

PowerShellを勉強するなら手元に本があるとなお便利です。

 

 

 

【Windows PowerShell】エンコードを一括変換する

Powershellエンコード一括変換する機会があったので方法を紹介します。

 

お客様のサイトの、全てのphpファイルのエンコードを「S-JIS」から「UTF8」にするという作業がありました。その際、ファイル数が多かったので、 Powershellエンコード一括変換しました。

 

せっかくなので使用したプログラムを汎用的に利用できるようにし、掲載します。

※ご利用される際は、バックアップ後に自己責任でご利用ください。

 

【仕様】

・指定した拡張子のファイルを、一括でエンコード変換します。

・設定値を変更することで、エンコード対象となるファイルの種類(拡張子)、エンコードの種類、ファイルパスを自由に変更できます。

 

【使用方法】

0.ファイルをバックアップしてください。

1.$extensionに、エンコードを一括変更したいファイルの拡張子を設定します。

2.$encodeに、変更後のエンコードを設定します。

3.$path に、変更したいファイルを格納しているパスを絶対パスで設定します。

4.サイトページの使用上、プログラム内のダブルクォーテーションが全角に変換されているため、半角に一括置換してください(汗

5.Windows PowerShellでプログラムを実行します。

 

#————————————————–
#
# エンコード一括変更
# 2016/10/29 ver 1.0
#
#————————————————–

#=============================
#【設定】START
#=============================

#————————————————–
# エンコードを変更する対象ファイルの拡張子
# ex. $file = “html”
#————————————————–
$extension = “php”

#————————————————–
# エンコード指定
#————————————————–
$encode = “UTF8”

#————————————————–
# エンコードを変更するファイルの格納先ディレクトリ
# ※再帰的にエンコードを行うので注意してください。
#————————————————–
#$path = “C:\change_encode”

#=============================
#【設定】END
#=============================
#【処理】START
#=============================

#変数定義
$extension_tmp = $extension + “.tmp”
$file = “*.” + $extension
$file_tmp = “*.” + $extension_tmp
$dot = “.”

#対象ファイルの階層までディレクトリを移動
cd $path

#バックアップフォルダを作成
$now = date -format “yyyy-MM-dd-HH-mm”
$bak_folder = “bak_” + $now
mkdir $bak_folder
#ファイルの一括バックアップ
Get-ChildItem . -Recurse -Include $file | %{cp $_ $bak_folder}

#ファイルをtmpファイルに変更
Get-ChildItem -Name | Rename-Item -NewName { $_ -replace ($dot + $extension), ($dot + $extension_tmp)}

#対象ファイルのエンコードを一括変更する
Get-ChildItem . -Recurse -Include $file_tmp | ForEach-Object {Get-Content $_.FullName | Out-File -Encoding $encode ($_.FullName -replace ($dot + $extension_tmp), ($dot + $extension))}

# tmpファイルを一括削除
del $file_tmp

#=============================
#【処理】end
#=============================

 

Windows PowerShellの本

PowerShellを勉強するなら手元に本があるとなお便利です。

 

 

 

【Windows PowerShell】ファイルの拡張子を一括変更【コマンド1つで簡単・解決】

PowerShellを使えば、ファイル拡張子一括変換したい時に、必見です。

コマンド1つで簡単にファイルの拡張子をまとめて一括変換することができます。

 

ファイル数が2,3個であれば、1つずつ手作業で拡張子を変更すれば良いのですが、ファイル数が多い時には、1つずつ拡張子を変更するのは非常に時間がかかりますし、なにより面倒で大変ですよね。

 

そういう時にPowershellでコマンド1つで簡単にらくらく拡張子を一括変換する方法です。

※この方法を使えば、拡張子だけでなくファイル名もまとめて一括変更することも可能です。

 

 

【ファイルの拡張子を一括で変換するコマンド】

cdコマンドで対象のフォルダのところまで移動したあとに以下を実行します。

Get-ChildItem -Name | Rename-Item -NewName { $_ -replace “\.変換前の拡張子$”, “.変換後の拡張子”}

 

例. htmlファイルをphpファイルに一括で変換

Get-ChildItem -Name | Rename-Item -NewName { $_ -replace “\.html$”, “.php”}

 

※拡張子を一括で変更するため、まずは Get-ChildItem -Nameだけを実行して

変更したいファイル名だけが対象であることを確認してから実行しましょう。

 

 

Windows PowerShellの本

PowerShellを勉強するなら手元に本があるとなお便利です。