Vbscript 试图从用户计算机中提取打印机,然后输出到文本填充。

Vbscript 试图从用户计算机中提取打印机,然后输出到文本填充。,vbscript,printers,Vbscript,Printers,我试图从用户计算机中提取打印机,然后输出到文本文件,但是当我运行测试时,我得到了一个无效的过程调用或此特定代码行的参数 Set objOutputFile = objFSO.OpenTextFile(outFile, ForAppending, True) 我已尝试将OpenTextFile更改为CreateTextFile,但我需要将这些行附加到文件中,因为它将作为登录脚本运行 我做了一些研究,并使用Microsoft developer文章来帮助我调试代码中的问题,但我在Visual Ba

我试图从用户计算机中提取打印机,然后输出到文本文件,但是当我运行测试时,我得到了一个无效的过程调用或此特定代码行的参数

Set objOutputFile = objFSO.OpenTextFile(outFile, ForAppending, True)
我已尝试将
OpenTextFile
更改为
CreateTextFile
,但我需要将这些行附加到文件中,因为它将作为登录脚本运行

我做了一些研究,并使用Microsoft developer文章来帮助我调试代码中的问题,但我在Visual Basic方面没有太多经验

我添加了整个脚本,为正在发生的事情提供上下文

dim objComputerName, ObjNetwork , strText , objfile, StrComputer
dim wshnetwork 



Set wshnetwork = CreateObject ("Wscript.network")
StrComputer = WshNetwork.ComputerName 
If IsEmpty(StrComputer) Then Wscript.Quit





Set WshNetwork = CreateObject("WScript.Network") 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer") 
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48) 
Set WshShell = WScript.CreateObject("WScript.Shell") 
Set objFSO = CreateObject("Scripting.FileSystemObject") 


 outFile = "C:\scripts\Printers" & StrComputer




Set objOutputFile = objFSO.OpenTextFile(outFile, ForAppending, True)
For Each objPrinter in colInstalledPrinters 
strTest = Left(objPrinter.Name, 2) 
objOutputFile.WriteLine(objPrinter.Name) 
objfile.close
Next 

Set objPrinter = WshNetwork.EnumPrinterConnections
'Set objOutputFile = objFSO.OpenTextFile (filOutput, ForAppending, True) 
If objPrinter.Count = 0 Then
WScript.Echo "No Printers Mapped "
else
For intDrive = 0 To (objPrinter.Count -1) Step 2
intNetLetter = IntNetLetter +1
printer = "UNC Path " & objPrinter.Item(intDrive) & " = " & objPrinter.Item(intDrive +1) & " Printer : " & intDrive
objOutputFile.WriteLine(printer)
Next
end if
objOutputFile.Close``*
我猜这行是一个非法文件名

outFile = "C:\scripts\Printers" & StrComputer

在我的计算机上,这是
c:\scripts\PrintersSerenity
,如果将文本文件称为PrintersSerenity而没有扩展名,则可能不正确。

请参见
objPrinters=object.EnumPrinterConnections参数object WshNetwork object。objPrinters变量,用于保存网络打印机映射信息用于内置vbs/wsh打印机命令。
outFile = "C:\scripts\Printers" & StrComputer