Skip to content

About

Complete guide and configuration scripts for setting up network printer sharing between Windows 7, Windows 10, and Windows 11 hosts and clients.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–¨οΈ Windows Printer Share Toolkit (Win 7 / 10 / 11)

Bahasa Indonesia β€’ English

Supported OS PowerShell Version Protocol SMB2 Architecture

Perkakas otomasi PowerShell dan Batch untuk membagikan printer USB yang terhubung di satu PC (Host) agar dapat digunakan oleh PC lain (Klien) di jaringan lokal yang sama secara stabil dan aman melalui SMB2 (tanpa SMB1).

Dibuat khusus untuk mengatasi error printer sharing Windows yang sering muncul akibat pembaruan keamanan (PrintNightmare, RPC hardening, dan pembatasan Windows 11 24H2), seperti:

  • 0x0000011b (RPC authentication level privacy)
  • 0x00000bc4 (Printer driver was not found / Point and Print policy)
  • 0x00000709 (Cannot set default printer)
  • 0x0000007e (Architecture mismatch: 32-bit x86 vs 64-bit x64)
  • 0x00000005 (Access Denied / Guest restriction)
  • Printer network yang tiba-tiba "hilang" atau offline setelah update Windows.

πŸ“‘ Daftar Isi


πŸš€ Fitur Utama

  • Aman & Modern: Hanya menggunakan protokol SMB2/SMB3. Protokol usang dan rentan SMB1 tetap dinonaktifkan.
  • Lintas Versi Windows: Menghubungkan berbagai kombinasi Windows 7 (32-bit / 64-bit), Windows 10, dan Windows 11 (termasuk build 24H2).
  • Otomasi Konfigurasi Host: Menyetel profil jaringan ke Private, firewall, dependensi layanan discovery (Spooler, LanmanServer, FDResPub, upnphost), dan permission printer.
  • Penanganan Khusus Arsitektur Berbeda: Menyediakan solusi -Mode LocalPort agar klien Windows 7 32-bit dapat mencetak ke Host 64-bit tanpa konflik driver.
  • Aman untuk Diuji (Dry-Run): Mendukung parameter -WhatIf untuk simulasi sebelum konfigurasi diterapkan.
  • Rollback Otomatis: Setiap perubahan dicatat ke dalam jurnal backup JSON / teks sehingga sistem dapat dikembalikan ke keadaan awal kapan saja.

🧭 Matriks Kompatibilitas Host Γ— Klien

Gunakan script klien yang sesuai dengan OS Klien (bukan OS Host):

Host (Tempat Printer Tercolok) ↓ / Klien β†’ Klien Win 7 (64-bit) Klien Win 7 (32-bit) Klien Win 10 Klien Win 11
Host Windows 7 client\Win7\02-Connect-Win7.cmd
atau .ps1
client\Win7\02-Connect-Win7.ps1
-Mode LocalPort
client\Win10\02-Connect-Win10.ps1 client\Win11\02-Connect-Win11.ps1
Host Windows 10 client\Win7\02-Connect-Win7.cmd
atau .ps1
client\Win7\02-Connect-Win7.ps1
-Mode LocalPort
client\Win10\02-Connect-Win10.ps1 client\Win11\02-Connect-Win11.ps1
Host Windows 11 (termasuk 24H2) client\Win7\02-Connect-Win7.cmd
atau .ps1
client\Win7\02-Connect-Win7.ps1
-Mode LocalPort
client\Win10\02-Connect-Win10.ps1 client\Win11\02-Connect-Win11.ps1

Note

  • Klien Windows 7 32-bit: Wajib menggunakan -Mode LocalPort bersama file driver 32-bit (.inf) resmi dari vendor.
  • Host Windows 11 (build 24H2+): Microsoft menonaktifkan akun guest tanpa password secara default. Pastikan Host memiliki akun lokal berpassword dan Klien menghubungkan dengan -SaveCredential.
  • Driver Type 4: Windows 11 terkadang memakai driver default Type 4 (IPP) yang tidak dapat dishare ke Windows 7. Pasang driver resmi Type 3 dari vendor printer.

