1С | Ошибка при получении характеристик принтера
1) Метод основан на изменении прав сетевого принтера на сервере
Если принтер сетевой, на севере произведена его установка и он расшарен в сеть откуда Вы к нему стучитесь, то давайте права на принтер на сервере и ошибка уйдет.
2) Метод основан на изменении прав splwow64.exe.
1С недостаточно прав для работы с принтерами (часто ошибка встречается с сетевыми принтерами).
Буду излагать мысли кратко и по существу.
Суть решения: изменить владельца на Админа, группе ВСЕ ПРИЛОЖЕНИЯ добавить права на изменения, затем владельца вернуть на исходного (TrustedInstaller).
Ниже по тексту текст 2-х скриптов, которые выполняют данные задачи
1) Устанавливает нужные права | *Упаковать в .bat
@echo off
:: Переключение кодировки на UTF-8
chcp 65001 >nul
:: Проверка запуска от имени администратора
net session >nul 2>&1
if errorlevel 1 (
echo Запустите этот скрипт от имени администратора.
pause
exit /b
)
:: Установка пути к файлу splwow64.exe (находится в корне windows)
set filepath=%SystemRoot%\splwow64.exe
:: Проверка на наличие файла
if not exist %filepath% (
echo Файл %filepath% не найден.
pause
exit /b
)
:: 1. Смена владельца файла на "Администраторы"
takeown /F %filepath% /A
if errorlevel 1 (
echo Ошибка при смене владельца файла.
pause
exit /b
)
echo Владелец файла %filepath% изменен на Администраторы.
:: 2. Назначение прав "Изменение" для группы "ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ" (используем SID S-1-15-2-1)
icacls %filepath% /user *S-1-15-2-1:M
if errorlevel 1 (
echo Ошибка при предоставлении прав для "ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ".
pause
exit /b
)
echo Права "Изменение" предоставлены для "ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ".
echo Операция успешно выполнена.
pause
2) Возвращает исходные права splwow64.exe | *Упаковать в .bat
@echo off
:: Переключение кодировки на UTF-8
chcp 65001 >nul
:: Проверка запуска от имени администратора
net session >nul 2>&1
if errorlevel 1 (
echo Запустите этот скрипт от имени администратора.
pause
exit /b
)
:: Установка пути к файлу
set filepath=%SystemRoot%\splwow64.exe
:: Проверка на наличие файла
if not exist "%filepath%" (
echo Файл %filepath% не найден.
pause
exit /b
)
:: Смена владельца файла
takeown /F "%filepath%" /A
if errorlevel 1 (
echo Ошибка смены владельца.
pause
exit /b
)
:: Назначение владельца TrustedInstaller
icacls "%filepath%" /setowner "NT SERVICE\TrustedInstaller"
if errorlevel 1 (
echo Ошибка при назначении владельца TrustedInstaller.
pause
exit /b
)
echo Владелец файла %filepath% изменен на TrustedInstaller.
pause
Начать дискуссию