是否可以创建一个Powershell脚本,将登录名从源服务器移动到目标服务器,包括当前密码?我尝试使用sp_help_revlogin
过程,但无法将t-sql输出转换为变量。
$handler = [System.Data.SqlClient.SqlInfoMessageEventHandler] {param($sender, $event) $LoginDes = $event.Message };
$smoSrc.connectionContext.add_InfoMessage($handler);
$smoSrc.connectionContext.executeNonQuery("EXEC master..sp_help_revlogin $dbLogin")
如果尝试使用script()
方法,则生成的代码具有password字段,但不是sid值。
密码在powershell中一直很麻烦,但如果使用脚本方法并传入自定义ScriptingOptions对象,则可以获得SID。
$so = new-object microsoft.sqlserver.management.smo.scriptingoptions;
$so.LoginSid = $true
$login.script( $so );