πŸ“‚ Struktur Direktori

printer-share-toolkit/
β”œβ”€β”€ host/                         # Script yang dijalankan di PC yang tercolok printer (USB)
β”‚   β”œβ”€β”€ Win7/
β”‚   β”‚   β”œβ”€β”€ 01-Sharing-Win7.ps1   # PowerShell 2.0 compatible
β”‚   β”‚   └── BACA-INI.md
β”‚   β”œβ”€β”€ Win10/
β”‚   β”‚   β”œβ”€β”€ 01-Sharing-Win10.ps1
β”‚   β”‚   └── BACA-INI.md
β”‚   └── Win11/
β”‚       β”œβ”€β”€ 01-Sharing-Win11.ps1  # Mendukung proteksi Windows 11 & verifikasi WPP
β”‚       └── BACA-INI.md
β”œβ”€β”€ client/                       # Script yang dijalankan di PC yang ingin mencetak
β”‚   β”œβ”€β”€ Win7/
β”‚   β”‚   β”œβ”€β”€ 02-Connect-Win7.cmd   # Batch script instan untuk Win7 x64 (tanpa PowerShell)
β”‚   β”‚   β”œβ”€β”€ 02-Connect-Win7.ps1   # PowerShell script (mendukung mode LocalPort x86)
β”‚   β”‚   └── BACA-INI.md
β”‚   β”œβ”€β”€ Win10/
β”‚   β”‚   β”œβ”€β”€ 02-Connect-Win10.ps1
β”‚   β”‚   └── BACA-INI.md
β”‚   └── Win11/
β”‚       β”œβ”€β”€ 02-Connect-Win11.ps1
β”‚       └── BACA-INI.md
β”œβ”€β”€ tools/                        # Alat bantu diagnosa dan perbaikan
β”‚   β”œβ”€β”€ 03-Test-PrinterShare.ps1  # Tool diagnosa mandiri (Read-only, aman dijalankan)
β”‚   β”œβ”€β”€ 04-Fix-LegacyCompat.ps1   # Script standalone pemulihan kompatibilitas Win7
β”‚   β”œβ”€β”€ 05-Rollback.ps1           # Mengembalikan perubahan Host Windows 10/11
β”‚   └── 05-Rollback-Win7.ps1      # Mengembalikan perubahan Host Windows 7
β”œβ”€β”€ README.md                     # Dokumentasi Bahasa Indonesia
└── README.en.md                  # English Documentation

βš™οΈ Persiapan Awal

  1. Jalankan Terminal sebagai Administrator: Klik kanan icon Windows Terminal / PowerShell / Command Prompt, lalu pilih Run as Administrator.
  2. Izinkan Eksekusi Script PowerShell (hanya sesi berjalan): Jika muncul peringatan script execution is disabled, jalankan:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  3. Catatan Khusus Windows 11 (Protected Print Mode): Jika Host memakai Windows 11, pastikan fitur Windows Protected Print dalam posisi nonaktif: Settings β†’ Bluetooth & devices β†’ Printers & scanners β†’ matikan Windows protected print mode.

πŸ“– Panduan Penggunaan

Langkah 1 β€” Setup di PC Host

