我制作了两个脚本,第一个(PowerShell脚本)在本地机器上并使用参数调用第二个(VBScript)创建一个保存在本地机器上的Excel文件,这有点奇怪,因为当我直接在服务器上执行le VBScript(测试的“默认”参数),Excel文件完美地创建并填充在我的本地机器上,但是当我使用PowerShell脚本时(即使没有发送参数并使用默认参数) ,我有这个错误:

C:\MyScript.vbs(136, 2) Microsoft Excel: Method 'SaveAs' of object'_Workbook'
failed.
    + CategoryInfo          : NotSpecified: (C:\MyScript...kbook a ‚chou‚.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

以下是使用我的PS脚本发送的参数,第一个是本地计算机上用户的当前用户名,另外两个是使用DSN连接到Access数据库的登录名:

Dim UID, PWD, User
'User = "Test"
'UID = "Test UID"
'PWD = "Test PWD"
User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

然后是文件名和路径,我用DFS路径传输它:

Dim fileName
filename = "\\group\dfs\Users\" & User & "\MyExcel.xlsx"

在脚本结束时,问题是在记录集中复制SQL查询的结果然后在Excel文件中:

If Not objFSO.FileExists(fileName) Then
    workBook.SaveAs fileName
Else
    workBook.Save
End If

线136是“SaveAs”线 .

我真的不明白为什么它直接在服务器上执行时有效,但在PowerShell中使用_2688237时则不行 . 我检查了语法,但一切都很好,我确定我在PS中写了好的参数,一切都是正确的,但它不起作用 .

编辑:当我在参数中提到文件名时,似乎没有任何工作簿方法有效,我认为在PS和VBS之间的调用期间会发生一些变化 .