Sql server 2008 使用PowerShell sql server加密所有现有存储过程

Sql server 2008 使用PowerShell sql server加密所有现有存储过程,sql-server-2008,powershell,stored-procedures,encryption,sql-server-2008-r2,Sql Server 2008,Powershell,Stored Procedures,Encryption,Sql Server 2008 R2,我想加密现有数据库中的所有存储过程 所以我尝试使用shell脚本 $db = (new-Object Microsoft.SqlServer.Management.Smo.Server("SQL_instance")).Databases.Item("[DB_name]") Foreach ($sp in $db.StoredProcedures){ if(!$sp.IsSystemObject){ if (!$sp.IsEncrypted){ $sp.TextM

我想加密现有数据库中的所有存储过程 所以我尝试使用shell脚本

$db = (new-Object Microsoft.SqlServer.Management.Smo.Server("SQL_instance")).Databases.Item("[DB_name]") 

Foreach ($sp in $db.StoredProcedures){
  if(!$sp.IsSystemObject){
    if (!$sp.IsEncrypted){
        $sp.TextMode = $false;
        $sp.IsEncrypted = $true;
        $sp.TextMode = $true;
        try
{
            $sp.Alter();
}
catch{
Write-Host "$sp.Name fail to encrypted."
}

     }
  }
}
它在我的一个本地服务器上工作,但在客户端的服务器上不工作

我得到以下错误

您的脚本对我来说运行得很好-因此我怀疑您可能需要在管理员模式下运行powershell或提升其权限。

“我想加密现有数据库中的所有存储过程”-可能会出错@MitchWheat是否有不同版本的shellscripts?请确保加密是安全的。试试这个,它不是PowerShell,但它可以工作!