2017-07-05 23 views
1

私はサーバに接続するためのpowershellスクリプトに取り組んでいます。パラメタなしでスクリプトの中にサーバー名を渡している場合は動作しますが、サーバー名として入力を使用している場合は「サーバーが見つかりません」と表示されます。上記のコードpowershellがパラメータを認識できません

clear 

#param([string]$servername) 

$filePath = "c:\temp\result.txt" 
$Servername= "cx-siscsqltest\sqlinst" 


#$SqlQuery = "select SUBSTRING(CONVERT(sysname, SERVERPROPERTY('ProductVersion')),0,CHARINDEX('.',convert(sysname,SERVERPROPERTY('ProductVersion')),0)) as 

#'ProductVer';" 

$SqlQuery="select * from sys.sysaltfiles" 



$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 

$SqlConnection.ConnectionString = "Server = '$Servername'; Database = master; Integrated Security = SSPI;" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 
$DataSet.Tables[0] | out-file "C:\temp\version.csv" 

#$version=System.Data.DataSet.Tables[0].Rows[0][0] 
write-host $version 

パラメータなしでうまく動作しますが、私は、パラメータとしてサーバー名を取る場合、私は次のエラーを取得:以下のスクリプトを参照してください

The term 'param' is not recognized as the name of a cmdlet, function, script fi 
le, or operable program. Check the spelling of the name, or if a path was inclu 
ded, verify that the path is correct and try again. 
At D:\sysdba\install_sp.ps1:4 char:6 
+ param <<<< ([string]$servername) 
    + CategoryInfo   : ObjectNotFound: (param:String) [], CommandNotFou 
    ndException 
    + FullyQualifiedErrorId : CommandNotFoundException 

Exception calling "Fill" with "1" argument(s): "A network-related or instance-s 
pecific error occurred while establishing a connection to SQL Server. The serve 
r was not found or was not accessible. Verify that the instance name is correct 
and that SQL Server is configured to allow remote connections. (provider: Name 
d Pipes Provider, error: 40 - Could not open a connection to SQL Server)" 
At D:\sysdba\install_sp.ps1:25 char:17 
+ $SqlAdapter.Fill <<<< ($DataSet) 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : DotNetMethodException 

あなたは私を助けてくださいことはできますか?

答えて

2

Param()は、スクリプトの最初の行にする必要があります。 clearを削除すると、param()の色が変更されます。

+0

クエリ「select SUBSTRING(sysname、SERVERPROPERTY( 'ProductVersion'))、0、CHARINDEX( ')を実行中にエラーが発生します。 '、convert(sysname、SERVERPROPERTY(' ProductVersion '))、0))as #' ProductVer '; "次のエラー式またはステートメントで予期しないトークン 'ProductVer' ''が発生しました。 (sysname、SERVERPROPERTY( 'ProductVersion '))、0、CHARINDEX( '。'、convert(sysname、SERVERPROPERTY) '; $ SqlQuery = "SUBSTRINGを選択すると、D:\ sysdba \ install_sp.ps1:9 char: ( 'ProductVersion'))、0)) "P roductVer" "<<<< + CategoryInfo – deepti

+0

@deeptiトラブルシューティング、リサーチ。それを解決できない場合は、それを良い状態にしてから、**新しい質問**をお聞きください。 – gms0ulman

関連する問題