python 微软证书,如何使用Python远程获取windows机器上已安装的证书?

遗憾的是,最简单的解决方案是实际spwan powershell进程并通过Invoke-Commandcmdlet请求数据:def run_powershell(scriptblock, cwd=os.getcwd()):

log.debug("Running PowerShell Block:\r\n%s", scriptblock)

log.debug("Current Directory: %s\r\n" % cwd)

psProc = subprocess.Popen([r'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe',

'-ExecutionPolicy', 'Bypass',

'-noprofile',

'-c', '-',],

cwd=cwd,

stdin=subprocess.PIPE,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE)

stdoutdata, stderrdata = psProc.communicate(scriptblock)

if stdoutdata:

log.debug("Script Output:\r\n%s" % stdoutdata)

elif not stderrdata:

log.debug("Script completed succssfully (no stdout/stderr).")

if stderrdata:

log.error("Script Error:\r\n%s" % stderrdata)

return stdoutdata, stderrdata

def get_certificates(server_list, location="LocalMachine", store="My"):

cmd = '''

$sb = { ls Cert:\%s\%s | Select Subject,ThumbPrint }

$Servers = '%s' | ConvertFrom-Json

Invoke-Command -ComputerName $Servers -ScriptBlock $sb -Authentication Negotiate | ConvertTo-Json -Depth 999

''' % (location, store, json.dumps(server_list))

stdoutdata, stderrdata = run_powershell(cmd)

return json.loads(stdoutdata)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值