PowerShellがリモートワークステーションにインストールされているかどうかを確認する方法; 展開の変更を計画できるように、すべてのPowerShell対応ワークステーションのインベントリを作成する必要があります。PowerShellがインストールされているかどうかとバージョンをリモートで知る方法はありますか?
22542 次
2 に答える
4
ファイルが存在するかどうかを確認しますか?
$path= "\\remote\C$\windows\System32\WindowsPowerShell\v1.0\powershell.exe"
if(test-path $path){(ls $path).VersionInfo}
于 2013-01-25T17:28:47.880 に答える
2
手動で実行するバッチ スクリプトを使用するか、GPO を (起動スクリプトとして) 使用してみてください。my-computer-name.txt
PowerShell が見つからない場合は "false" で、PS がインストールされている場合は PS バージョン (1.0 または 2.0)でファイルを保存します。次に、ファイルを読み取るだけです。
pscheck.bat
@echo off
FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\PowerShell\1" /v Install ^| FIND "Install"') DO SET PowerShellInstalled=%%A
IF NOT "%PowerShellInstalled%"=="0x1" (
echo false > \\remote\location\%COMPUTERNAME%.txt
GOTO end
)
FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" /v PowerShellVersion ^| FIND "PowerShellVersion"') DO SET PowerShellVersion=%%A
echo %PowerShellVersion% > \\remote\location\%COMPUTERNAME%.txt
:end
レジストリ内の 3.0 の PSversion 値は別のキー (...\PowerShell\3\PowerShellEngine) にありますが、PS3.0 は非常に新しく、すべての PS スクリプトが PS 2.0 で動作するため、知る必要はないと思います。
更新: Powershell のバージョン
function Check-PS {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline=$true)]
[String[]]$ComputerName = $env:COMPUTERNAME
)
Process
{
foreach ($computer in $ComputerName)
{
$path = "\\$computer\C$\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
$exists = $false
#Check if exists
if(Test-Path $path){
$exists = $true
#Detect version
switch -Wildcard ((Get-ChildItem $path).VersionInfo.ProductVersion)
{
"6.0*" { $ver = 1 }
"6.1*" { $ver = 2 }
"6.2*" { $ver = 3 }
default { $ver = 0 }
}
} else {
Write-Error "Failed to connect to $computer"
$ver = -1
}
#Return object
New-Object pscustomobject -Property @{
Computer = $computer
HasPowerShell = $exists
Version = $ver
}
}
}
}
複数のコンピューター名とパイプライン経由の入力をサポートしています。
Check-PS -ComputerName "Computer1", "Computer2"
または
"Computer1", "Computer2" | Check-PS
localcomputer (デフォルトのコンピューター名) でテストします。
PS > Check-PS
HasPowerShell Computer Version
------------- -------- -------
True FRODE-PC 3
于 2013-01-25T18:14:46.750 に答える