在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))
答案 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)