Lakukan langkah ini pada PC yang tersambung kabel USB ke printer fisik.

  1. Buka PowerShell sebagai Administrator.
  2. Masuk ke direktori toolkit sesuai OS Host:
    # Contoh jika Host adalah Windows 10:
    cd host\Win10
    
    # Contoh jika Host adalah Windows 11:
    cd host\Win11
    
    # Contoh jika Host adalah Windows 7:
    cd host\Win7
  3. Cek daftar printer yang terpasang untuk melihat nama persisnya:
    .\01-Sharing-Win10.ps1 -ListPrinters
  4. (Opsional) Lakukan simulasi (dry-run) terlebih dahulu:
    .\01-Sharing-Win10.ps1 -PrinterName "EPSON L120 Series" -AllowLegacyWin7 -WhatIf
  5. Terapkan konfigurasi sharing printer:
    # Jika ada klien Windows 7 di jaringan:
    .\01-Sharing-Win10.ps1 -PrinterName "EPSON L120 Series" -AllowLegacyWin7
    
    # Jika semua klien adalah Windows 10 / 11 (mode paling aman):
    .\01-Sharing-Win10.ps1 -PrinterName "EPSON L120 Series"

Setelah selesai, script akan menampilkan jalur jaringan (UNC Path), contoh:

\\NAMA-PC-HOST\EPSON-L120

Important

Simpan informasi nama komputer (NAMA-PC-HOST) dan nama share (EPSON-L120) untuk digunakan di PC Klien.


Langkah 2 β€” Sambungkan dari PC Klien

Lakukan langkah ini pada PC yang ingin mencetak dokumen melalui jaringan.

Kasus A: Klien Windows 10 atau Windows 11

Buka PowerShell (disarankan sebagai Administrator jika ingin memasang port/driver otomatis), lalu jalankan:

# Untuk Klien Windows 10:
cd client\Win10
.\02-Connect-Win10.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -SetDefault -TestPage

# Untuk Klien Windows 11:
cd client\Win11
.\02-Connect-Win11.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -SetDefault -TestPage

Tips Kredensial: Jika Host meminta autentikasi (misal Windows 11 24H2), tambahkan parameter -SaveCredential untuk menyimpan login secara permanen di Windows Credential Manager:

.\02-Connect-Win10.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -SaveCredential

Kasus B: Klien Windows 7 (64-bit)

Bisa menggunakan script Batch biasa (cepat & tanpa repot) atau PowerShell:

  • Cara 1: Batch Command (Paling Mudah):
    cd client\Win7
    02-Connect-Win7.cmd NAMA-PC-HOST EPSON-L120
  • Cara 2: PowerShell:
    cd client\Win7
    .\02-Connect-Win7.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -SetDefault -TestPage

Kasus C: Klien Windows 7 (32-bit / x86)

Host modern 64-bit tidak dapat mentransfer driver 32-bit secara otomatis. Solusinya adalah menggunakan mode LocalPort bersama driver resmi 32-bit dari vendor printer:

  1. Unduh driver printer versi 32-bit (x86) dari website resmi printer Anda (Epson, Canon, HP, Brother, dll).
  2. Ekstrak file driver ke folder lokal, contoh: C:\Driver\x86\.
  3. Buka PowerShell Administrator di Windows 7:
    cd client\Win7
    .\02-Connect-Win7.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -Mode LocalPort -DriverInf "C:\Driver\x86\driver.inf" -SetDefault -TestPage

πŸ” Diagnosa & Pemeriksaan

Jika printer tidak bisa diakses atau Anda ingin mengecek status jaringan tanpa mengubah konfigurasi apa pun, jalankan alat diagnosa (read-only):

# Cek printer lokal pada PC ini:
.\tools\03-Test-PrinterShare.ps1

# Cek konektivitas ke PC Host dari PC Klien:
.\tools\03-Test-PrinterShare.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120

Script ini akan memeriksa:

  • Ketersediaan Port SMB (445) dan RPC (135).
  • Status Layanan Windows: Spooler, LanmanServer, FDResPub, dll.
  • Kategori Profil Jaringan (Private vs Public).
  • Rule Firewall untuk File and Printer Sharing.
  • Tipe Driver Printer (Type 3 vs Type 4).
  • Konfigurasi Registry mitigasi Point & Print.

πŸ”„ Rollback (Kembalikan Pengaturan)

Setiap kali script host dijalankan, toolkit otomatis menyimpan status sebelumnya ke folder C:\ProgramData\PrinterShare\logs\.

