none
我怎样能用PowerShell脚本来读取服务器上任意数据库的信息? RRS feed

  • 常规讨论

  • 首先你需要授予当前的登录名VIEW ANY DEFINITION权限。VIEW ANY DEFINITION权限是在服务器范围的:

    GRANT VIEW ANY DEFINITION TO test
    Go
    接下来你就可以使用下面的PowerShell脚本来读取数据库的信息

    $srvname="localhost"
    $dbname="Test"
    $mySrvConn = new-object Microsoft.SqlServer.Management.Common.ServerConnection
    $mySrvConn.ServerInstance=$srvname
    $mySrvConn.LoginSecure = $false
    $mySrvConn.Login = "test"
    $mySrvConn.Password = "xxxxxx"
    $srv = new-object Microsoft.SqlServer.Management.SMO.Server($mySrvConn)
    $db = $srv.Databases[$dbname]
    $db.logfiles|measure-object -property size -sum
    $logsize = ($db.logfiles|measure-object -property Size -sum).Sum/1024
    $datasize = $db.Size - $logsize
    write-host "log size:" $logsize
    write-host "data size:" $datasize
    $srv.ConnectionContext.Disconnect()

    参考:
    SQL Server PowerShell 概述
    http://msdn.microsoft.com/zh-cn/library/cc281954.aspx

    2011年11月30日 1:51
    版主