catatan: # tag baris perintah tidak menyiratkan batch-file-only, saya akan menerima skrip PowerShell atau utilitas apa pun yang tersedia secara bebas, yang dapat dimulai dari baris perintah dan menyelesaikan pekerjaannya tanpa pengawasan.
tl; dr
bagaimana mengubah aturan firewall tanpa pengawasan dengan tepat untuk menyatakan GUI, pada Windows Vista ke Windows 10 bahasa antarmuka (tampilan)?
Menguraikan
Pertanyaan ini mirip dengan # 786383 , tetapi tidak sama.
Pada dasarnya, karena jawaban tidak baik untuk saya:
set rule group="remote desktop" new enable=Yes
membuka port 3389 untuk jaringan publik, dan saya ingin menghindarinya. Juga, bahasa Windows yang berbeda memiliki nama grup yang berbeda, tetapi saya memerlukan solusi universal.netsh firewall set service type = remotedesktop mode = enable
Saya juga tidak bekerja untuk saya: ini sudah usang sejak win7, dan memungkinkan rdp hanya untuk jaringan saat ini (jika Anda berada di jaringan publik, 3389 akan dibuka untuk jaringan publik dan tidak akan berfungsi di jaringan pribadi setelah itu).
Perhatikan bahwa sebelum RDP diaktifkan melalui GUI, hanya ada satu aturan per protokol untuk RDP. Tetapi ketika RDP diaktifkan melalui GUI, port hanya dibuka untuk jaringan pribadi dan domain, dan aturan terpecah untuk ini. Setelah mengaktifkan, ada 4 aturan di Windows 8+ dan 2 aturan (tidak ada UDP) di Windows XP, Vista dan 7.
Bekerja di sekitar yang saya gunakan saat ini adalah menambahkan aturan saya sendiri:
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (TCP-In)" dir=in action=allow program="%%SystemRoot%%\system32\svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [TCP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=tcp
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (UDP-In)" dir=in action=allow program="%%SystemRoot%%\system32\svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [UDP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=udp
tapi itu buruk, karena (tidak seperti yang standar) mereka dapat dimodifikasi oleh pengguna, tidak memiliki grup (untuk bekerja dengan skrip lain), dan jangan dinonaktifkan secara otomatis ketika RDP dimatikan melalui GUI.
Tangkapan layar
Aturan firewall sebelum mengaktifkan RDP melalui GUI untuk pertama kalinya * **
Aturan yang sama ketika RDP diaktifkan melalui GUI (status yang ingin saya dapatkan):
Dan setelah menonaktifkan RDP di GUI:
Saya tidak akan menceritakan kembali seluruh kisah pertarungan ini dengan utilitas baris perintah windows, sampai seseorang bertanya. Ini cerita dalam bahasa Rusia .
sumber
Jawaban:
atau
sumber
netsh firewall
sudah ditinggalkan (karena win7), tidak berfungsi di Win10, dan memungkinkan rdp hanya untuk jaringan saat ini (jika Anda berada di jaringan publik, rdp akan diizinkan untuk jaringan publik dan setelah itu tidak akan berfungsi di jaringan pribadi). Ini dicatat dalam cerita asli, saya hanya berpikir itu tidak layak disebutkan dalam pertanyaan. Saya akan memperbaiki kesalahan itu.netsh firewall
masih bekerja di Windows 10 (diuji pada Pro).Jika saya memahami pertanyaan dengan benar, ini akan memberi Anda apa yang Anda inginkan. Ini adalah PowerShell:
Ini akan menyaring aturan dan mengambil nama aturan yang benar agnostik bahasa. Ini dilakukan dengan memfilter pada port 3389 dan menemukan aturan yang terkait dengan "Domain dan jaringan pribadi".
Profiles -eq 3
adalah topeng bitmap untuk jaringan Pribadi dan Domain, Anda dapat melihat referensi di sini:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366303(v=vs.85).aspx
Di mana 1 (Jaringan domain) + 2 (Jaringan pribadi) = 3
Berikut ini tautan MSDN tempat saya menemukan sisanya:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365309(v=vs.85).aspx
Dan di sini adalah bagaimana saya menemukan apa properti dan metode untuk objek lain:
sumber
)}
Jika Anda mencari solusi PowerShell, berikut ini dapat digunakan:
sumber
Perintah cmd berikut ..
dan
tidak cukup untuk mengaktifkan desktop jarak jauh.
Saya harus menambahkan ini untuk membuatnya berfungsi (Klien: Windows 10).
sumber