Untuk mengembalikan konfigurasi Host ke kondisi awal:

# Untuk Host Windows 10 / Windows 11:
.\tools\05-Rollback.ps1

# Untuk Host Windows 7:
.\tools\05-Rollback-Win7.ps1

πŸ› οΈ Tabel Solusi Error Umum

Kode Error / Gejala Kemungkinan Penyebab Solusi Teruji
0x0000011b Host menolak koneksi RPC Spooler tanpa enkripsi (PrintNightmare patch). Jalankan script Host dengan parameter -AllowLegacyWin7, atau jalankan tools\04-Fix-LegacyCompat.ps1 -AllowLegacyWin7 pada Host.
0x00000bc4 Driver printer tidak ditemukan otomatis oleh Klien (Point and Print Restriction). Pada Host: gunakan -AllowLegacyWin7. Pada Klien: pastikan driver vendor terpasang atau gunakan parameter -Mode Legacy.
0x00000709 Gagal menyetel printer default karena nama printer tidak cocok / spooler crash. Restart service Print Spooler (Restart-Service Spooler) pada Host dan Klien, lalu ulangi perintah koneksi.
0x0000007e Perbedaan arsitektur sistem (Host 64-bit vs Klien 32-bit). Pada Klien Windows 7 32-bit, gunakan 02-Connect-Win7.ps1 dengan parameter -Mode LocalPort dan sertakan file driver INF 32-bit.
Akses Ditolak / 0x00000005 Autentikasi jaringan gagal / Host mewajibkan login akun lokal. Buat user lokal berpassword di Host, lalu sambungkan dari Klien dengan menambahkan flag -SaveCredential.
Port 445 / 135 Tertutup Profil jaringan masih Public atau Firewall memblokir koneksi. Script host otomatis mengubah profil jaringan ke Private dan membuka grup firewall File and Printer Sharing.
Printer "Hilang" Setelah Update Update Windows mereset konfigurasi RPC atau driver network printer. Jalankan script Klien kembali dengan menyertakan parameter -Repair.
Windows 11 24H2 Gagal Konek Kebijakan baru Windows 11 24H2 melarang koneksi SMB Guest tanpa password. Nonaktifkan guest anonim, buat user lokal dengan password di Host, dan gunakan -SaveCredential di Klien.
Windows 11 Tolak Sharing Fitur Windows Protected Print Mode aktif di Host. Nonaktifkan fitur tersebut via Settings β†’ Bluetooth & devices β†’ Printers & scanners.

πŸ”’ Prinsip Keamanan

  1. SMB1 Ditinggalkan: Meskipun mendukung Windows 7, toolkit ini beroperasi murni di atas SMB2/SMB3. Protokol SMB1 tidak pernah diaktifkan.
  2. Opt-in Compatibility: Opsi pelonggaran keamanan seperti -AllowLegacyWin7 dan -AllowGuest bersifat opsional per switch, dan tidak aktif secara default.
  3. Isolasi Driver LocalPort: Klien 32-bit tidak dipaksa mengambil driver dari Host 64-bit, melainkan memuat driver lokal terisolasi untuk stabilitas spooler.
  4. Audit & Rollback Penuh: Seluruh modifikasi registry, status layanan, dan rule firewall tersimpan dalam file cadangan JSON / teks yang dapat dipulihkan sewaktu-waktu.

πŸ“„ Lisensi & Kontribusi

Proyek ini terbuka untuk kontribusi! Jika Anda menemukan bug atau memiliki perbaikan untuk versi Windows tertentu, silakan buka Issue atau kirimkan Pull Request.

Didistribusikan di bawah lisensi MIT. Silakan gunakan dan sesuaikan untuk kebutuhan kantor, sekolah, atau pribadi.

About

Complete guide and configuration scripts for setting up network printer sharing between Windows 7, Windows 10, and Windows 11 hosts and clients.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages