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.