Добавить принтер в систему, используя Powershell в VBA? - PullRequest
0 голосов
/ 25 сентября 2018

Я могу заставить его работать с командным файлом, используя:

powershell.exe "Add-printer -ConnectionName \\PS02.samba.net\HELPS006"

Но если я попытаюсь запустить указанный выше файл bat с VBA, он не добавит принтер:

Shell ("c:\Fraktsedlar\HELPS006.bat")

Если я запускаю powershell напрямую из VBA, то ни одно из этих действий не работает:

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))

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Если PowerShell может сделать это так, VBA.

Из справки

http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe Содержит некоторые библиотеки для системного администратора.Вы можете использовать все функции Windows Scripting Host, кроме корневого объекта wscript (используется сценарием для связи с хостом).В WMI https://msdn.microsoft.com/en-us/library/windows/desktop/aa393262(v=vs.85).aspx.

WSH есть вторая функция добавления принтера, которую можно использовать в 1000 раз больше.Посмотрите на это.

Добавляет подключение к принтеру на основе Windows к вашей компьютерной системе.

object.AddWindowsPrinterConnection strPrinterPath

объект

WshNetwork объект.

strPrinterPath

Строковое значение, указывающее путь к соединению с принтером.

Пример

СледующееВ коде используется метод AddWindowsPrinterConnection для подключения сетевого принтера к компьютерной системе Windows NT / 2000.

Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\printserv\DefaultPrinter"
WshNetwork.AddWindowsPrinterConnection PrinterPath
0 голосов
/ 25 сентября 2018

Попробуйте:

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...