ラベル powershell の投稿を表示しています。 すべての投稿を表示
ラベル powershell の投稿を表示しています。 すべての投稿を表示

2012年10月7日日曜日

実行中プロセスをhtmlで出力するpower shellスクリプト





powershellにはConvertTo-Htmlというhtml変換のためのコマンドレットが標準提供されています。

デフォルトの形式のままでもtableタグを使って表形式で表示されているのですが、見た目的にあまりにシンプルで味気ないので、テーブルをzebraで表示するスクリプトを書いてみました。


$a = Get-Process | ConvertTo-Html -Title "Process Table" -Body "<h2>Current Running Processes</h2>"
$red = $true

for($i = 0; $i -le $a.length; $i++){
    if($a[$i] -like "*<tr>*</tr>"){
        if($red){
            $a[$i].replace("<tr>","<tr bgcolor=FF8C00>")
            $red = $false;
         }else{
            $a[$i].replace("<tr>","<tr bgcolor=FFE4C4>")
            $red = $true;
         }         
     }else{
        $a[$i]
     }
}
出力されるHTMLはこちら

2012年10月3日水曜日

powershellでスクリプト実行を許可する方法


powershellはデフォルトで全スクリプト実行がoffになっているようだ。

ローカルにあるスクリプトだけ実行できるようにコマンドをうつ(もちろんpowershellで)


PS C:¥develp>Set-ExecutionPolicy RemoteSigned

今の設定を確認するコマンドGet-ExecutionPolicyをうって設定が反映されていることを確認する

PS C:¥develp>Get-ExecutionPolicy
RemoteSigned

なお、スクリプトの許可権限は以下の4つがある。


  1. Restricted すべてのスクリプトが実行禁止。PowerShellインストール直後のデフォルト設定
  2. AllSigned 署名されているスクリプトのみが実行可能。署名されていないスクリプトは実行禁止
  3. RemoteSigned ローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能
  4. Unrestricted すべてのスクリプトが実行可能。ただしインターネットからダウンロードしたスクリプトは、実行するかどうかが確認されるので、ユーザーが明示的に許可した場合のみ実行される