içinde Powershell'den .1S1 dosyası çalıştırılamıyor StackOverflow'ta başka bir gönderide, tam ihtiyacım olanı yapacak gibi görünen bir komut dosyası buldum, ancak .ps1 dosya türünü çalıştırmaya çalışırken hata alıyorum. SSMS içinde PowerShell.SSMS
$server = "APPDEV2014"
cls
Import-Module "sqlps" -DisableNameChecking
$databases = Invoke-Sqlcmd -Query "select name from sys.databases where name not in ('master', 'tempdb', 'model', 'msdb')" -ServerInstance $server
foreach ($db in $databases) {
$dbName = $db.name
$procedures = Invoke-Sqlcmd -Query "select SCHEMA_NAME(schema_id) as [schema], name from $dbName.sys.procedures" -ServerInstance $server
foreach ($proc in $procedures) {
if ($schema) {
$shortName = $proc.schema + "." + $proc.name
$procName = $db.name + "." + $shortName
try {
$result = Invoke-Sqlcmd -Database $dbName -Query "sys.sp_refreshsqlmodule '$shortName'" -ServerInstance $server -ErrorAction Stop
Write-Host "SUCCESS|$procName"
}
catch {
$msg = $_.Exception.Message.Replace([Environment]::NewLine, ",")
Write-Host "FAILED|$procName|$msg" -ForegroundColor Yellow
}
}
}
}
komut ben yürütme ediyorum edilir:
ortamı 2014
Benim FindBrokenObjectsInSQLServer.ps1 dosyası olarak tanımlanır SQL Server
PS SQLSERVER:\SQL\APPDEV2014\DEFAULT> PowerShell -command
"H:\SQLScripts\FindBrokenObjectsInSQLServer.ps1"
Son olarak hata ben Alıyorum:
Import-Module : A positional parameter cannot be found that accepts argument
'?'.
At H:\SQLScripts\FindBrokenObjectsInSQLServer.ps1:3 char:1
+ Import-Module "sqlps"? -DisableNameChecking
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Import-Module], ParameterB
indingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.ImportModuleCommand
Her türlü öneri/yön takdir edilecektir. Bu PowerShell ile çalışırken ilk denemem. Teşekkürler.
Zaten bir PowerShell istemcisindesiniz (komut isteminin başında bulunan PS'e bakın), dolayısıyla 'PowerShell -command ... 'yazmanız gerekmez. Çalıştırmak istediğiniz komut dosyasının adını ve ardından parametrelerini yazıp Enter tuşuna basın. –
Teşekkür ederim, Bill. Yanıtı takdir et. – Melinda