02 декабря 2022

Powershell

Powershell может в Linux, может в MSSQL, может с доменной (Active Directory) аутентификацией.

Илья Зверев
Архитектор IT-решений
PowerShell — расширяемое средство автоматизации от Microsoft с открытым исходным кодом, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев.

POC:

zverev-iv@linux-server:~$ klist
Ticket cache: FILE:/tmp/krb5cc_*************
Default principal: zverev-iv@COMPANY.LOCAL

Valid starting       Expires              Service principal
11/16/2022 20:40:40  11/17/2022 06:40:40  krbtgt/COMPANY.LOCAL@COMPANY.LOCAL
        renew until 11/23/2022 20:40:40
zverev-iv@linux-server:~$ cat mssql/connect-to-mssql.ps1
Write-Output "Q: Is Linux?  A: $($IsLinux)"
$sqlConn = New-Object System.Data.SqlClient.SqlConnection
$sqlConn.ConnectionString = "Data Source=sql.COMPANY.LOCAL;Initial Catalog=master;Integrated Security=True"
$sqlConn.Open() 
$sqlcmd = $sqlConn.CreateCommand()
$sqlcmd.CommandText = "SELECT @@VERSION"
$adp = New-Object System.Data.SqlClient.SqlDataAdapter $sqlcmd
$data = New-Object System.Data.DataSet
$adp.Fill($data) | Out-Null
$data.Tables
zverev-iv@linux-server:~$ pwsh mssql/connect-to-mssql.ps1
Q: Is Linux?  A: True

Column1
-------
Microsoft SQL Server 2022 (RTM) - 16.0.1000.6 (X64) …

zverev-iv@linux-server:~$

Что может быстро помочь при проблемах:

  1. не искать способ использовать NTLM fallback в Linux. Kerberos Only.
  2. в sh сессии export KRB5_TRACE=/dev/stdout позволит быстро понять где проблема с тикетами.
  3. https://www.microsoft.com/en-us/download/details.aspx?id=39046 - позволит быстро проверить SPN записи ваших SQL серверов. А заодно и поправить

Youtube >
Telegram >
⟵ Назад
Смотрите также