Home >
Windows にまつわる e.t.c.
Get-Help 対応 .ps1 の書き方
PowerShell では、Get-Help でコマンドレットの使い方を表示させることができます。
	
		
PS C:\> Get-Help Get-Item
名前
    Get-Item
構文
    Get-Item [-Path]   []
    Get-Item  []
エイリアス
    gi
注釈
    Get-Help を実行しましたが、このコンピューターにこのコマンドレットのヘルプ ファイルは見つかりませんでした。ヘルプの
    一部だけが表示されています。
        -- このコマンドレットを含むモジュールのヘルプ ファイルをダウンロードしてインストールするには、Update-Help を使
    用してください。
        -- このコマンドレットのヘルプ トピックをオンラインで確認するには、「Get-Help Get-Item -Online」と入力するか、
           http://go.microsoft.com/fwlink/?LinkID=113319 を参照してください。
		
		 | 
	
 
この仕様は、コマンドレットで馴染み深いのですが、.ps1 でも使うことができます。
 
about_Comment_Based_Help
https://technet.microsoft.com/ja-jp/library/hh847834.aspx
 
ここにあるように、.ps1 の先頭にヘルプを書きます。
構文
 
	
		| ヘルプキーワード | 
		意味 | 
		備考 | 
	
	
		| SYNOPSIS | 
		概要 | 
		  | 
	
	
		| DESCRIPTION | 
		説明 | 
		  | 
	
	
		| EXAMPLE | 
		例 | 
		複数記述可能 | 
	
	
		| PARAMETER | 
		パラメーター | 
		複数記述可能 | 
	
	
		| LINK | 
		関連するリンク | 
		  | 
	
 
こんな感じで書きます。
	
		<# .SYNOPSIS ここに概要を書きます
  .DESCRIPTION ここに説明を書きます 
		 .EXAMPLE ここに具体的な引数の例と解説を書きます(複数記述可)
  .EXAMPLE 
		ここに具体的な引数の例と解説を書きます(複数記述可)
  .PARAMETER 引数名 ここら引数の説明を書きます(複数記述可) 
		 .PARAMETER 引数名 ここら引数の説明を書きます(複数記述可)
  PARAMETER には 
		CommonParameters について説明が勝手に追加されるので 「<CommonParameters> 
		はサポートしていません」と書いておくと良いかもしれません。
  .LINK 関連するリンクの URL を書きます 
		http://www.vwnet.jp/Windows/PowerShell/SupportGetHelp.htm #> | 
	
 
 
自動生成されるヘルプ項目
	
		| 名前 | 
		スクリプト名から生成される | 
	
	
		| 注釈 | 
		スクリプト名と合成される | 
	
	
		| 構文 | 
		param 定義から生成される | 
	
 
サンプル
	
		
<#
.SYNOPSIS
概要
ハイブリット暗号(公開鍵方式暗号+共通鍵暗号)を使用して、安全なファイル交換用の暗号化/復号化をします
公開鍵方式なので、復号パスワードを送る必要はありません
<CommonParameters> はサポートしていません
.DESCRIPTION
・暗号化(-Mode Encrypto)
    受信者の公開鍵を -PublicKeys で指定してファイルを暗号化します
    受信者以外は復号できないので、誤送によるリスクが大幅低減します
    送信者の秘密鍵で電子署名をします
・復号化(-Mode Decrypto)
    自分の秘密鍵を使って復号化します
    復号化する前に、送信者公開鍵を -PublicKeys で指定し電子署名を確認するので、なりすましや改ざんリスクが大幅に低減します
・鍵ペア作成(-Mode CreateKey)
    公開鍵と秘密鍵のセットを作成します
    作成した公開鍵は受信者に渡します
    受信者にも鍵ペアを作成してもらい、受信者の公開鍵も入手します
    公開鍵はキーコンテナを削除しない限り同じ公開鍵が出力されます
・キーコンテナのエクスポート(-Mode Export)
    秘密鍵を格納したキーコンテナをエクスポート(バックアップ)します
・キーコンテナエクスポートテスト(-Mode Test)
    エクスポートファイルがパスワードで復号できるかをテストします
・キーコンテナのインポート(-Mode Import)
    エクスポートファイルからキーコンテナをインポート(リストア)します
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode CreateKey
鍵ペア作成
スクリプトを置いた場所にサブフォルダ(PublicKeys)が作成され、公開鍵(ユーザー名_Publickey.xml)が出力される
-Outfile を指定すると公開鍵のフルパスが指定できる
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode Encrypto -PublicKeys .\PublicKey\UserName_Publickey.xml -Path C:\Data\SecretData.zip
暗号化
元ファイルと同一フォルダーに暗号化ファイル(.enc)が出力される
-Outfile を指定すると暗号化ファイルのフルパスが指定できる
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode Decrypto -PublicKeys .\PublicKey\UserName_Publickey.xml -Path C:\Data\SecretData.enc
復号化
暗号化ファイルと同一フォルダーに元ファイル名で復号化される
-Outfile を指定すると復号化ファイルのフルパスが指定できる
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode Export
エクスポート(バックアップ)
C:\Users\ユーザー名\Documents\PSCryptography\Export\PSCryptoExport.dat が出力される
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode Import
インポート(リストア)
C:\Users\ユーザー名\Documents\PSCryptography\Export\PSCryptoExport.dat からインポートする
エクスポートファイルが存在しない時は、スクリプトと同じフォルダにある PSCryptoExport.dat をセットしてからインポートする
.EXAMPLE
PS C:\PSCrypto> .\PSCrypto.ps1 -Mode Test
テスト
エクスポートしたキーコンテナが復号できるかテストする
C:\Users\ユーザー名\Documents\PSCryptography\Export\PSCryptoExport.dat をテストする
エクスポートファイルが存在しない時は、スクリプトと同じフォルダにある PSCryptoExport.dat をセットしてテストする
.PARAMETER Mode
操作モード
    鍵ペア作成: CreateKey
    暗号化: Encrypto
    復号化: Decrypto
    Export: Export
    Test: Test
    Import: Import
.PARAMETER PublicKeys
公開鍵
    複数指定する場合はカンマで区切る
.PARAMETER Path
暗号/復号するファイル
.PARAMETER Outfile
出力ファイル(省略可)
<CommonParameters> はサポートしていません
.LINK
http://www.vwnet.jp/Windows/PowerShell/PublicKeyCrypto.htm
#>
#################################################################################
param(
    [ValidateSet("Decrypto", "Encrypto", "CreateKey", "Export", "Test", "Import")]
    [string]$Mode,      # モード
    [string[]]$PublicKeys,  # 公開鍵
    [string]$Path,          # 入力ファイル名
    [string]$Outfile        # 出力ファイル名
    ) 
		 | 
	
 
ヘルプを表示させたい場合は、Get-Help で自分自身を呼ぶようにしておけば OK です。
	
		$ScriptFullName = $MyInvocation.MyCommand.Path 
		Get-Help $ScriptFullName | 
	
 
ヘルプを埋め込んだスクリプトを公開していますので、こちらからスクリプトをダウンロードして書き方を見るのもいいかもしれませんね。
PowerShell で公開鍵方式暗号ファイルを交換をする
http://www.vwnet.jp/Windows/PowerShell/PublicKeyCrypto.htm
 
 
関連情報
PowerShell スクリプト引数(Param)の Tips
http://www.vwnet.jp/Windows/PowerShell/Param.htm
 
 


      
Copyright © MURA                                                                
All rights reserved.