Delen via


Een Script maken van VMM Wizards en eigenschappenpagina 's

 

Van toepassing op: System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager

Om te helpen u aan de slag met het schrijven van scripts in System Center 2012 – Virtual Machine Manager kunt u een script genereren wanneer u de eigenschappen van een wizard of de update in de VMM-console uitvoert. Kunt u de Script weergeven knop op de Samenvatting pagina van elke wizard in de VMM-console of eigenschappen pagina te bekijken van de set met de cmdlets die wordt uitgevoerd wanneer u op Voltooien aan het einde van een wizard of OK wanneer u eigenschappen bijwerken. U kunt de opdrachten naar wens wijzigen en sla het bestand met een .ps1 extensie, die het als een Windows PowerShell-script identificeert.

De gegenereerde Script wijzigen

De parameter ID cmdlets meest gegenereerde scripts gebruiken om specifieke objecten waarop ze in werking te acties laten te geven. Omdat deze ID specifiek voor dat object is, wilt u misschien toestaan uw script parameters of gebruik een Get cmdlet een object te maken van uw script beschikbaar voor gebruik met andere objecten.

Een cmdlet Get toe te voegen aan een Script dat is gegenereerd

Wanneer u een wijziging in een waarde van de eigenschap aanbrengt, de gegenereerde script maakt gebruik van een ID voor het ophalen van het object te wijzigen. Bijvoorbeeld, wordt het volgende script gegenereerd bij het wijzigen van naam en beschrijving voor een logisch netwerk:

$logicalNetwork = Get-SCLogicalNetwork -ID "7a858ed4-b8d2-4ac8-9dbe-6e6a4388c1e7"
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork -RunAsynchronously

Als u dit script nuttig in omgevingen met aanvullende, kunt u de parameter ID vervangen door een where component. Bijvoorbeeld:

$logicalNetwork = @(Get-SCLogicalNetwork | where { $_.Name -like "LogicalNet*" })
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork[0] -RunAsynchronously

De eerste opdracht worden alle logische netwerken met een naam die begint met "LogicalNet" en worden deze in een matrix nu opgehaald. De tweede opdracht wijzigt de eerste logisch netwerk in de matrix, de naam 'Back-end' bijwerken.

Parameters toe te voegen aan een Script dat is gegenereerd

Een andere manier om een gegenereerde script beter toegankelijk is voor het definiëren van parameters in het script. Scriptparameters werkt zoals functieparameters. De parameterwaarden zijn beschikbaar voor alle opdrachten in het script. Wanneer het script wordt uitgevoerd, typt u de parameters met scriptgebruikers na de scriptnaam van het.

Als parameters wilt toevoegen aan een script, gebruikt u de instructie Param. De instructie Param moet de eerste instructie in het script, met uitzondering van opmerkingen. Het volgende voorbeeld wordt de gegenereerde script van boven gewijzigd zodat de naam van een bestaande logische netwerk- en een nieuwe naam voor het logische netwerk kunnen worden toegewezen en een beschrijving toegevoegd als het script wordt uitgevoerd.

Param(
   [parameter(Mandatory=$true)]
   [String] $LogicalNetwork = $(throw "A name for an existing logical network is required."),

   [parameter(Mandatory=$true)]
   [String] $NewName = $(throw "A new name for the logical network is required."),

   [parameter(Mandatory=$false)]
   [String] $Description
   )
Set-SCLogicalNetwork -Name $NewName -Description $Description -LogicalNetwork $LogicalNetwork -RunAsynchronously

Als u dit script uitvoert, moet u de naam van een bestaande logische netwerk en een nieuwe naam voor het logische netwerk. Een beschrijving opgeven is optioneel. Bijvoorbeeld als dit script wordt opgeslagen als "UpdateLogicalNetworkName.ps1", typt u de volgende bij de opdrachtprompt: .\UpdateLogicalNetworkName.ps1 -LogicalNetwork "LogicalNetwork01" -NewName "Backend" -Description "Backend logical network for Seattle." Als u geen waarden opgeven voor LogicalNetwork en NewName, wordt u gevraagd daarvoor.

Zie voor meer informatie over het schrijven van Windows PowerShell-scripts vragen over scripts.