【发布时间】:2026-02-16 17:30:01
【问题描述】:
我有以下代码。它连接到 Service Now 实例。获取特定服务器的事件。该事件包含有关打印机创建的详细信息。 ip 在记录['user_input'] 中,打印机名称在记录['u_string_full_utf8_1'] 中。我想要实现的是将这些作为参数传递给 powershell,以便它可以运行 Printer Create 脚本。以下代码中传递的参数有效。但我不确定如何在其中传递参数。
import pysnow
import subprocess
import os
# Create client object
s = pysnow.Client(instance='instance', user='admin', password='password')
# Get all incidents
r = s.query('incident', query={'cmdb_ci':'a28cba7a4fb4030028f7fd218110c7f5'})
# order by 'created_on' descending, then iterate over the result and print out number
for record in r.get_multiple(order_by=['-created_on']):
print(record['cmdb_ci'])
psxmlgen = subprocess.Popen([r'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe',
"Invoke-Command -ComputerName SERVER01 -FilePath 'C:\Users\testuser\Documents\Scripts\PrinterCreate.ps1' -ArgumentList '10.2.3.2','PS Driver for Universal Print','TESTPRINTER' -Credential $cred"], cwd=os.getcwd())
result = psxmlgen.wait()
我检查了现有资源,但无法弄清楚如何在中间传递它。
任何帮助将不胜感激。
使用Python2.7
【问题讨论】:
-
您可能希望在 popen 的第二个参数中添加一个 'r' 前缀。
-
让它工作。我同意应该有 r 但它没有它就可以工作,我认为如果没有坏就不要修复它。
标签: python python-2.7 arguments subprocess