106 lines
3.8 KiB
PowerShell
106 lines
3.8 KiB
PowerShell
Function New-MyOrg {
|
|
<#
|
|
.SYNOPSIS
|
|
Creates a new vCD Org with Default Parameters
|
|
|
|
.DESCRIPTION
|
|
Creates a new vCD Org with Default Parameters.
|
|
|
|
Default Parameters are:
|
|
* Catalog Publishing
|
|
* Catalog Subscription
|
|
* VM Quota
|
|
* Stored VM Quota
|
|
* VM Lease Time
|
|
* Stored VM Lease Time
|
|
* Password Policy Settings
|
|
|
|
.NOTES
|
|
File Name : New-MyOrg.ps1
|
|
Author : Markus Kraus
|
|
Version : 1.1
|
|
State : Ready
|
|
|
|
.LINK
|
|
https://mycloudrevolution.com/
|
|
|
|
.EXAMPLE
|
|
New-MyOrg -Name "TestOrg" -FullName "Test Org" -Description "PowerCLI Test Org"
|
|
|
|
.PARAMETER Name
|
|
Name of the New Org as String
|
|
|
|
.PARAMETER FullName
|
|
Full Name of the New Org as String
|
|
|
|
.PARAMETER Description
|
|
Description of the New Org as String
|
|
|
|
.PARAMETER Enabled
|
|
Should the New Org be enabled after creation
|
|
|
|
Default:$false
|
|
|
|
#>
|
|
Param (
|
|
[Parameter(Mandatory=$True, ValueFromPipeline=$False, HelpMessage="Name of the New Org as string")]
|
|
[ValidateNotNullorEmpty()]
|
|
[String] $Name,
|
|
[Parameter(Mandatory=$True, ValueFromPipeline=$False, HelpMessage="Full Name of the New Org as string")]
|
|
[ValidateNotNullorEmpty()]
|
|
[String] $FullName,
|
|
[Parameter(Mandatory=$False, ValueFromPipeline=$False, HelpMessage="Description of the New Org as string")]
|
|
[ValidateNotNullorEmpty()]
|
|
[String] $Description,
|
|
[Parameter(Mandatory=$False, ValueFromPipeline=$False, HelpMessage="Should the New Org be enabled after creation")]
|
|
[ValidateNotNullorEmpty()]
|
|
[Switch]$Enabled
|
|
)
|
|
Process {
|
|
$vcloud = $DefaultCIServers[0].ExtensionData
|
|
|
|
## Create Objects
|
|
$AdminOrg = New-Object VMware.VimAutomation.Cloud.Views.AdminOrg
|
|
$orgGeneralSettings = New-Object VMware.VimAutomation.Cloud.Views.OrgGeneralSettings
|
|
$orgOrgLeaseSettings = New-Object VMware.VimAutomation.Cloud.Views.OrgLeaseSettings
|
|
$orgOrgVAppTemplateLeaseSettings = New-Object VMware.VimAutomation.Cloud.Views.OrgVAppTemplateLeaseSettings
|
|
$orgOrgPasswordPolicySettings = New-Object VMware.VimAutomation.Cloud.Views.OrgPasswordPolicySettings
|
|
$orgSettings = New-Object VMware.VimAutomation.Cloud.Views.OrgSettings
|
|
|
|
## Admin Settings
|
|
$adminOrg.Name = $name
|
|
$adminOrg.FullName = $FullName
|
|
$adminOrg.Description = $description
|
|
$adminOrg.IsEnabled = $Enabled
|
|
|
|
## Org Setting
|
|
### General Org Settings
|
|
$orgGeneralSettings.CanPublishCatalogs = $False
|
|
$orgGeneralSettings.CanPublishExternally = $False
|
|
$orgGeneralSettings.CanSubscribe = $True
|
|
$orgGeneralSettings.DeployedVMQuota = 0
|
|
$orgGeneralSettings.StoredVmQuota = 0
|
|
$orgSettings.OrgGeneralSettings = $orgGeneralSettings
|
|
### vApp Org Setting
|
|
$orgOrgLeaseSettings.DeleteOnStorageLeaseExpiration = $false
|
|
$orgOrgLeaseSettings.DeploymentLeaseSeconds = 0
|
|
$orgOrgLeaseSettings.StorageLeaseSeconds = 0
|
|
$orgSettings.VAppLeaseSettings = $orgOrgLeaseSettings
|
|
### vApp Template Org Setting
|
|
$orgOrgVAppTemplateLeaseSettings.DeleteOnStorageLeaseExpiration = $false
|
|
$orgOrgVAppTemplateLeaseSettings.StorageLeaseSeconds = 0
|
|
$orgSettings.VAppTemplateLeaseSettings = $orgOrgVAppTemplateLeaseSettings
|
|
### PasswordPolicySettings Org Setting
|
|
$orgOrgPasswordPolicySettings.AccountLockoutEnabled = $True
|
|
$orgOrgPasswordPolicySettings.InvalidLoginsBeforeLockout = 5
|
|
$orgOrgPasswordPolicySettings.AccountLockoutIntervalMinutes = 30
|
|
$orgSettings.OrgPasswordPolicySettings = $orgOrgPasswordPolicySettings
|
|
|
|
$adminOrg.Settings = $orgSettings
|
|
|
|
$CreateOrg = $vcloud.CreateOrg($adminOrg)
|
|
|
|
Get-Org -Name $name | Format-Table -AutoSize
|
|
}
|
|
}
|