Delen via


Disable-PSRemoting

Hiermee voorkomt u dat externe gebruikers opdrachten uitvoeren op de lokale computer.

Syntaxis

Disable-PSRemoting
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

De cmdlet Disable-PSRemoting voorkomt dat gebruikers op andere computers opdrachten uitvoeren op de lokale computer.

Disable-PSRemoting blokkeert externe toegang tot alle sessieconfiguraties op de lokale computer. Hiermee voorkomt u dat externe gebruikers tijdelijke of permanente sessies maken op de lokale computer. Disable-PSRemoting- verhindert niet dat gebruikers van de lokale computer sessies (PSSessions) maken op de lokale computer of externe computers.

Als u externe toegang tot alle sessieconfiguraties opnieuw wilt inschakelen, gebruikt u de cmdlet Enable-PSRemoting. Als u externe toegang tot geselecteerde sessieconfiguraties wilt inschakelen, gebruikt u de parameter AccessMode van de Set-PSSessionConfiguration-cmdlet. U kunt ook de cmdlets Enable-PSSessionConfiguration en Disable-PSSessionConfiguration gebruiken om sessieconfiguraties voor alle gebruikers in en uit te schakelen. Zie about_Session_Configurationsvoor meer informatie over sessieconfiguraties.

In Windows PowerShell 2.0 Disable-PSRemoting voorkomt u dat alle gebruikers door gebruikers beheerde sessies maken op de lokale computer. In Windows PowerShell 3.0 Disable-PSRemoting voorkomt u dat gebruikers op andere computers door gebruikers beheerde sessies maken op de lokale computer, maar gebruikers van de lokale computer toestaan om door de gebruiker beheerde loopbacksessies te maken.

Als u deze cmdlet wilt uitvoeren, start u Windows PowerShell met de optie Als administrator uitvoeren.

LET OP: Op systemen met zowel Windows PowerShell 3.0 als de Windows PowerShell 2.0-engine gebruikt u Windows PowerShell 2.0 niet om de Enable-PSRemoting- en Disable-PSRemoting cmdlets uit te voeren. De opdrachten lijken te slagen, maar de externe communicatie is niet juist geconfigureerd. Externe opdrachten en latere pogingen om externe communicatie in en uit te schakelen, zullen waarschijnlijk mislukken.

Voorbeelden

Voorbeeld 1: Externe toegang tot alle sessieconfiguraties voorkomen

PS C:\> Disable-PSRemoting

Met deze opdracht voorkomt u externe toegang tot alle sessieconfiguraties op de computer.

Voorbeeld 2: Externe toegang tot alle sessieconfiguraties voorkomen zonder bevestigingsprompt

PS C:\> Disable-PSRemoting -Force

Met deze opdracht voorkomt u dat alle sessieconfiguraties op de computer worden geopend zonder dat u hierom wordt gevraagd.

Voorbeeld 3: Effecten van het uitvoeren van deze cmdlet

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> New-PSSession -ComputerName localhost


Id Name       ComputerName    State    Configuration         Availability
-- ----       ------------    -----    -------------         ------------
1 Session1   Server02...     Opened   Microsoft.PowerShell     Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01

[SERVER01] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed

In dit voorbeeld ziet u het effect van het gebruik van de cmdlet Disable-PSRemoting. Als u deze opdrachtreeks wilt uitvoeren, start u Windows PowerShell met de optie Als administrator uitvoeren.

De eerste opdracht maakt gebruik van de cmdlet Disable-PSRemoting om alle geregistreerde sessieconfiguraties op de Server01-computer uit te schakelen.

De tweede opdracht maakt gebruik van de cmdlet New-PSSession om een externe sessie te maken op de lokale computer (ook wel een 'loopback' genoemd). De opdracht slaagt.

De derde opdracht wordt uitgevoerd op de externe Server02-computer. De opdracht maakt gebruik van de cmdlet New-PSSession om een sessie te maken op de externe Server01-computer. Omdat externe toegang is uitgeschakeld, mislukt de opdracht.

Voorbeeld 4: Effecten van het uitvoeren van deze cmdlet en Enable-PSRemoting

