הדפסה מ- Linux למדפסת משותפת של Windows


מאמר זה מסביר כיצד להתחבר ולהדפיס ממחשב Linux למדפסת משותפת המחוברת למחשב מארח של Windows.

  1. השלב הראשון הוא לשתף את המדפסת במחשב Windows שאליו היא מחוברת. פתח את מאפייני המדפסת, עבור אל הכרטיסיה שיתוף, הפעל את האפשרות שתף מדפסת זו וציין את שם המדפסת המשותפת (השם אינו יכול להכיל רווחים או תווים מיוחדים);

  2. צור משתמש מקומי חדש winusr1. הסר משתמש מקבוצת המשתמשים המקומית, הגדר את הסיסמה כך שתוקפה לא יפוג לעולם ומנע שינויי סיסמה.

    באפשרותך להשתמש ב- PowerShell כדי ליצור משתמש מקומי עם ההגדרות שצוינו:

    $pass = ConvertTo-SecureString "pass2024W0rd-" -AsPlainText -Force
    New-LocalUser -Name winusr1 -Password $pass -PasswordNeverExpires -UserMayNotChangePassword
    Remove-LocalGroupMember -Group Users -Member winusr1

כברירת מחדל, פרוטוקול SMB משמש לחיבור מדפסות משותפות של Windows. התקן את smbclient כדי לבדוק אם ניתן לגשת מרחוק למדפסת המשותפת במארח Windows מ- Linux:

באובונטו/דביאן הפעל את הפקודה:

$ sudo apt install smbclient

הצגת מיקומים משותפים של עסקים קטנים ובינוניים במחשב מרוחק של Windows

$ smbclient -L \\192.168.31.94 -U winusr1
  • 192.168.31.94 - כתובת IP או שם מארח של מחשב Windows

  • winusr1 - שם משתמש מקומי של Windows

פקודה זו מפרטת תיקיות רשת משותפות (כולל מיקומים משותפים ניהוליים) ומדפסות.

מהקונסולה, באפשרותך לבדוק את הזמינות של מדפסת SMB ולשלוח קובץ להדפסה:

smbclient -W DOMAIN -U winusr1//192.168.31.94/HPM1530

הדפס את הקובץ שצוין:

smb: \> print /home/sysops/test.txt
printing file test.txt as test.txt (856,2 kb/s)
smb: \> quit

הדרך הקלה ביותר לגשת למדפסות רשת ולנהל אותן תחת Linux היא להשתמש במערכת ההדפסה המובנית Common UNIX Printing System (CUPS). ממשק האינטרנט system-config-printer משמש לניהול CUPS.

CUPS ו- system-config-printer מותקנים כברירת מחדל ברוב הפצות שולחן העבודה של Linux. בדוק והתקן במידת הצורך:

$ dpkg -l cups
$ dpkg -l system-config-printer
$ systemctl status cups

כעת חבר מדפסת רשת משותפת מלינוקס:

  1. נווט אל כתובת ה- URL הבאה בדפדפן שלך כדי לפתוח את ממשק האינטרנט של CUPS

    localhost:631

    ;

  2. עבור אל ניהול -> הוסף מדפסת -> מדפסות רשת אחרות -> מדפסת Windows באמצעות SAMBA;

  3. השתמש בתבנית הבאה כדי לציין את הגדרות חיבור המדפסת המשותפת

    smb://winusr1:[email /HPM1530

    (מחרוזת זו כוללת את שם המשתמש והסיסמה, את שם המארח/IP המרוחק של Windows ואת שם המדפסת המשותפת);

  4. לאחר מכן הגדר את שם המדפסת ותיאורה;

  5. לאחר מכן, CUPS יבקש ממך לבחור את יצרן המדפסת ואת הדגם. רשימת הנהגים יכולה להיות ארוכה למדי. השתמש בפקודה הבאה כדי למצוא במהירות את שם מנהל ההתקן לפי דגם מדפסת:

    lpinfo -m| grep 1536

    בחר את מנהל ההתקן שמצאת ב- CUPS.

  6. התקנת המדפסת המשותפת הושלמה.

היכן ניתן למצוא מנהלי הדפסה של CUPS עבור Linux? במקרה של מדפסות HP, לדוגמה, רוב הפצות Linux מגיעות עם חבילת HP Linux Printing and Imaging System (HPLIP) מותקנת מראש. הוא כולל מנהלי התקנים עבור רוב המדפסות של HP.

dpkg -l hplip

באפשרותך להתקין את חבילת HPLIP באופן ידני:

sudo apt install hplip hplip-gui

ספקים אחרים עשויים גם הם להפיץ חבילות מנהלי התקנים דומות, או שתוכל למצוא קובץ PPD מובנה מראש עבור מדפסת ספציפית. ניתן גם להשתמש בספריית מנהלי התקן מדפסת PPD foomatic (מותקנת אוטומטית על שולחן העבודה ubuntu):

apt install foomatic-db-compressed-ppds

הניסיון הראשון להדפיס מסמך מלינוקס למדפסת Windows משותפת נכשל במקרה שלי עם שגיאה. בדוק /var/log/cups/error_log עבור שגיאות:

E [Job 13] SMB connection failed!
E [Job 13] Unable to connect to CIFS host: NT_STATUS_IO_TIMEOUT

הדבר מציין של- CUPS אין אפשרות להתחבר לתיקיית SMB של המדפסת במחשב Windows. במקרה זה, הבעיה היא כי לינוקס smbclient מנסה להשתמש בפרוטוקול SMB 1.0 כדי לגשת למדפסות משותפות. גירסת SMB 1.0 מושבתת ב- Windows 10 ו- 11, וחיבור כזה יידחה.

ערוך את הקובץ /etc/samba/smb.conf כדי לגרום ללקוח Linux SMB להשתמש בגרסת SMB 2 או 3 מאובטחת יותר עבור חיבורים. במקטע [גלובלי], הוסף את השורות הבאות:

client min protocol = SMB2
client max protocol = SMB3

הפעל מחדש את CUPS:

$ sudo systemctl restart cups

לקוח Linux יכול כעת להדפיס בהצלחה למדפסת משותפת במחשב Windows.

באפשרותך גם להתחבר למדפסת Windows משותפת משורת הפקודה. השלב הראשון הוא למצוא את שם מנהל ההתקן עבור דגם המדפסת שברשותך:

$ lpinfo --make-and-model '1536' -m

העתק את השם המלא של מנהל ההתקן וחבר את מדפסת SMB:

$ sudo lpadmin -p HP1536mfp -v smb://winusr1:[email /HPM1536 -m postscript-hp:0/ppd/hplip/HP/hp-laserjet_m1530_mfp_series-ps.ppd

הפעל את מדפסת CUPS ב- Linux:

$ cupsenable HP1536mfp

רשימת מדפסות:

$ lpsatat -v
$ lpstat -p

רשימת מדפסות SMB המחוברות מאוחסנת בקובץ /etc/cups/printers.conf. שים לב ששם המשתמש והסיסמה של Windows שבהם אתה משתמש כדי להתחבר למדפסת מאוחסנים כאן בטקסט רגיל (כך שלמשתמש זה חייבות להיות הרשאות מינימליות במחשב Windows).