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.
- Fitur Utama
- Matriks Kompatibilitas Host Γ Klien
- Struktur Direktori
- Persiapan Awal
- Panduan Penggunaan
- Diagnosa & Pemeriksaan
- Rollback (Kembalikan Pengaturan)
- Tabel Solusi Error Umum
- Prinsip Keamanan
- 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 LocalPortagar klien Windows 7 32-bit dapat mencetak ke Host 64-bit tanpa konflik driver. - Aman untuk Diuji (Dry-Run): Mendukung parameter
-WhatIfuntuk simulasi sebelum konfigurasi diterapkan. - Rollback Otomatis: Setiap perubahan dicatat ke dalam jurnal backup JSON / teks sehingga sistem dapat dikembalikan ke keadaan awal kapan saja.
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.cmdatau .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.cmdatau .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.cmdatau .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 LocalPortbersama 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.
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
- Jalankan Terminal sebagai Administrator: Klik kanan icon Windows Terminal / PowerShell / Command Prompt, lalu pilih Run as Administrator.
- Izinkan Eksekusi Script PowerShell (hanya sesi berjalan):
Jika muncul peringatan script execution is disabled, jalankan:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- 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.
Lakukan langkah ini pada PC yang tersambung kabel USB ke printer fisik.
- Buka PowerShell sebagai Administrator.
- 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
- Cek daftar printer yang terpasang untuk melihat nama persisnya:
.\01-Sharing-Win10.ps1 -ListPrinters
- (Opsional) Lakukan simulasi (dry-run) terlebih dahulu:
.\01-Sharing-Win10.ps1 -PrinterName "EPSON L120 Series" -AllowLegacyWin7 -WhatIf
- 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.
Lakukan langkah ini pada PC yang ingin mencetak dokumen melalui jaringan.
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 -TestPageTips Kredensial: Jika Host meminta autentikasi (misal Windows 11 24H2), tambahkan parameter
-SaveCredentialuntuk menyimpan login secara permanen di Windows Credential Manager:.\02-Connect-Win10.ps1 -Server NAMA-PC-HOST -ShareName EPSON-L120 -SaveCredential
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
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:
- Unduh driver printer versi 32-bit (x86) dari website resmi printer Anda (Epson, Canon, HP, Brother, dll).
- Ekstrak file driver ke folder lokal, contoh:
C:\Driver\x86\. - 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
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-L120Script 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.
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| 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. |
- SMB1 Ditinggalkan: Meskipun mendukung Windows 7, toolkit ini beroperasi murni di atas SMB2/SMB3. Protokol SMB1 tidak pernah diaktifkan.
- Opt-in Compatibility: Opsi pelonggaran keamanan seperti
-AllowLegacyWin7dan-AllowGuestbersifat opsional per switch, dan tidak aktif secara default. - Isolasi Driver LocalPort: Klien 32-bit tidak dipaksa mengambil driver dari Host 64-bit, melainkan memuat driver lokal terisolasi untuk stabilitas spooler.
- Audit & Rollback Penuh: Seluruh modifikasi registry, status layanan, dan rule firewall tersimpan dalam file cadangan JSON / teks yang dapat dipulihkan sewaktu-waktu.
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.