私が知っている限り、これを見るための「標準的な」方法はMSDNを読むことです。あなたはかなり簡単に、たとえば、Get-Help
ため-Online
スイッチを使用して、関連するページを取得することができます:-):
Get-Help -Name "Get-DscConfiguration" -Online
別のアプローチは、特定のバージョンを設定する-Version
スイッチを使用してたpowershell.exeを起動するかもしれません、例えばpowershell.exe -Version 2Get-Command
コマンドレットを使用して、コマンドレットがリストされているかどうかを確認します。
私は自分自身を楽しんでいます!スクリプトを解析し、コマンドが異なるPSバージョンの有効なコマンドレットである場合にうまく動作するように見えるコードがいくつかあります。この時点では、Start-Job
のスイッチ-PSVersion
によって「1.0」または「5.0」がサポートされているようには見えません。
param(
$file = 'C:\scripts\PowerShell\Toolkit\Get-PSVersionCompatibility.ps1'
)
New-Variable tokens
New-Variable parseerrors
$p = [System.Management.Automation.Language.Parser]::ParseFile($file,[ref]$tokens,[ref]$parseerrors)
$Commands = $tokens | ?{$_.TokenFlags -contains "CommandName"} | Sort -Unique | Select Value
$ScriptBlock = {
param($PSVersion,$Commands)
$Output = New-Object -TypeName PSObject -Property @{PSVersion = $PSVersion}
foreach($Command in $Commands) {
if([String]::IsNullOrEmpty($Command.Value)){continue}
if(Get-Command | ?{$_.Name -eq $Command.Value}) {
$Available = $true
} else {
$Available = $false
}
$Output | Add-Member -MemberType NoteProperty -Name $($Command.Value) -Value $Available
}
return $Output
}
$Results = @()
foreach($PSVersion in 2..4) {
$job = Start-Job -PSVersion "$PSVersion.0" -ScriptBlock $ScriptBlock -ArgumentList $PSVersion,$Commands
Wait-Job $job | Out-Null
$Results += (Receive-Job $job | Select PSVersion,*-*)
Remove-Job $job
}
$Results | FT -AutoSize
Remove-Variable tokens
Remove-Variable parseerrors
powershell
私は通常、特定のコマンドレット(引数とタイプではなく、役に立たない「fooというコマンドを使用する」ページを持つ1)については、MSDNのドキュメントをチェックして、バージョンが場所を確認するためにドロップダウンチェック始まる。 – Eris