Toegangsbeveiliging instellen op variabelen, aliassen en functies met behulp van de bereikaanpassing

Voltooid

Windows PowerShell biedt toegangsbeveiliging voor variabelen, aliassen, functies en Windows PowerShell-stations door te beperken waar ze kunnen worden gewijzigd en gelezen. Door enkele eenvoudige regels af te dwingen met Behulp van Windows PowerShell-bereiken, zorgt u ervoor dat u niet per ongeluk een item wijzigt dat niet mag worden gewijzigd. De basisregels van bereiken zijn:

  • Tenzij u het expliciet privĂ© maakt, zijn items die u in een bereik opneemt zichtbaar in het bereik waarin het is gemaakt en in een onderliggend bereik. U kunt variabelen, aliassen, functies of Windows PowerShell-stations gebruiken in een of meer bereiken.
  • Items die u binnen een bereik maakt, kunnen alleen worden gewijzigd in het bereik waarin het item is gemaakt, tenzij u expliciet een ander bereik bepaalt.

Als u een item in een bereik maakt en het item dezelfde naam heeft als een item in een ander bereik, wordt het oorspronkelijke item mogelijk verborgen onder het nieuwe item. Het wordt echter niet overschreven of gewijzigd.

U kunt lokale variabelen in externe opdrachten gebruiken, maar u moet aangeven dat de variabele is gedefinieerd in de lokale sessie. In Windows PowerShell wordt ervan uitgegaan dat de variabelen die worden gebruikt in externe opdrachten worden gedefinieerd in de sessie waarin de opdracht wordt uitgevoerd.

De $Using: bereikaanpassing

Zoals eerder vermeld, kunt u vanaf Windows PowerShell 3.0 de $Using: bereikaanpassing implementeren om een lokale variabele in een externe opdracht te identificeren. Dit is een speciale bereikaanpassing en is de eenvoudigste manier om te verwijzen naar een lokale variabele in een externe opdracht. Deze techniek geeft de variabele waarde(s) door aan de externe computer en omvat daarom minder verwerking op de hosts die worden gebruikt. Standaard wordt ervan uitgegaan dat variabelen in externe opdrachten worden gedefinieerd in de externe sessie.

De syntaxis van Using is $Using:.

In het volgende voorbeeld wordt de $ps variabele gemaakt in de lokale sessie, maar gebruikt in de sessie waarin de opdracht wordt uitgevoerd. De $Using: bereikaanpassing identificeert $ps als een lokale variabele:

$ps = "Windows PowerShell" 

Invoke-Command -ComputerName LON-DC1 -ScriptBlock {Get-WinEvent -LogName $Using:ps}

U kunt ook de $Using: bereikaanpassing toepassen in PSSessions, zoals in het volgende voorbeeld:

$s = New-PSSession -ComputerName LON-DC1

$ps = "Windows PowerShell"

Invoke-Command -Sessions $s -ScriptBlock {Get-WinEvent -LogName $Using:ps}