2016年8月31日水曜日

◆ストアアプリの削除方法

ストアアプリはプログラムの追加と削除からではなくPowerShellでやる必要があるのだとか。(GUIを提供しないのは手抜き?)

http://answers.microsoft.com/ja-jp/windows/wiki/apps_windows_10-outlook_mail/windows-10/239ef7e9-9f4f-40dc-bf41-2cd2b8217843

2016年8月26日金曜日

◆PowerShellでWebサイトをホストする

http://powershell.com/cs/blogs/tips/archive/2016/08/11/creating-powershell-web-server.aspx

IISとか無しにWebサイトをPowerShellだけでホストしちゃいましょって感じ。

このサンプルを実行しておいて、http://localhost:8080/ にアクセスすると「Here is PowerShell」という文字を表示、http://localhost:8080/services にアクセスするとGet-Serviceした内容を返すというもの。
http://localhost:8080/hoge といった存在しないアドレスにアクセスすると404を返してサービス終了といった仕様になっているようだ。

こんなに簡単にできちゃうんですね。

2016年8月23日火曜日

◆ExplorerのパスをカレントにしてPowerShellを開く

ExplorerのアドレスバーにPowerShellと打ってEnterを押すと、そこをカレントにしてPowerShellウインドウが開く。
http://powershell.com/cs/blogs/tips/archive/2016/08/09/opening-powershell-for-folder.aspx

image

image

image

本当にTipsって感じ。

2016年7月20日水曜日

◆Windows10でのWindowsUpdateのログ

いつも苦労するWindowsUpdate

Windows10ではPowerShellコマンドを使わないとログが見れないのだとか。
http://www.atmarkit.co.jp/ait/articles/1607/15/news035_4.html

また、ログに吐かれたIDをWebから検索して詳細を表示する仕掛けらしいのだが、見つからないIDが結構ある。(UnKnownで表示される)

UnKnownは邪魔なのでスキップして表示するようにしてみた。

001
002
003
004
005
006
007
008
009
010
011
012
013
014

filter grep
{
 
param
(
 
$keyword,
  [switch]$notmatch
)
 
$_ | Out-String -Stream |
 
      
Select-String -Pattern $keyword -NotMatch:$notmatch
 
}


$logPath = "D:\desktop\WindowsUpdate.log"
Get-WindowsUpdateLog -LogPath $logPath
(Get-Content $logPath |
 
   
grep -keyword "Unknown" -notmatch)  | Out-File $logPath

結果は以下のような感じ。
image

2016年6月8日水曜日

◆バージョンをソートする

strip off data from variable

Win32_Product から .NET Frameworkのバージョンを調べたい。
複数のバージョン戻り値から最新を取り出すにはどうすれば良いですかね・・・。

といった感じの質問だろうか。

バージョンが文字列で返ってきているのでどうやってソートしましょうか。

以前、以下のサンプルで使ったVersionクラスにキャストすると良さそう。
◆IPアドレスをソートする

PowerShell的にはそれだけのお話。

ちょっと気になるのが、.NET Frameworkのバージョンを調べるのに本当にWin32_Productで良いのだろうか。

以下にかなりの力作があるので実行してみたところ、若干(だいぶ?)異なる。
.NET Frameworkのバージョンを確認する方法

以前以下の様な例も見たことがあるが、これもちょっと違う。

PS> dir  $env:windir\microsoft.net\framework\v* –name

それではと、VisualStudioを立ち上げてみたが結局どれとも異なる。

まぁ、いいか。(笑)

2016年4月27日水曜日

◆長いファイル名を扱う

http://powershell.com/cs/blogs/tips/archive/2016/04/14/dealing-with-long-file-names.aspx

フォルダー階層が深くなりすぎるとファイルの参照が出来なかったりする。

PSAlphaFSというモジュールを使うと長いパスに対応したコマンドレットを提供してくれるそうな。

PS> Install-Module -Name PSAlphaFS -Scope CurrentUser

PS> Get-Command -Module PSAlphaFS | Select-Object Name, Version

Name              Version
----              -------
Copy-LongItem     1.0.0.0
Get-LongChildItem 1.0.0.0
Get-LongItem      1.0.0.0
Move-LongItem     1.0.0.0
New-LongItem      1.0.0.0
Remove-LongItem   1.0.0.0
Rename-LongItem   1.0.0.0 

バージョンは5.0からですかね。(Install-Moduleが5から、PSAlphaFS自体がどうかは?)

モジュールは予め用意しなくても、勝手にダウンロードしてくる。
ただし、最初にNuGetを用意しておく必要があるのだと。
ただ、これも自動的にダウンロードしてくれるようなので成り行きに任せておけばなんとかなる。

image

2016年4月26日火曜日

PowerShellでTail

ログを監視するときなどに便利なtail(ファイルの最後を読み取る)。

前から出来ていたような気がしましたが3.0からなんですね。

>Get-Content  hoge.log –Wait  -Tail 0

Tailing Log Files - Power Tips - PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources