尝试获取ServerPermissionSet以进行登录并将其应用于新登录。似乎无法理解ServerPermissionSet和Server.Login之间是否存在关系,或者是否有更好的方法来执行此操作。我可以用tSQL做到这一点,但我试图从SMO的角度来看待这个问题。这是我想要完成的一些sudo代码。SMO:获取登录服务器权限(ServerPermissionSet)
$server = new-object ('Microsoft.SqlServer.Management.Smo.Server')
"my_server"
$sps = new-object -TypeName
Microsoft.SqlServer.Management.SMO.ServerPermissionSet
$newlogin = new-object ('Microsoft.SqlServer.Management.Smo.Login') $Server,
"new_login"
$oldlogin = $server.Logins["old_login"]
// THIS PART OBVIOUSLY DOESN'T WORK
$newlogin.Create("password")
$sps = $oldlogin.ServerPermissionSet
$server.Grant($sps,"new_login")
为什么不tsql?你可以运行任何tsql代码来执行你的逻辑并使用'Invoke-Sqlcmd'来获得结果吗? – arjabbar