PS C:\> Disable-PSRemoting -force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed


[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

Name                          Permission
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32        BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       BUILTIN\Administrators AccessAllowed
WithProfile                   BUILTIN\Administrators AccessAllowed

In dit voorbeeld ziet u het effect op de sessieconfiguraties van het gebruik van de Disable-PSRemoting- en Enable-PSRemoting cmdlets.

De eerste opdracht maakt gebruik van de cmdlet Disable-PSRemoting om externe toegang tot alle sessieconfiguraties uit te schakelen. De parameter Forceren onderdrukt alle gebruikersprompts.

De tweede opdracht gebruikt de Get-PSSessionConfiguration cmdlet om de sessieconfiguraties op de computer weer te geven. De opdracht maakt gebruik van een pijplijnoperator om de resultaten te verzenden naar een Format-Table opdracht, waarin alleen de eigenschappen Naam en Machtiging van de configuraties in een tabel worden weergegeven.

In de uitvoer ziet u dat alleen externe gebruikers toegang tot de configuraties krijgen. Leden van de groep Administrators op de lokale computer mogen de sessieconfiguraties gebruiken. In de uitvoer ziet u ook dat de opdracht van invloed is op alle sessieconfiguraties die de door de gebruiker gemaakte WithProfile-sessieconfiguratie bevatten.

De derde opdracht maakt gebruik van de cmdlet Enable-PSRemoting om externe toegang opnieuw in te schakelen voor alle sessieconfiguraties op de computer. De opdracht maakt gebruik van de parameter Force om alle gebruikersprompts te onderdrukken en de WinRM-service opnieuw te starten zonder te vragen.

De vierde opdracht maakt gebruik van de cmdlets Get-PSSessionConfiguration en Format-Table om de namen en machtigingen van de sessieconfiguraties weer te geven. De resultaten laten zien dat de AccessDenied-beveiligingsdescriptors zijn verwijderd uit alle sessieconfiguraties.

Voorbeeld 5: Externe toegang tot sessieconfiguraties met aangepaste beveiligingsdescriptors voorkomen

PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Name                          Permission
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed

[ADMIN] PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed

# Domain01\User01

PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed

In dit voorbeeld ziet u dat de cmdlet Disable-PSRemoting externe toegang uitschakelt tot alle sessieconfiguraties met sessieconfiguraties met aangepaste beveiligingsdescriptors.

De eerste opdracht maakt gebruik van de Register-PSSessionConfiguration cmdlet om de testsessieconfiguratie te maken. De opdracht gebruikt de parameter FilePath om een sessieconfiguratiebestand op te geven waarmee de sessie en de parameter ShowSecurityDescriptorUI worden weergegeven om een dialoogvenster weer te geven waarin machtigingen voor de sessieconfiguratie worden ingesteld. In het dialoogvenster Machtigingen maken we aangepaste machtigingen voor volledige toegang voor de gebruiker Domain01\User01.

De tweede opdracht maakt gebruik van de cmdlets Get-PSSessionConfiguration en cmdlets Format-Table om de sessieconfiguraties en hun eigenschappen weer te geven. In de uitvoer ziet u dat de configuratie van de testsessie interactieve toegang en speciale machtigingen toestaat voor de gebruiker Domain01\User01.

De derde opdracht maakt gebruik van de cmdlet Disable-PSRemoting om externe toegang tot alle sessieconfiguraties uit te schakelen.

De vierde opdracht maakt gebruik van de cmdlets Get-PSSessionConfiguration en Format-Table om de sessieconfiguraties en hun eigenschappen weer te geven. In de uitvoer ziet u dat een AccessDenied-beveiligingsdescriptor voor alle netwerkgebruikers wordt toegevoegd aan alle sessieconfiguraties die de testsessieconfiguratie bevatten. Hoewel de andere beveiligingsdescriptors niet worden gewijzigd, heeft de beveiligingsdescriptor 'network_deny_all' voorrang.

De vijfde opdracht laat zien dat de opdracht Disable-PSRemoting voorkomt dat zelfs de gebruiker Domain01\User01 met speciale machtigingen voor de testsessieconfiguratie de testsessieconfiguratie gebruikt om op afstand verbinding te maken met de computer.

Voorbeeld 6: Externe toegang opnieuw inschakelen voor geselecteerde sessieconfiguraties

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed

[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed

In dit voorbeeld ziet u hoe u externe toegang alleen opnieuw inschakelt voor geselecteerde sessieconfiguraties.

De eerste opdracht maakt gebruik van de cmdlet Disable-PSRemoting om externe toegang tot alle sessieconfiguraties uit te schakelen.

De tweede opdracht maakt gebruik van de cmdlets Get-PSSessionConfiguration en cmdlets Format-Table om de sessieconfiguraties en hun eigenschappen weer te geven. In de uitvoer ziet u dat een AccessDenied-beveiligingsdescriptor voor alle netwerkgebruikers wordt toegevoegd aan alle sessieconfiguraties.

De derde opdracht maakt gebruik van de cmdlet Set-PSSessionConfiguration. De opdracht gebruikt de parameter AccessMode met de waarde Remote om externe toegang tot de sessieconfiguratie Microsoft.ServerManager in te schakelen. U kunt ook de parameter AccessMode gebruiken om lokale toegang in te schakelen en sessieconfiguraties uit te schakelen.

De vierde opdracht maakt gebruik van de cmdlets Get-PSSessionConfiguration en Format-Table om de sessieconfiguraties en hun eigenschappen weer te geven. In de uitvoer ziet u dat de security descriptor AccessDenied voor alle netwerkgebruikers wordt verwijderd, waardoor externe toegang wordt hersteld naar de sessieconfiguratie Van Microsoft.ServerManager.

Parameters

-Confirm

U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Force

Hiermee dwingt u de opdracht uit te voeren zonder dat u om bevestiging van de gebruiker wordt gevraagd.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-WhatIf

Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt invoer voor deze cmdlet niet doorsluisen.

Uitvoerwaarden

None

Deze cmdlet retourneert geen object.

Notities

  • Als u de sessieconfiguraties uitschakelt, worden niet alle wijzigingen ongedaan gemaakt die zijn aangebracht door de Enable-PSRemoting of Enable-PSSessionConfiguration cmdlets. Mogelijk moet u de volgende wijzigingen handmatig ongedaan maken.

Stop en schakel de WinRM-service uit.

2. Verwijder de listener die aanvragen accepteert op elk IP-adres.

3. Schakel de firewall-uitzonderingen voor WS-Management communicatie uit.

4. Herstel de waarde van localAccountTokenFilterPolicy naar 0, waardoor externe toegang wordt beperkt tot leden van de groep Administrators op de computer.

Een sessieconfiguratie is een groep instellingen waarmee de omgeving voor een sessie wordt gedefinieerd. Elke sessie die verbinding maakt met de computer, moet een van de sessieconfiguraties gebruiken die zijn geregistreerd op de computer. Door externe toegang tot alle sessieconfiguraties te weigeren, voorkomt u effectief dat externe gebruikers sessies tot stand brengen die verbinding maken met de computer.

In Windows PowerShell 2.0 voegt Disable-PSRemoting- een Deny_All vermelding toe aan de beveiligingsdescriptors van alle sessieconfiguraties. Met deze instelling voorkomt u dat alle gebruikers door gebruikers beheerde sessies maken op de lokale computer. In Windows PowerShell 3.0 voegt Disable-PSRemoting- een Network_Deny_All vermelding toe aan de beveiligingsdescriptors van alle sessieconfiguraties. Met deze instelling voorkomt u dat gebruikers op andere computers door gebruikers beheerde sessies maken op de lokale computer, maar gebruikers van de lokale computer toestaan om door gebruikers beheerde loopbacksessies te maken.

In Windows PowerShell 2.0 is Disable-PSRemoting- het equivalent van Disable-PSSessionConfiguration -Name *. In Windows PowerShell 3.0 en hoger is Disable-PSRemoting- het equivalent van Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local

In Windows PowerShell 2.0 is Disable-PSRemoting een functie. Vanaf Windows PowerShell 3.0 is het een cmdlet.