數(shù)據(jù)庫服務(wù)器(內(nèi)網(wǎng))—>PowerShell—>監(jiān)控服務(wù)器(內(nèi)外網(wǎng))—>發(fā)送微信前面已介紹如何創(chuàng)建WMI Monitor,本文介紹如何執(zhí)行PowerS..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MSSQL/WMI/PowerShell結(jié)合篇(三)執(zhí)行PowerShell遠程腳本

發(fā)布時間:2020-06-09 07:26:50 來源:網(wǎng)絡(luò) 閱讀:1019 作者:易語隨風(fēng)去 欄目:系統(tǒng)運維

實時監(jiān)控的基本原理:WMI Monitor—>數(shù)據(jù)庫服務(wù)器(內(nèi)網(wǎng))—>PowerShell—>監(jiān)控服務(wù)器(內(nèi)外網(wǎng))—>發(fā)送微信

前面已介紹如何創(chuàng)建WMI Monitor,本文介紹如何執(zhí)行PowerShell遠程腳本,實現(xiàn)將WMI獲取到的信息從數(shù)據(jù)庫服務(wù)器傳到監(jiān)控服務(wù)器,即數(shù)據(jù)庫服務(wù)器(內(nèi)網(wǎng))—>PowerShell—>監(jiān)控服務(wù)器(內(nèi)外網(wǎng))


一、帳號密碼信息加密

設(shè)置密鑰,并將密鑰、帳號、密碼加密后信息存放于文本中

1、設(shè)置加密密鑰

function Set-Key {

param([string]$string)

$length = $string.length

$pad = 32-$length

if (($length -lt 16) -or ($length -gt 32)) {Throw "String must be between 16 and 32 characters"}

$encoding = New-Object System.Text.ASCIIEncoding

$bytes = $encoding.GetBytes($string + "0" * $pad)

return $bytes

}


2、加密方法

##set Encrypted Data

function Set-EncryptedData {

param($key,[string]$plainText)

$securestring = new-object System.Security.SecureString

$chars = $plainText.toCharArray()

foreach ($char in $chars) {$secureString.AppendChar($char)}

$encryptedData = ConvertFrom-SecureString -SecureString $secureString -Key $key

return $encryptedData

}


3、解密方法

##get Encrypted Data

function Get-EncryptedData {

param($key,$data)

$data | ConvertTo-SecureString -key $key |

ForEach-Object {[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($_))}

}



二、創(chuàng)建遠程會話,并執(zhí)行遠程腳本


獲取密鑰,并對帳號密碼進行解密

$idkeystr=gc D:\xxx\IDkey.txt

$userid=gc D:\xxx\ID.txt

$IDkey=set-key $idkeystr

$appServerUser=get-EncryptedData $IDkey $userid


$pwkeystr=gc D:\xxx\PWkey.txt

$passwd=gc D:\xxx\PW.txt

$PWkey=set-key $pwkeystr

$appServerPwd=get-EncryptedData $PWkey $passwd


$appServer='MonitorServer'

$password = ConvertTo-SecureString $appServerPwd -AsPlainText -Force 

$appCred = New-Object System.Management.Automation.PsCredential($appServerUser,$password)


##創(chuàng)建會話

$s = New-PSSession -ComputerName $appServer -Credential $appCred -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Authentication Negotiate


##執(zhí)行無參數(shù)腳本

Invoke-Command -Session $s -ScriptBlock {powershell -File E:\\xxx\\xxx.ps1}


##執(zhí)行帶參數(shù)腳本

Invoke-Command -Session $s -ScriptBlock {powershell -File E:\\xxx\\xxx.ps1 $args[0] $args[1] $args[2]} -ArgumentList $text1,$text2,$text3


##刪除會話

$s|Remove-PSSession


下一篇介紹如何通過PowerShell發(fā)送微信信息


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI