none
Как подключиться к MSSQL серверу на другой машине по Login и Passwd из PowerShell RRS feed

  • Вопрос

  • Подскажите пожалуйста, как сделать subj?

    Нужно вытащить данные из одной таблицы, для дальнейшего использования в скрипте.

    26 октября 2012 г. 5:49

Ответы

Все ответы

  • А где взять [Microsoft.SqlServer.Management.Smo.Server]?

    Не могу что то найти


    С уважением, Михаил

    26 октября 2012 г. 7:12
  • Попробуйте скачать объекты SMO по данной ссылке: http://www.microsoft.com/ru-ru/download/details.aspx?id=3522 (см. раздел "Объекты Microsoft SQL Server 2008 SMO").

    26 октября 2012 г. 7:41
  • Спасибо, к базе подсоединился. Теперь как запрос сделать? И ответ получить?

    Может дока какая есть с примерами?


    С уважением, Михаил


    • Изменено mkukushkin 26 октября 2012 г. 9:39
    26 октября 2012 г. 9:23
  • Функция Invoke-Sqlcmd2

    Invoke-Sqlcmd2 -ServerInstance "MyComputer\MyInstance"`

    -Query "SELECT login_time AS 'StartTime' FROM sysprocesses WHERE spid = 1" -Username $User -Password $Pass


    • Помечено в качестве ответа mkukushkin 28 октября 2012 г. 18:16
    26 октября 2012 г. 10:14
    Отвечающий
  • Это похоже уже другой метод. К нему нужно новые объекты.  А через SMO - никак?

    С уважением, Михаил

    26 октября 2012 г. 10:36
  • Это похоже уже другой метод. К нему нужно новые объекты.  А через SMO - никак?

    С уважением, Михаил


    Прежде чем утверждать,попробуйте для начала.
    26 октября 2012 г. 10:47
    Отвечающий
  • Этот метод включен в PowerShell 2.0, а он (Windows6.0-KB968930-x64.msu) у меня на W2008x64 SP2 не ставится почему то. Говорит, что данное обновление не применимо к моей системе.

    Как еще его можно поставить?



    С уважением, Михаил

    26 октября 2012 г. 11:33
  • Этот метод включен в PowerShell 2.0, а он (Windows6.0-KB968930-x64.msu) у меня на W2008x64 SP2 не ставится почему то. Говорит, что данное обновление не применимо к моей системе.

    Как еще его можно поставить?



    С уважением, Михаил


    Вывод покажите - $PSVersionTable
    26 октября 2012 г. 11:49
    Отвечающий
  • PS C:\Users\misha> $PSVersionTable
    
    Name                           Value                                                                                                                                                                                                           
    ----                           -----                                                                                                                                                                                                           
    CLRVersion                     2.0.50727.4223                                                                                                                                                                                                  
    BuildVersion                   6.0.6002.18111                                                                                                                                                                                                  
    PSVersion                      2.0                                                                                                                                                                                                             
    WSManStackVersion              2.0                                                                                                                                                                                                             
    PSCompatibleVersions           {1.0, 2.0}                                                                                                                                                                                                      
    SerializationVersion           1.1.0.1                                                                                                                                                                                                         
    PSRemotingProtocolVersion      2.1                                                                                                                                                                                                             


    С уважением, Михаил

    26 октября 2012 г. 11:58
  • PS C:\Users\misha> $PSVersionTable
    
    Name                           Value                                                                                                                                                                                                           
    ----                           -----                                                                                                                                                                                                           
    CLRVersion                     2.0.50727.4223                                                                                                                                                                                                  
    BuildVersion                   6.0.6002.18111                                                                                                                                                                                                  
    PSVersion                      2.0                                                                                                                                                                                                             
    WSManStackVersion              2.0                                                                                                                                                                                                             
    PSCompatibleVersions           {1.0, 2.0}                                                                                                                                                                                                      
    SerializationVersion           1.1.0.1                                                                                                                                                                                                         
    PSRemotingProtocolVersion      2.1                                                                                                                                                                                                             


    С уважением, Михаил


    Стоит версия PowerShell v2,поэтому это обновление не требуется.
    26 октября 2012 г. 12:14
    Отвечающий
  • Тогда почему, код выдает

    clear-host
    $user="usermon1"
    $pass="usermon1"
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 
    $srv = new-object ('Microsoft.SqlServer.Management.Smo.Server') "172.16.130.20"  
    #This sets the connection to mixed-mode authentication 
    $srv.ConnectionContext.LoginSecure=$false;
    #This sets the login name 
    $srv.ConnectionContext.set_Login("usermon1"); 
    #This sets the password 
    $srv.ConnectionContext.set_Password("usermon1") 
    #$srv.Databases | select tables
    $db = $srv.Databases["statistics"]
    $tabl1=$db.Tables["lpu_login"]
    $name=$tabl1.columns['name']
    $name
    Invoke-Sqlcmd2 -ServerInstance "172.16.130.20\statistics"`
     -Query "SELECT * from lpu_login" -Username $User -Password $Pass


    Parent             : [dbo].[lpu_login]
    AnsiPaddingStatus  : True
    Collation          : Cyrillic_General_CI_AS
    Computed           : False
    ComputedText       : 
    Default            : 
    DefaultSchema      : 
    ID                 : 4
    Identity           : False
    IdentityIncrement  : 0
    IdentitySeed       : 0
    InPrimaryKey       : False
    IsColumnSet        : False
    IsDeterministic    : False
    IsFileStream       : False
    IsForeignKey       : False
    IsFullTextIndexed  : False
    IsPersisted        : False
    IsPrecise          : False
    IsSparse           : False
    NotForReplication  : False
    Nullable           : False
    RowGuidCol         : False
    Rule               : 
    RuleSchema         : 
    ExtendedProperties : {}
    DataType           : varchar
    DefaultConstraint  : 
    Name               : name
    Urn                : Server[@Name='SRVDB']/Database[@Name='statistics']/Table[@Name='lpu_login' and @Schema='dbo']/Column[@Name='name']
    Properties         : {Name=AnsiPaddingStatus/Type=System.Boolean/Writable=False/Value=True, Name=Computed/Type=System.Boolean/Writable=True/Value=False, Name=ComputedText/Type=System.String/Writable=True/Value=, Name=DataType/Type=System.S
                         tring/Writable=True/Value=varchar...}
    UserData           : 
    State              : Existing
    
    Имя "Invoke-Sqlcmd2" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    C:\Users\misha\Documents\database.ps1:17 знак:15
    + Invoke-Sqlcmd2 <<<<  -ServerInstance "172.16.130.20\statistics"`
        + CategoryInfo          : ObjectNotFound: (Invoke-Sqlcmd2:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException

    Те по SMO подключается, а вот Invoke-Sqlcmd2 не находит?

    Где его взять то тогда и как получить в массив результат SQL запроса?


    С уважением, Михаил

    26 октября 2012 г. 12:33
  • А Вы для начало функцию в сессию импортируйте,прежде чем начать ее выполнять.

    26 октября 2012 г. 12:35
    Отвечающий
  • А Вы команду не подскажете. Вообще очень трудно искать инфу по PS.

    Я вставил пока код этой функции в скрипт и все заработало.

    Остался вопрос - как это все достать.

    $results=Invoke-Sqlcmd2 -ServerInstance "172.16.130.20" -Database "statistics"`
     -Query "SELECT * from lpu_login" -Username $User -Password $Pass
    foreach($result in $results)
    {
       $result
    }
    Вытащили по строкам. А как по столбцам разобрать?

    С уважением, Михаил

    26 октября 2012 г. 19:26
  • А Вы команду не подскажете. Вообще очень трудно искать инфу по PS.

    Я вставил пока код этой функции в скрипт и все заработало.

    Остался вопрос - как это все достать.

    $results=Invoke-Sqlcmd2 -ServerInstance "172.16.130.20" -Database "statistics"`
     -Query "SELECT * from lpu_login" -Username $User -Password $Pass
    foreach($result in $results)
    {
       $result
    }
    Вытащили по строкам. А как по столбцам разобрать?

    С уважением, Михаил


    $results в студию
    26 октября 2012 г. 22:02
    Отвечающий
  • Да с $resulrts - все в порядке. И по столбцам получилось все вытащить.

    Вы лучше подскажите, как  функцию в сессию импортировать?


    С уважением, Михаил

    28 октября 2012 г. 18:15