2017-09-28 7 views
0

このスクリプトがなぜ機能しないのか分かりません。私の代わりにPS Cの左端に「>>」それだけで次の行に行くと持って、それを実行しようとすると:\ Users \ユーザー名>OSを検出してシステムIFシステムにインストールされているSQLのバージョンを表示するPowershellスクリプト

$Version = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\Currentversion" -Name Productname).Productname | if ($version -like "*server*") {Get-ItemProperty HKLM:\software\microsoft\windows\currentversion\uninstall\* | Where-Object {$_.displayname -match "sql server"} 

私はここで間違って何をやったか、誰が見ていますか?私は両方の部分が独立して動作することを確認することができます。if文と一緒に置くと問題が発生しているようです。

編集:$version = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\Currentversion" -Name Productname).Productname ; if ($version -like "*server*") { Get-ItemProperty HKLM:\software\microsoft\windows\currentversion\uninstall\* | Where-Object {$_.displayname -match "sql server"} } これは機能しました。

+1

あなたは 'if(){thing |どこに{} 'があり、'} 'がありません。あなたは 'get-thing | if ... 'at – TessellatingHeckler

+0

OSのバージョンを見つける方法はありますか?サーバだけでSQLバージョンを表示するコマンドを実行しますか? – Maxadon

+0

Active Directoryをお持ちですか? – ArcSet

答えて

0

まず$バージョンを割り当てる必要があります。これはif文で使用できます。

$version = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\Currentversion" -Name Productname).Productname 

if ($version -like "*server*") 
{ 
    Get-ItemProperty HKLM:\software\microsoft\windows\currentversion\uninstall\* | Where-Object {$_.displayname -match "sql server"} 
} 

Thanks、Tim。

関連する問題