Aktivieren Sie den Remotedesktop in der Windows-Firewall über die Befehlszeile
hinweis: # Kommandozeilen-Tag bedeutet nicht nur Batch-Datei, ich werde ein PowerShell-Skript oder ein frei verfügbares Dienstprogramm akzeptieren, das über die Befehlszeile gestartet werden kann und seine Arbeit unbeaufsichtigt beendet.
Tl;dr
Wie kann man Firewallregeln unbeaufsichtigt genau in den Zustand transformieren, in dem GUI sie unter Windows Vista in Windows 10 einer beliebigen Sprache der Benutzeroberfläche (Anzeige) versetzt?
Ausarbeitung
Diese Frage ist ähnlich wie #786383, aber es ist nicht das gleiche.
Im Grunde, weil die Antwort nicht gut für mich ist:
-
set rule group="remote desktop" new enable=Yes
öffnet Port 3389 für öffentliche Netzwerke, und ich möchte das vermeiden. Außerdem haben verschiedene Windows-Sprachen unterschiedliche Gruppennamen, aber ich brauche eine universelle Lösung. -
netsh firewall set service type = remotedesktop mode = enable
funktioniert auch bei mir nicht: Es ist seit win7 veraltet und erlaubt rdp nur für das aktuelle Netzwerk (wenn Sie sich in einem öffentlichen Netzwerk befinden, wird 3389 für öffentliche Netzwerke geöffnet und funktioniert nicht in privaten Netzwerken danach).
Beachten Sie, dass es vor der Aktivierung von RDP über die GUI nur eine Regel pro Protokoll für RDP gibt. Wenn RDP jedoch über die GUI aktiviert wird, wird der Port nur für private Netzwerke und Domänennetzwerke geöffnet und die Regeln dafür aufgeteilt. Nach der Aktivierung gibt es 4 Regeln, die in Windows 8+ und 2 Regeln (kein UDP) in Windows XP, Vista und 7.
Workaround, den ich gerade verwende, fügt meine eigenen Regeln hinzu:
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
Aber das ist schlecht, denn (im Gegensatz zu Standard) können sie vom Benutzer geändert werden, haben keine gruppieren Sie (um mit anderen Skripten zu arbeiten) und werden Sie nicht automatisch deaktiviert, wenn RDP über die GUI deaktiviert wird.
, Screenshots
Firewall-Regeln vor dem ersten Aktivieren von RDP über GUI * **
Gleiche Regeln, wenn RDP über GUI aktiviert ist (Zustand, den ich erhalten möchte):
Und nach dem Deaktivieren von RDP in GUI:
Ich werde die ganze Geschichte dieses Kampfes nicht mit Windows-Befehlszeilenprogrammen nacherzählen, bis jemand fragt. Hier ist diese Geschichte auf Russisch.
4 answers
netsh firewall set service type = remotedesktop mode = enable
Oder
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-21 18:58:46
Wenn ich die Frage richtig verstehe, erhalten Sie das, was Sie wollen. Dies ist PowerShell:
$FireWall = New-Object -comObject HNetCfg.FwPolicy2
$EnableRules = $FireWall.rules | Where-Object {$_.LocalPorts -like "*3389*" -and $_.Profiles -eq "3"}
ForEach ($Rule In $EnableRules){($Rule.Enabled = "True")}
Dadurch werden die Regeln herausgefiltert und die korrekten, sprachunabhängigen Regelnamen abgerufen. Dazu wird auf Port 3389 gefiltert und die Regel gefunden, die "Domäne und private Netzwerke"zugeordnet ist. Profiles -eq 3
ist die Bitmap-Maske für private und Domänennetzwerke, Sie können die Referenz sehen hier:
Https://msdn.microsoft.com/en-us/library/windows/desktop/aa366303(v=vs. 85).aspx -
Wobei 1 (Domänennetzwerke) + 2 (private Netzwerke) = 3
Hier ist der MSDN-Link, über den ich den Rest herausgefunden habe:
Https://msdn.microsoft.com/en-us/library/windows/desktop/aa365309(v=vs. 85).aspx -
Und so habe ich herausgefunden, was die Eigenschaften und Methoden für die anderen Objekte waren:
PS C:\> $FireWall | Get-Member
TypeName: System.__ComObject#{98325047-c671-4174-8d81-defcd3f03186}
Name MemberType Definition
---- ---------- ----------
EnableRuleGroup Method void EnableRuleGroup (int, string, bool)
IsRuleGroupEnabled Method bool IsRuleGroupEnabled (int, string)
RestoreLocalFirewallDefaults Method void RestoreLocalFirewallDefaults ()
BlockAllInboundTraffic ParameterizedProperty bool BlockAllInboundTraffic (NET_FW_PROFILE_TYPE2...
DefaultInboundAction ParameterizedProperty NET_FW_ACTION_ DefaultInboundAction (NET_FW_PROFI...
DefaultOutboundAction ParameterizedProperty NET_FW_ACTION_ DefaultOutboundAction (NET_FW_PROF...
ExcludedInterfaces ParameterizedProperty Variant ExcludedInterfaces (NET_FW_PROFILE_TYPE2_...
FirewallEnabled ParameterizedProperty bool FirewallEnabled (NET_FW_PROFILE_TYPE2_) {get...
IsRuleGroupCurrentlyEnabled ParameterizedProperty bool IsRuleGroupCurrentlyEnabled (string) {get}
NotificationsDisabled ParameterizedProperty bool NotificationsDisabled (NET_FW_PROFILE_TYPE2_...
UnicastResponsesToMulticastBroadcastDisabled ParameterizedProperty bool UnicastResponsesToMulticastBroadcastDisabled...
CurrentProfileTypes Property int CurrentProfileTypes () {get}
LocalPolicyModifyState Property NET_FW_MODIFY_STATE_ LocalPolicyModifyState () {g...
Rules Property INetFwRules Rules () {get}
ServiceRestriction Property INetFwServiceRestriction ServiceRestriction () {g...
PS C:\> $Rules | Get-Member
TypeName: System.__ComObject#{9c27c8da-189b-4dde-89f7-8b39a316782c}
Name MemberType Definition
---- ---------- ----------
Action Property NET_FW_ACTION_ Action () {get} {set}
ApplicationName Property string ApplicationName () {get} {set}
Description Property string Description () {get} {set}
Direction Property NET_FW_RULE_DIRECTION_ Direction () {get} {set}
EdgeTraversal Property bool EdgeTraversal () {get} {set}
EdgeTraversalOptions Property int EdgeTraversalOptions () {get} {set}
Enabled Property bool Enabled () {get} {set}
Grouping Property string Grouping () {get} {set}
IcmpTypesAndCodes Property string IcmpTypesAndCodes () {get} {set}
Interfaces Property Variant Interfaces () {get} {set}
InterfaceTypes Property string InterfaceTypes () {get} {set}
LocalAddresses Property string LocalAddresses () {get} {set}
LocalPorts Property string LocalPorts () {get} {set}
Name Property string Name () {get} {set}
Profiles Property int Profiles () {get} {set}
Protocol Property int Protocol () {get} {set}
RemoteAddresses Property string RemoteAddresses () {get} {set}
RemotePorts Property string RemotePorts () {get} {set}
serviceName Property string serviceName () {get} {set}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-01-25 17:39:12
Die folgenden cmd-Befehle..
netsh firewall set service type = remotedesktop mode = enable
Und
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /
Reichen nicht aus, um Remote Desktop zu aktivieren.
Ich musste dieses hinzufügen, damit es funktioniert (Client: Windows 10).
netsh advfirewall firewall add rule name="Open Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-04 15:58:20
Wenn Sie nach einer PowerShell-Lösung suchen, kann Folgendes verwendet werden:
Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP"
Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-09 01:43:25