Merge branch 'vmware:master' into patch-Set-HVApplicationIcon
This commit is contained in:
@@ -3925,18 +3925,26 @@ function New-HVPool {
|
|||||||
[boolean]$enableHTMLAccess = $false,
|
[boolean]$enableHTMLAccess = $false,
|
||||||
|
|
||||||
# DesktopPCoIPDisplaySettings
|
# DesktopPCoIPDisplaySettings
|
||||||
#desktopSpec.desktopSettings.logoffSettings.pcoipDisplaySettings.renderer3D
|
#desktopSpec.desktopSettings.DisplayProtocolSettings.pcoipDisplaySettings.renderer3D
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = 'INSTANT_CLONE')]
|
[Parameter(Mandatory = $false,ParameterSetName = 'INSTANT_CLONE')]
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = 'MANUAL')]
|
[Parameter(Mandatory = $false,ParameterSetName = 'MANUAL')]
|
||||||
[ValidateSet('MANAGE_BY_VSPHERE_CLIENT', 'AUTOMATIC', 'SOFTWARE', 'HARDWARE', 'DISABLED')]
|
[ValidateSet('MANAGE_BY_VSPHERE_CLIENT', 'AUTOMATIC', 'SOFTWARE', 'HARDWARE', 'DISABLED')]
|
||||||
[string]$renderer3D = 'DISABLED',
|
[string]$renderer3D = 'DISABLED',
|
||||||
|
|
||||||
#desktopSpec.desktopSettings.logoffSettings.pcoipDisplaySettings.enableGRIDvGPUs
|
#desktopSpec.desktopSettings.DisplayProtocolSettings.pcoipDisplaySettings.enableGRIDvGPUs
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = 'MANUAL')]
|
[Parameter(Mandatory = $false,ParameterSetName = 'MANUAL')]
|
||||||
|
[Parameter(Mandatory = $false,ParameterSetName = 'INSTANT_CLONE')]
|
||||||
[boolean]$enableGRIDvGPUs = $false,
|
[boolean]$enableGRIDvGPUs = $false,
|
||||||
|
|
||||||
|
#desktopSpec.desktopSettings.DisplayProtocolSettings.pcoipDisplaySettings.VGPUGridProfile
|
||||||
|
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
||||||
|
# [Parameter(Mandatory = $false,ParameterSetName = 'MANUAL')]
|
||||||
|
[Parameter(Mandatory = $false,ParameterSetName = 'INSTANT_CLONE')]
|
||||||
|
[ValidateSet('grid_m10-0b','grid_m10-1b','grid_m10-2b','grid_m10-0q','grid_m10-1q','grid_m10-2q','grid_m10-4q','grid_m10-8q')]
|
||||||
|
[string]$VGPUGridProfile = $null,
|
||||||
|
|
||||||
#desktopSpec.desktopSettings.logoffSettings.pcoipDisplaySettings.vRamSizeMB
|
#desktopSpec.desktopSettings.logoffSettings.pcoipDisplaySettings.vRamSizeMB
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
[Parameter(Mandatory = $false,ParameterSetName = "LINKED_CLONE")]
|
||||||
[ValidateRange(64,512)]
|
[ValidateRange(64,512)]
|
||||||
@@ -4010,6 +4018,12 @@ function New-HVPool {
|
|||||||
[string]
|
[string]
|
||||||
$SnapshotVM,
|
$SnapshotVM,
|
||||||
|
|
||||||
|
#desktopSpec.automatedDesktopSpec.virtualCenterProvisioningSettings.addVirtualTPM if INSTANT_CLONE, ???
|
||||||
|
# [Parameter(Mandatory = $true,ParameterSetName = "LINKED_CLONE")]
|
||||||
|
[Parameter(Mandatory = $false,ParameterSetName = 'INSTANT_CLONE')]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[boolean]$addVirtualTPM = $false,
|
||||||
|
|
||||||
#desktopSpec.automatedDesktopSpec.virtualCenterProvisioningSettings.virtualCenterProvisioningData.vmFolder if LINKED_CLONE, INSTANT_CLONE, FULL_CLONE
|
#desktopSpec.automatedDesktopSpec.virtualCenterProvisioningSettings.virtualCenterProvisioningData.vmFolder if LINKED_CLONE, INSTANT_CLONE, FULL_CLONE
|
||||||
[Parameter(Mandatory = $true,ParameterSetName = "LINKED_CLONE")]
|
[Parameter(Mandatory = $true,ParameterSetName = "LINKED_CLONE")]
|
||||||
[Parameter(Mandatory = $true,ParameterSetName = 'INSTANT_CLONE')]
|
[Parameter(Mandatory = $true,ParameterSetName = 'INSTANT_CLONE')]
|
||||||
@@ -4515,6 +4529,9 @@ function New-HVPool {
|
|||||||
if ($null -ne $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Snapshot) {
|
if ($null -ne $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Snapshot) {
|
||||||
$snapshotVM = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Snapshot
|
$snapshotVM = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Snapshot
|
||||||
}
|
}
|
||||||
|
if ($null -ne $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.addVirtualTPM) {
|
||||||
|
$addVirtualTPM = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.addVirtualTPM
|
||||||
|
}
|
||||||
$dataCenter = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.dataCenter
|
$dataCenter = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.dataCenter
|
||||||
$vmFolder = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.VmFolder
|
$vmFolder = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.VmFolder
|
||||||
$hostOrCluster = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.HostOrCluster
|
$hostOrCluster = $jsonObject.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.HostOrCluster
|
||||||
@@ -4658,6 +4675,7 @@ function New-HVPool {
|
|||||||
if ($null -ne $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings) {
|
if ($null -ne $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings) {
|
||||||
$renderer3D = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.renderer3D
|
$renderer3D = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.renderer3D
|
||||||
$enableGRIDvGPUs = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.enableGRIDvGPUs
|
$enableGRIDvGPUs = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.enableGRIDvGPUs
|
||||||
|
$VGPUGridProfile = $jsonObject.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.VGPUGridProfile
|
||||||
if ($jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.vRamSizeMB) {
|
if ($jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.vRamSizeMB) {
|
||||||
$vRamSizeMB = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.vRamSizeMB
|
$vRamSizeMB = $jsonObject.DesktopSettings.displayProtocolSettings.pcoipDisplaySettings.vRamSizeMB
|
||||||
}
|
}
|
||||||
@@ -4907,6 +4925,7 @@ function New-HVPool {
|
|||||||
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData = $desktopVirtualCenterProvisioningData
|
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData = $desktopVirtualCenterProvisioningData
|
||||||
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings = $desktopVirtualCenterStorageSettings
|
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings = $desktopVirtualCenterStorageSettings
|
||||||
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings = $DesktopVirtualCenterNetworkingSettings
|
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings = $DesktopVirtualCenterNetworkingSettings
|
||||||
|
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenterProvisioningSettings.AddVirtualTPM = $AddVirtualTPM
|
||||||
$desktopSpecObj.AutomatedDesktopSpec.CustomizationSettings = $desktopCustomizationSettings
|
$desktopSpecObj.AutomatedDesktopSpec.CustomizationSettings = $desktopCustomizationSettings
|
||||||
$desktopSpecObj.AutomatedDesktopSpec.ProvisioningType = $provisioningType
|
$desktopSpecObj.AutomatedDesktopSpec.ProvisioningType = $provisioningType
|
||||||
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenter = $virtualCenterID
|
$desktopSpecObj.AutomatedDesktopSpec.VirtualCenter = $virtualCenterID
|
||||||
@@ -4915,6 +4934,7 @@ function New-HVPool {
|
|||||||
$DesktopVirtualCenterProvisioningSettings.VirtualCenterProvisioningData = $desktopVirtualCenterProvisioningData
|
$DesktopVirtualCenterProvisioningSettings.VirtualCenterProvisioningData = $desktopVirtualCenterProvisioningData
|
||||||
$DesktopVirtualCenterProvisioningSettings.VirtualCenterStorageSettings = $desktopVirtualCenterStorageSettings
|
$DesktopVirtualCenterProvisioningSettings.VirtualCenterStorageSettings = $desktopVirtualCenterStorageSettings
|
||||||
$DesktopVirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings = $DesktopVirtualCenterNetworkingSettings
|
$DesktopVirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings = $DesktopVirtualCenterNetworkingSettings
|
||||||
|
$DesktopVirtualCenterProvisioningSettings.AddVirtualTPM = $AddVirtualTPM
|
||||||
|
|
||||||
$DesktopAutomatedDesktopSpec = New-Object VMware.Hv.DesktopAutomatedDesktopSpec
|
$DesktopAutomatedDesktopSpec = New-Object VMware.Hv.DesktopAutomatedDesktopSpec
|
||||||
$DesktopAutomatedDesktopSpec.ProvisioningType = $provisioningType
|
$DesktopAutomatedDesktopSpec.ProvisioningType = $provisioningType
|
||||||
@@ -4981,6 +5001,16 @@ function New-HVPool {
|
|||||||
$desktopPCoIPDisplaySettings.setRenderer3D($renderer3D)
|
$desktopPCoIPDisplaySettings.setRenderer3D($renderer3D)
|
||||||
#setEnableGRIDvGPUs is not exists, because this property cannot be updated.
|
#setEnableGRIDvGPUs is not exists, because this property cannot be updated.
|
||||||
$desktopPCoIPDisplaySettings.getDataObject().EnableGRIDvGPUs = $enableGRIDvGPUs
|
$desktopPCoIPDisplaySettings.getDataObject().EnableGRIDvGPUs = $enableGRIDvGPUs
|
||||||
|
if ($enableGRIDvGPUs -eq $true -and $renderer3D -ne 'MANAGE_BY_VSPHERE_CLIENT' -and $InstantClone -eq $true) {
|
||||||
|
Write-Error "Enabling GRID support requires that 3D rendering be managed by the vSphere client"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if ($enableGRIDvGPUs -eq $true -and [string]::IsNullOrEmpty($VGPUGridProfile) -eq $true -and $InstantClone -ne $true) {
|
||||||
|
Write-Error "Enabling GRID support for Instant clones, this requires a specified VGPUGridProfile"
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
$desktopPCoIPDisplaySettings.getDataObject().VGPUGridProfile = $VGPUGridProfile
|
||||||
|
}
|
||||||
$desktopPCoIPDisplaySettings.setVRamSizeMB($vRamSizeMB)
|
$desktopPCoIPDisplaySettings.setVRamSizeMB($vRamSizeMB)
|
||||||
$desktopPCoIPDisplaySettings.setMaxNumberOfMonitors($maxNumberOfMonitors)
|
$desktopPCoIPDisplaySettings.setMaxNumberOfMonitors($maxNumberOfMonitors)
|
||||||
$desktopPCoIPDisplaySettings.setMaxResolutionOfAnyOneMonitor($maxResolutionOfAnyOneMonitor)
|
$desktopPCoIPDisplaySettings.setMaxResolutionOfAnyOneMonitor($maxResolutionOfAnyOneMonitor)
|
||||||
@@ -6569,6 +6599,16 @@ function Start-HVFarm {
|
|||||||
How frequently to repeat maintenance, expressed as a multiple of the maintenance period. e.g. Every 2 weeks.
|
How frequently to repeat maintenance, expressed as a multiple of the maintenance period. e.g. Every 2 weeks.
|
||||||
This property has a default value of 1. This property has values 1-100.
|
This property has a default value of 1. This property has values 1-100.
|
||||||
|
|
||||||
|
.PARAMETER NumCPU
|
||||||
|
Number of CPU of the Vm Instances
|
||||||
|
|
||||||
|
.PARAMETER Ram
|
||||||
|
Ram of the Vm Instances
|
||||||
|
Units in MB for Ram parameter
|
||||||
|
|
||||||
|
.PARAMETER CoresPerSocket
|
||||||
|
CoresPerSocket of the Vm Instances
|
||||||
|
|
||||||
.PARAMETER HvServer
|
.PARAMETER HvServer
|
||||||
Reference to Horizon View Server to query the data from. If the value is not passed or null then first element from global:DefaultHVServers would be considered in-place of hvServer.
|
Reference to Horizon View Server to query the data from. If the value is not passed or null then first element from global:DefaultHVServers would be considered in-place of hvServer.
|
||||||
|
|
||||||
@@ -6673,6 +6713,21 @@ function Start-HVFarm {
|
|||||||
[ValidateRange(1, 100)]
|
[ValidateRange(1, 100)]
|
||||||
[int]$EveryInt = 1,
|
[int]$EveryInt = 1,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateRange(1,[Int]::MaxValue)]
|
||||||
|
[int]
|
||||||
|
$NumCPU = 4,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateRange(1,[Int]::MaxValue)]
|
||||||
|
[int]
|
||||||
|
$Ram = 16384,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateRange(1,[Int]::MaxValue)]
|
||||||
|
[int]
|
||||||
|
$CoresPerSocket = 1,
|
||||||
|
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
$HvServer = $null
|
$HvServer = $null
|
||||||
)
|
)
|
||||||
@@ -6820,6 +6875,13 @@ function Start-HVFarm {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#set ComputeProfile in a SCHEDULEMAINTENANCE
|
||||||
|
$spec.ComputeProfile = New-Object VMware.Hv.FarmComputeProfileSpec
|
||||||
|
$spec.ComputeProfile.NumCPU = $NumCPU
|
||||||
|
$spec.ComputeProfile.Ram = $Ram
|
||||||
|
$spec.ComputeProfile.CoresPerSocket = $CoresPerSocket
|
||||||
|
|
||||||
# call scheduleMaintenance service on farm
|
# call scheduleMaintenance service on farm
|
||||||
if (!$confirmFlag -OR $pscmdlet.ShouldProcess($farmList.$item)) {
|
if (!$confirmFlag -OR $pscmdlet.ShouldProcess($farmList.$item)) {
|
||||||
$farm_service_helper.Farm_ScheduleMaintenance($services, $item, $spec)
|
$farm_service_helper.Farm_ScheduleMaintenance($services, $item, $spec)
|
||||||
|
|||||||
51
PowerActions/Example - ClusterSnapshotsReport.ps1
Normal file
51
PowerActions/Example - ClusterSnapshotsReport.ps1
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
param (
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[VMware.VimAutomation.ViCore.Types.V1.Inventory.Cluster[]] $cluster,
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string] $smtp,
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string] $email)
|
||||||
|
|
||||||
|
$vms = Get-VM -Location $cluster
|
||||||
|
$snapshots = @()
|
||||||
|
foreach ($vm in $vms) {
|
||||||
|
$snapshots += Get-Snapshot -VM $vm
|
||||||
|
}
|
||||||
|
|
||||||
|
$header = @"
|
||||||
|
<style>
|
||||||
|
table {
|
||||||
|
font-size: 12px;
|
||||||
|
border: 0px;
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
padding: 4px;
|
||||||
|
margin: 0px;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
background: #395870;
|
||||||
|
background: linear-gradient(#49708f, #293f50);
|
||||||
|
color: #fff;
|
||||||
|
font-size: 11px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
padding: 10px 15px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
tbody tr:nth-child(even) {
|
||||||
|
background: #f0f0f2;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
"@
|
||||||
|
|
||||||
|
$snapshots | select Name,VM,Created,@{Name="Size";Expression={[math]::Round($_.SizeMB,3)}},IsCurrent | `
|
||||||
|
ConvertTo-Html -head $header | Out-File "SnapshotReport.html"
|
||||||
|
|
||||||
|
Send-MailMessage -from "Snapshot Reports <noreply@vmware.com>" `
|
||||||
|
-to $email `
|
||||||
|
-subject "Snapshot Report" `
|
||||||
|
-body "Cluster snapshot report" `
|
||||||
|
-Attachment "SnapshotReport.html" `
|
||||||
|
-smtpServer $smtp
|
||||||
17
PowerActions/Example - RemoveOldClusterSnapshots.ps1
Normal file
17
PowerActions/Example - RemoveOldClusterSnapshots.ps1
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
param (
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[VMware.VimAutomation.ViCore.Types.V1.Inventory.Cluster] $cluster,
|
||||||
|
[DateTime] $date)
|
||||||
|
|
||||||
|
if ($null -eq $date) {
|
||||||
|
$date = (Get-Date).AddDays(-7)
|
||||||
|
}
|
||||||
|
|
||||||
|
$vms = Get-VM -Location $cluster
|
||||||
|
foreach ($vm in $vms) {
|
||||||
|
$snaphostsToBeRemoved = Get-Snapshot -VM $vm | where {$_.Created -lt $date}
|
||||||
|
if ($null -ne $snaphostsToBeRemoved) {
|
||||||
|
Write-Host "Removing snapshots: '$snaphostsToBeRemoved' of VM: '$vm'"
|
||||||
|
Remove-Snapshot $snaphostsToBeRemoved -Confirm:$false
|
||||||
|
}
|
||||||
|
}
|
||||||
44
PowerActions/Git Sync.ps1
Normal file
44
PowerActions/Git Sync.ps1
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
#Intall git
|
||||||
|
tdnf install -y git
|
||||||
|
|
||||||
|
#Clone the repo
|
||||||
|
git clone -n --depth=1 --filter=tree:0 https://github.com/vmware/PowerCLI-Example-Scripts.git
|
||||||
|
cd PowerCLI-Example-Scripts
|
||||||
|
git sparse-checkout set --no-cone PowerActions
|
||||||
|
git checkout
|
||||||
|
cd PowerActions
|
||||||
|
|
||||||
|
#Select the content library in which you want to store the scirpts from the repo
|
||||||
|
$contentLibraryName = 'Power Actions'
|
||||||
|
$contentLibrary = Get-ContentLibrary $contentLibraryName
|
||||||
|
|
||||||
|
#Get all the files that we have cloned from the repo
|
||||||
|
$files = Get-ChildItem -Path . -File
|
||||||
|
foreach ($file in $files) {
|
||||||
|
$name = $file.BaseName
|
||||||
|
|
||||||
|
#Check if the item for this file already exists in the content library
|
||||||
|
$item = Get-ContentLibraryItem -Name $name -ContentLibrary $contentLibrary -ErrorAction SilentlyContinue
|
||||||
|
if ($item) {
|
||||||
|
#If the item exists, check if it is up to date
|
||||||
|
#Create a folder to store the current content library item
|
||||||
|
if (-not (Test-Path -Path ./cl_versions -PathType Container))
|
||||||
|
{
|
||||||
|
New-Item -Path ./cl_versions -ItemType Directory
|
||||||
|
}
|
||||||
|
#Download the item from the content library
|
||||||
|
$clFile = Export-ContentLibraryItem -ContentLibraryItem $item -Destination ((Get-Location).Path + "/cl_version") -Force
|
||||||
|
#Compare if it's the same as the file we have downloaded from the repo
|
||||||
|
$compResult = Compare-Object -ReferenceObject (Get-Content $file.FullName) -DifferenceObject (Get-Content ($clFile.FullName+"/"+$file.Name))
|
||||||
|
if ($compResult) {
|
||||||
|
#If the item is not up to date, update it
|
||||||
|
Write-Host "Updating $name"
|
||||||
|
Set-ContentLibraryItem -ContentLibraryItem $item -Files $file.FullName
|
||||||
|
} else {
|
||||||
|
Write-Host "$name is up to date"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
#If the item does not exist, create it
|
||||||
|
New-ContentLibraryItem -Name $name -Files $file.FullName -ContentLibrary $contentLibrary
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user