У меня есть сценарий, который я использую его для нескольких задач, таких какНесколько объявлений переменных
- Создать папку в Vsphere
- Создать ResourcePools
- Создание виртуальной машины (VMware)
- Настройка IP/DNS
- Добавьте его в домен, & hellip;
Для этого мне нужно несколько входов, таких как имя виртуальной машины, имя сервера vCenter, имя пользователя, пароль и т. Д. Как объявить входные переменные извне (отдельно от основного сценария), а также сделать их универсальными в образе.
Я пробовал использовать процедуру ниже, но это дает мне ошибку переполнения глубины звонка.
VARIABLE_DECLARATION.ps1
:
VariableDeclaration = @{
[CmdletBinding()]
Param (
[Parameter(Mandatory=$True)]
[Parameter(ValueFromPipeline=$true)]
[int]$CustomerCID = '10000';
[string]$CustomerName = "ABCcorp";
[string]$vCenterName = "vCenter.ABCcorp.com";
[string]$vCenterUserName = "[email protected]";
[string]$vCenterPassword = "ABCcorp123!";
[string]$CustomerPODLocation = "VW1";
[string]$DatacenterName = "ABCcorpDC";
[string]$ClusterName = "ABCcorpcluster";
[string]$InfraResourcePoolName = ($CustomerCID + "-" + $CustomerName + "-" + "Infrastructure");
[string]$DesktopResourcePoolName = ($CustomerCID + "-" + $CustomerName + "-" + "Desktop");
[string]$CustomerFolderName = ($CustomerCID + "-" + $CustomerName);
[string]$ConnectionType = "xConnect";
[int]$VLANID = '237';
[string]$CustomerDVPortGroupName = ($CustomerPODLocation + "-" + $ConnectionType + "-" + $CustomerCID + "-" + $CustomerName + "-" + $VLANID);
[int]$NumberofPorts = '1024';
[string]$AD1computername = ($CustomerCID + "-RADSVR01-v" + $CustomerName + ".vdi");
[string]$AD2computername = ($CustomerCID + "-RADSVR02-v" + $CustomerName + ".vdi");
[string]$sourcetemplate = "BaseWin2012R2";
[string]$description = "ABCcorp Infra Systems";
[string]$OSCustomizationspec = "ABCcorp";
[string]$AD1IP = "10.0.0.10";
[string]$AD2IP = "10.0.0.11";
[string]$SNM = "255.255.255.0";
[string]$DG = "10.0.0.1";
[string]$DNS = "10.0.0.2";
[string]$HostUsername = "root";
[string]$HostPassword = (ConvertTo-SecureString -String "ABCcorp123" -AsPlainText -Force);
[string]$HostCredential = (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $HostUsername, $HostPassword)
)
}
Не могли бы вы помочь мне с небольшим примером? –