Ben partialr makine adı veritabanında olup olmadığını aramak için çalışıyorum ve eğer öyleyse biz yeni makine adı ile değiştiriyoruz. Biz PowerShellNeden Invoke-sqlcmd yürütülürken çalışma dizini değişiyor?
Add-pssnapin sqlserverprovidersnapin100 -ErrorAction SilentlyContinue
Add-pssnapin sqlservercmdletsnapin100 -ErrorAction SilentlyContinue
$SelectQuery = "SELECT [$columnName] FROM [$DatabaseName].[dbo].[$TableName] Where [$columnName] is not null;"
try {
$Qresult= Invoke-sqlcmd -query $SelectQuery -Database $DatabaseName -ServerInstance $srvInstance -Verbose
$Qresult = $Qresult| % { $_.$columnName+"`n"
#check whether the Machine Name is found if the column value is processed in URL format
$IsOldFoundFromURL=TestOldMachineFromURL $Qresult $OldMachineName
#check whether the Machine Name is found if the column value is processed in Connection string format
$IsOldFoundFromConn=TestOldMachineFromconnstring $Qresult $OldMachineName
If ($IsOldFoundFromURL -or $IsOldFoundFromConn) {
LogWrite "Columns Name before changing: $columnName "
LogWrite "$Qresult"
}
Else {
LogWrite "OldMachine name is not found in DB"
Return
}
}
catch {
Write-error "Error occured when executing sql $SelectQuery"
LogWrite $Error[0]
}
Her şeyi kullanıyor
çalışıyor. Ancak Invoke-sqlcmd çalıştırıldığında, sürücü harfi SQLServer'a değişiyor: \ bu şaşırtıcı. Ben Windows 2012 R2 makineyi bu çalıştıran ve SQL Server karşı bu yürütme am
çalışma dizini, ne zaman geçerli komut yolundaki bir günlük dosyası yazma vardır bizim komut başarısız değişiyor zaman sorunudur 2012.
komut dosyası yolu, SQLserver: \ dizinine dönüşür ve günlük dosyası oluşturamaz ve başarısız olur.
Bu kod eksiksiz görünmüyor. Yazma günlüğüne hangi noktada yazıyorsunuz? – arco444
@ arco444 Snippet'i güncelleştirdikten sonra – Samselvaprabu
Günlüğe yazmayı denediğinde başarısız oluyor, ancak aslında gerçekleştiği yerde 'LogWrite 'işlevini kullanmadınız. Elbette bu, senaryonun en alakalı kısmı mı? – arco444