Единственный способ, которым я знаю, - это добавить много кода для создания пользовательского объекта для размещения и передачи моих значений. Я надеялся на более эффективный путь и искал предложения.
Есть две части, которые я пытаюсь выяснить:
Логика та же, что и ниже, просто разные команды.
Объект A - возвращает несколько результатов в него, как говорят сами
Get-ADUser -resultsize 10
команда.
1a. Для завершения части 1 в цикле foreach Объекта A. Я хочу: $MyObjA += Object A
(Individual) из цикла foreach.
, чтобы добавить к сложности (может быть)
2а. Я хочу (Объект A) от Get-ADUser
до левого Соединения на выходе (Объект B) Get-Mailbox
Объединение всех его свойств для и в дублировании Объекта A. Таким образом, записи покажут Объект A и Объект B.
Теперь я использовал только Get-ADUser
и Get-Mailbox
в приведенном выше опросе, потому что это команды, которые все знают. Это сказанное, если бы я использовал те команды, что я пытаюсь сделать, мне не нужно было бы. Поэтому, пожалуйста, научите меня, как лучше всего обращаться с объектами так, как я хочу.
Реальная проблема ниже работает с UDM Pro по https://enoten.com/.
Их объекты не так дружелюбны, как хотелось бы, но это все есть. Моей конечной целью является создание функций для разбивки веб-сайта до тех пор, пока функции не сообщат мне доступные номера и кому назначен номер. Я на полпути там. Я действительно надеюсь, что мне не нужно создавать собственный объект или, по крайней мере, так, как я знаю.
Каждая функция строится на основе предыдущих функций.
Моя текущая проблема в Get-UDMRange_DIDBlocks_withAvailableNumbers
Процедура, где я пытаюсь сделать CustomObject += Object A
, где object A
- это отдельный объект группы. Я пытаюсь построить новую группу из того же объекта.
Function Get-UDMLocationNumberBlock_ID
{
Param ($SiteCode)
$Return = ''
#Get-UdmLocation | Where {$_.name -like '*012a*'}
#$Location = Get-UdmLocation | Where {$_.name -like "*$Sitecode*"}
$Location = Get-UdmLocation | Where {$_.code -like "*$Sitecode*"}
$Return = $Location.id
Return $Return
}
Function Get-UDMLocationNumberBlock_NAME
{
Param ($SiteCode)
$Return = ''
#Get-UdmLocation | Where {$_.name -like '*012a*'}
$Location = Get-UdmLocation | Where {$_.name -like "*$Sitecode*"}
#$Location = Get-UdmLocation | Where {$_.code -like "*$Sitecode*"}
$Return = $Location.Name
Return $Return
}
Function Get-UDMRange_DIDBlocks_byName
{
Param ($SiteCode)
$Return = ''
$Return = Get-UdmRmNumberBlock | where {$_.rangeName -like "*$Sitecode*"}
Return $Return
}
Function Get-UDMRange_DIDBlocks_byBlockNumber
{
Param ($DIDBlockNumber)
$Return = ''
$Return = Get-UdmRmNumberBlock | where {$_.phoneNumber -like "*$DIDBlockNumber*"}
Return $Return
}
Function Get-UDMRange_DIDBlocks_withAvailableNumbers
{
Param ($SiteCode)
$DIDBlocks = Get-UDMRange_DIDBlocks_byName -SiteCode $SiteCode
$AvailDIDBlocks = ''
foreach ($DIDBlock in $DIDBlocks)
{
if ($DIDBlock.usedQuantity -ne $DIDBlock.Quantity)
{
$AvailDIDBlocks += $DIDBlock
}
}
Return $AvailDIDBlocks
}
Function Get-UDMRangesNumbers_bySite
{
param ($Sitecode,[bool] $OnlyDIDBlocksWithAvailableNumbersInThem = $true)
if ($OnlyDIDBlocksWithAvailableNumbersInThem)
{ #excludes DID where the block of numbers are full
$AvailDIDBlocks = Get-UDMRange_DIDBlocks_withAvailableNumbers -SiteCode $Sitecode
}
else
{ #includes DID where the block of numbers are full
$AvailDIDBlocks = Get-UDMRange_DIDBlocks -SiteCode $Sitecode
}
foreach ($AvailDIDBlock in $AvailDIDBlocks)
{
$DIDNumbers = Get-UdmRmNumber | where {$_.phoneNumberBlockId -eq $AvailDIDBlock.id}
foreach ($DIDNumber in $DIDNumbers)
{
$DIDNumbersfromDIDBlocks += $DIDNumber
}
}
Return $DIDNumbersfromDIDBlocks
}
Function Get-UDMRangesNumbers_bySpecificDID
{
param ($DIDBlockNumber)
$AvailDIDBlocks = Get-UDMRange_DIDBlocks_byBlockNumber -DIDBlockNumber $DIDBlockNumber
foreach ($AvailDIDBlock in $AvailDIDBlocks)
{
$DIDNumbers = Get-UdmRmNumber | where {$_.phoneNumberBlockId -eq $AvailDIDBlock.id}
foreach ($DIDNumber in $DIDNumbers)
{
$DIDNumbersfromDIDBlocks += $DIDNumber
}
#$DIDNumbersfromDIDBlocks += Get-UdmRmNumber | where {$_.phoneNumberBlockId -eq $AvailDIDBlock.id}
}
Return $DIDNumbersfromDIDBlocks
}