如何在WMI调用中分配变量?

时间:2014-08-29 20:36:37

标签: python wmi

在Python中使用WMI从其他服务器请求数据。我知道我的凭据是正确的,因为我可以在文件中对它们进行硬编码并且连接没有问题。但是,我对变量的字符串格式似乎不起作用。

我已经尝试过这两种方法但没有运气:

wmi_sql = wmi.WMI(SQLServer_raw, user="%s\\%s", password="%s") % (sql_domain, sql_user, sql_pass)

wmi_sql = wmi.WMI(SQLServer_raw, user="{0}\\{1}", password="{2}").format(sql_domain, sql_user, sql_pass)

尝试在内部移动format()调用,但它没有工作:

wmi_sql = wmi.WMI(SQLServer_raw, user="{0}\\{1}", password="{2}".format(sql_domain, sql_user, sql_pass))

2 个答案:

答案 0 :(得分:1)

您已将字符串格式化程序放在错误的位置。它们需要用于每个字符串,而不是调用的结果。如上所述,python认为你想调用wmi.WMI,然后将格式应用于返回的内容。

尝试:

wmi_sql = wmi.WMI(SQLServer_raw, user="%s\\%s" % (sql_domain, sql_user), 
    password=sql_pass)

答案 1 :(得分:0)

在一两个中你执行wmi.WMI()然后在返回类型上进行格式化。在第三个示例中,您将格式化密码的值,但为其提供三个参数,希望它可以构建用户变量。如果您真的想动态构建用户和密码,请执行以下操作:

usr ="{0}\\{1}".format(sql_domain,ql_user)
wmi.WMI(SQLServer_raw, user=usr, password=sql_pass)