PowerShellでGAC(グローバル・アセンブリ・キャッシュ)覗き見!

▼ Microsoft.PowerShell.ConsoleHost.dllの場所

New-PSDrive -Name "chiakiGAC" -PSProvider "FileSystem" -Root "C:\WINDOWS\assembly"
Get-ChildItem chiakiGAC:\GAC_MSIL\Microsoft.PowerShell.ConsoleHost\1.0.0.0__31bf3856ad364e35

▼ Bing検索結果
つ|グローバル アセンブリ キャッシュ – Bing
つ|New-PSDrive – Bing
つ|Get-ChildItem – Bing

[Tips]Enter-PSSessionコマンドレットでのエラー対処

ドメインに参加していないPCでEnter-PSSesionコマンドレットを使用しようとすると、下記のようなエラーが表示される場合があります。

エラー

このような場合には、TrustedHostにマシンを登録します。

最初にTrustedHostを確認する方法ですが

管理者モードでPowerShellを起動し、

PS> Get-Item WSMan:\localhost\Client\TrustedHosts

とします。

次にTrustedHostの設定ですが、

PS> Set-Item WSMan:\localhost\Client\TrustedHosts -Value *

のようにします。

この場合は、全てのマシンを許可します。

[メモ]CTP3とRC版でのISE Object Modelの相違

CTP3とRC版では、ISE Object Modelに相違があるので注意。

CTP3 RC
$psise.CurrentOpenedRunspace $psise.CurrentPowerShellTab
$psise.CurrentOpenedRunspace.ToolsMenu $psise.CurrentPowerShellTab.AddOnsMenu
$psise.CurrentOpenedRunspace.OpenedFiles $psise.CurrentPowerShellTab.Files
$psise.OpenedRunspaces $psise.PowerShellTabs
$psise.CurrentOpenedFile $psise.CurrentFile
$psise.Options.LocalHelp $psise.Options.UseLocalHelp

[Tips]Windows VistaにPowerShell V2 RCをインストールするには?

Windows Vista に Windows PowerShell V2 RC(以下PowerShell V2)をインストールする手順について説明します。

PowerShell V2は以前のバージョンのPowerShellと共存することはできません。

以前のバージョンをアンインストールするには [Tips]Windows VistaからPowerShell V1をアンインストールするには? を参照してください。


1.インストーラーのダウンロード

https://connect.microsoft.com/windowsmanagement/Downloads にアクセスして Windows Vista用のインストーラをダウンロードします。

一覧から「Core(PowerShell and WinRM) for Vista and Server 2008」を探してクリックします。

このとき、X86とX64があるので使用するPCに合わせてリンクをクリックしてください。

2.ダウンロードページが表示されるので、Windows6.0-KB968930-x86_Update.msu にチェックを付け、[ダウンロード]ボタンをクリックします。

3.ダウンロードした Windows6.0-KB968930-x86_Update.msu をダブルクリックして実行します。

4.[Windows Update スタンドアロン インストーラ]ダイアログが表示されるので[OK]ボタンをクリックします。

5.「更新プログラムのダウンロードとインストール」が表示されるので[同意します]をクリックします。

6.インストールが始まります。

7.[閉じる]をクリックしてインストールを完了します。

正常にインストールが完了すると、[アクセサリ]の中に[Windows PowerShell]グループが作成され、Windows PowerShellとWindows PowerShell ISEが配置されます。

[Tips]正規表現でファイル名を変更する

デジカメで撮った写真が溜まってきたので、整理しようかと考えました。

ついでなので、わかりやすいファイル名を付けようと思います。

ということで以下が今回使用したコマンドです。

dir "Photo*.jpg" | ren -newName { [Text.RegularExpressions.Regex]::Replace($_.Name, "Photo(\d*)`.jpg", "運動会`$1.jpg") }

このコマンドはPhotoXXX.jpg というファイル名を 運動会XXX.jpg に変換します。XXXは連番を意味しています。

まずはdirで対象の画像ファイルを絞り込み。

次に、絞り込んだファイルをパイプで渡してren(Rename-Itemコマンドレット)でファイル名を変換します。

ファイル名の変換は、正規表現を扱うクラスのReplaceメソッドで行っています。

Replaceメソッドの第1引数が元のファイル名、第2引数が変換後のファイル名です。

第1引数の方は”Photo(\d*)`.jpg”とすることで、Photoで始まる連番ファイルを対象にしています。このとき、拡張子の部分は`を付けないと上手く行かないので注意してください。

第2引数は、連番を残して「Photo」を「運動会」に変更しています。$1というのは第1引数の正規表現パターンを表しています。今回は連番の部分が相当します。

もしも正規表現パターンが複数ある場合は$1,$2とパターン分の指定が可能になります。

今回のコマンドを実行すると

Photo000.jpg
Photo001.jpg
Photo002.jpg
Photo003.jpg
Photo004.jpg
Photo005.jpg
Photo006.jpg
Photo007.jpg
Photo008.jpg
Photo009.jpg

というファイル群は

運動会000.jpg
運動会001.jpg
運動会002.jpg
運動会003.jpg
運動会004.jpg
運動会005.jpg
運動会006.jpg
運動会007.jpg
運動会008.jpg
運動会009.jpg

のように変換されます。

 

万が一に備えて、ファイルのバックアップを取った上で実行してください。PowerShell from Japan!! では責任は負いかねます。