powershell 使用方法:

访问操作系统资源
https://blog.51cto.com/huandidi/2288031

# 调用winscp
winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://user:pass@[IPV6]:22" "option transfer binary" "put D:\1.pdf /home/" "exit" /log=D:\log_file.txt

# 发送HTML邮件:
-- check_dg.ps1:
$From = "xxx@163.com"
$To = "xxx@163.com"
$SMTPServer = "smtp.163.com"
$SMTPPort = 25
$Username = "xxx@163.com"
$Password = "12345"
$currentDatetime = get-date -Format 'yyyy-MM-dd-HH-mm'
$Subject = "POS_Oracle_Replcation_" + $currentDatetime
$Body =  Get-Content c:\app\check_dg.log
$SMTPMessage = New-Object System.Net.Mail.MailMessage($From, $To, $Subject, $Body)
$SMTPMessage.IsBodyHtml = $true
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort) 
$SMTPClient.EnableSsl = $false 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password); 
$SMTPClient.Send($SMTPMessage)

-- check_dg.sql
SET MARKUP HTML ON 
select SEQUENCE#, FIRST_TIME, APPLIED, ARCHIVED from 
(select t.*,rownum n from V$ARCHIVED_LOG t order by FIRST_TIME) 
where n>(select count(1)-10 from V$ARCHIVED_LOG);

-- check_dg.bat:
sqlplus  -S / as sysdba  @c:\app\check_dg.sql > c:\app\check_dg.log
powershell c:\app\check_dg.ps1



远程访问SqlServer:
  启动Sql Agent
  启用tcp/ip协议
  防火墙开通端口TCP 1433 UDP 1434

https://www.red-gate.com/simple-talk/sysadmin/powershell/introduction-to-powershell-with-sql-server-using-invoke-sqlcmd/

https://www.cnblogs.com/LC0507/p/11209327.html

https://blog.51cto.com/ultrasql/2050176