我可以使用以下方法将其与批处理文件一起使用:
powershell.exe "Add-printer -ConnectionName \\PS02.samba.net\HELPS006"
但是,如果我尝试使用VBA运行上面的bat文件,它不会添加打印机:
Shell ("c:\Fraktsedlar\HELPS006.bat")
如果我直接从VBA运行powershell,则这些都不起作用:
Shell ("powershell.exe -Command " & Chr(34) & "Add-printer -ConnectionName \\PS02.samba.net\HELPS006" & Chr(34))
Shell ("powershell.exe -Command {" & Chr(34) & "Add-printer -ConnectionName \\PS02.samba.net\HELPS006" & Chr(34) & "}")
Shell ("powershell.exe -Command " & Chr(34) & "{Add-printer -ConnectionName \\PS02.samba.net\HELPS006}" & Chr(34))
我做错了什么?
答案 0 :(得分:2)
如果powershell可以这样做,那么VBA。
从帮助
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe它包含一些用于系统管理员的库。您可以使用Windows脚本宿主的所有功能,但根wscript
对象(脚本用于与主机通信)除外。 WMI https://msdn.microsoft.com/en-us/library/windows/desktop/aa393262(v=vs.85).aspx可以使用1000倍的管理员/信息。
WSH具有第二个添加打印机功能。看看那个。
将基于Windows的打印机连接添加到您的计算机系统。
object.AddWindowsPrinterConnection strPrinterPath
对象
WshNetwork
对象。
strPrinterPath
指示打印机连接路径的字符串值。
示例
下面的代码使用AddWindowsPrinterConnection
方法将网络打印机连接到Windows NT / 2000计算机系统。
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
WshNetwork.AddWindowsPrinterConnection PrinterPath
答案 1 :(得分:0)
尝试一下:
Shell ("powershell.exe -Command { Add-Printer -ConnectionName \\PS02.samba.net\HELPS006 }")
或者这个:
Shell ("powershell.exe -Command " & Chr(34) & "& { Add-Printer -ConnectionName \\PS02.samba.net\HELPS006 }" & Chr(34))
您也可以尝试Add-Printer
的作用:
$p = Get-WmiObject -List Win32_Printer -EnableAllPrivileges
$p.AddPrinterConnection ("\\PS02.samba.net\HELPS006")