Я изо всех сил пытался заставить этот скрипт работать через Intune в течение нескольких дней. Ниже приведен скрипт, который проверяет, установлен ли принтер, если нет, драйвер загружается из нашего хранилища BLOB-объектов, извлекается, добавляется в хранилище драйверов, а затем добавляется принтер.
Сценарий отлично работает при локальном запуске, однако, когда я отправляю его через Intune на наши устройства Windows 10, принтер не добавляется, и Intune сообщает мне, что скрипт не удалось запустить на целевых устройствах, но я не уверен, почему.
Сценарий завершается с ошибкой в строке, начинающейся с $pnpOutput
, все до тех пор, пока эта строка не будет завершена. После этой строки add-printerport
успешно (порт принтера добавляется на компьютер), но больше ничего не происходит, потому что все остальные команды требуют установки драйвера, а это не так. Проверка C:\Windows\INF
на целевом компьютере подтверждает, что драйвер не был добавлен в хранилище драйверов.
Я полагаю, что проблема связана с тем, как я pnputil.exe
с powershell. Я попытался сформулировать команду несколькими способами без результата. Я довольно новичок в powershell, но знаю достаточно, чтобы объединить несколько сценариев и выполнить некоторые базовые действия по устранению неполадок.
Я попытался добавить некоторые сообщения об ошибках, но безуспешно. Я пытался out-file
$pnpoutput
линии , но результирующий файл был пуст. Я попытался добавить попытку / перехватить весь последний блок, но мой файл журнала даже не был создан (даже локально, даже когда я специально сломал скрипт, чтобы вызвать ошибку).
# This script installs the US Bizhub C368 printer
# This checks to see if the printer has already been added
$CheckPrinter = Get-printer | where {$_.Name -like "US Bizhub C368"}
If ($CheckPrinter -eq $null) {
# Make IT folder for driver download
$ITFolder = "C:\IT"
New-Item -Path $ITFolder -ItemType Directory
# Download the driver from Azure Blob repository
$source = "OurAzureBlobURL.com"
$zipdestination = "$ITFolder\USBizhubC368Driver.zip"
Invoke-WebRequest $source -OutFile $zipdestination
# Extract the zip archive and delete the zip
$unzippeddestination = "$ITFolder\USBizhubC368Driver"
Expand-Archive -Path $zipdestination -DestinationPath $unzippeddestination
Remove-Item -Path $zipdestination
$pnpOutput = pnputil -a "$unzippeddestination\KOAXWJ__.INF" | Select-String "Published name"
$null = $pnpOutput -match "Published name :\s*(?<name>.*\.inf)"
$driverINF = Get-ChildItem -Path C:\Windows\INF\$($matches.Name)
Add-PrinterDriver -Name "KONICA MINOLTA C368SeriesPCL" -InfPath $driverINF.FullName
Add-PrinterPort -Name "US Bizhub C368" -PrinterHostAddress "192.168.121.20"
Add-Printer -Name "US Bizhub C368" -DriverName "KONICA MINOLTA C368SeriesPCL" -PortName "US Bizhub C368"
}
У кого-нибудь есть какие-либо идеи? Я готов к пробам и ошибкам, поэтому, если вы знаете, как правильно вести запись, я с удовольствием настрою это, отправлю через Intune и сообщу об ошибке. Powershell - не мой родной язык (пока), поэтому, возможно, мне понадобятся ответы, которые немного ошарашены, если это возможно :)
Спасибо!