代码之家  ›  专栏  ›  技术社区  ›  MariusM

在远程计算机上通过python解析windows快捷方式时出现错误的用户

  •  0
  • MariusM  · 技术社区  · 6 年前

    我有一些Python代码使用pythoncom来解析Windows快捷方式文件(.lnk)。

    def resolve_shortcut(filename):
        """ resolve target of Windows shortcut file via COM """
        sh = pythoncom.CoCreateInstance(shell.CLSID_ShellLink, None, 
            pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink)
    
        # Get an IPersist interface
        persist = sh.QueryInterface(pythoncom.IID_IPersistFile)
    
        persist.Load(filename)
        return sh.GetPath(shell.SLGP_RAWPATH)[0]
    

    在本地机器上工作正常。如果我通过UNC指定到文件名的路径,例如,remotepc\path\to\file,则它在远程计算机上部分工作。我有一个特殊的文件,我试图解决,我得到了错误的结果。结果具有格式 C: \Users\<用户名>\AppData\Local\Temp\filename . 我得到的<用户名>是运行脚本的用户的用户名。一、 例如,如果我使用不同的帐户运行脚本,则用户名字段是不同的。E、 g.像约翰一样运行脚本 C: \Users\John\AppData\Local\Temp\filename . 按鲍勃说的去做 C: \Users\Bob\AppData\Local\Temp\filename . 虽然实际上只有一个目标文件名实例,但它位于一个用户的目录中,在运行该脚本时不会以任何方式使用该用户的帐户。

    有什么问题吗?对于这样的远程文件,我应该用不同的方式使用COM吗?

    0 回复  |  直到 6 年前