vbscript - VBScript 文件复制 FileExists 返回错误安装的驱动器驱动器
问题描述
我在使用 InstallShield 创建的安装包 MSI 中执行的脚本的上下文中。我执行以下脚本:
Set wshShell = CreateObject( "WScript.Shell" )
User = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )
MsgBox "User: " & User
' The parameters are received through MSI parameters
' msiexec /I MyMSI_x64.msi configFileSrc="Z:\MyFolder\FileToCopy.txt" configFolderDst="c:\temp\"
' Testing parameters
Dim configFileSrc, configFolderDst
configFileSrc = "Z:\MyFolder\FileToCopy.txt"
configFolderDst = "c:\temp\"
' **********************************************************************
' Copy file to destination folder
' **********************************************************************
if(configFileSrc <> "") Then
call copyFile(configFileSrc, configFolderDst)
End if
' **********************************************************************
' Function to copy file
' **********************************************************************
Sub CopyFile(SourceFile, DestinationFile)
Set fso = CreateObject("Scripting.FileSystemObject")
If not fso.FileExists(SourceFile) Then
MsgBox "The file " & SourceFile & " is not found and will therefore not be copied to destination folder.", vbExclamation, "Parameter file not found"
Exit Sub
End If
...
当从已安装的驱动器执行时,FileExists 总是返回 false。当脚本在本地执行时(替换实际作为参数提供的 configFileSrc),脚本工作正常。我很确定 InstallShield 使用机器的管理员本地帐户,该帐户可能对已安装的驱动器没有权限,但我不知道如何检查。我试图显示当前用户 strUserName 但该框为空。任何想法?
解决方案
映射的驱动器是每个用户令牌。管理员有两个令牌。因此,以管理员身份运行意味着它无法以普通用户身份访问映射的驱动器。
使用 UNC 路径。\\server\sharename\folder\file.ext
.
推荐阅读
- python - 如何减少 Django 文本字段的高度
- ruby-on-rails - 如何存根 current_page?在 Rails 中
- azure - Powershell:将所有具有“NetworkRuleSet”属性的 Azure 存储帐户列出/导出到 CSV
- java - 无法使用 JDBC 连接到在 Docker 上运行的 MySQL 服务器 - 通信链路故障
- react-native - 华为帐号登录:范围电子邮件地址选项未选中
- php - Laravel 8 单元测试
- swagger-ui - 如何在 swagger ui 中添加其他响应代码?
- python - 如何使用更改的入口点(sys.path)在 Python 中导入文件?
- javascript - jQuery焦点并选择下一个输入不起作用
- python - 交叉表以识别具有多种模式的 id 数量