Лучший отвечающий
Не записывается в переменную

Вопрос
-
Добрый день!
Часть кода
$array = Get-ChildItem -Path $pathroot -Depth 1 -Directory | select FullName, @{Name="Listing"; Expression={$ListingSID = $_.FullName.Replace("X:\Folder","ACL").Trim("\").Replace(" ","-").Replace("\","_") + "_L" while($ListingSID.Length +1 -ge 64){ $ListingSID = ($ListingSID.Split("_") | Foreach { if($_.Length -gt 14) {$_.SubString(0,7) + $_.SubString($_.length - 7,7)} else {$_}}) -join "_" }$ListingSID}}
Такой вывод, попадает в переменную и потом выводится по
$array
А вот так, нет... хотя команда отрабатывает всегда верно
$array
Всегда дает пустоту, туда ничего не пишется.
$array = Get-ChildItem -Path $pathroot -Depth 1 -Directory | select FullName, @{Name="GroupName_L"; Expression={ $Listing = $_.FullName.Replace("X:\Folder","ACL").Trim("\").Replace(" ","-").Replace("\","_") + "_L" $adsi = [adsisearcher]“” $adsi.Filter = “info=$Listing” $FindGroup = $adsi.FindOne() $toVerify = $FindGroup.Properties.info $GUID = $FindGroup.Properties.cn $Verify = IF ([string]::IsNullOrWhitespace($toVerify)){ $GUID = [GUID]::NewGuid() $CreateGroup = New-ADGroup -Name $GUID -Path "$ldaproot" -groupScope domainlocal $adsi = [adsisearcher]“” $adsi.Filter = “Name=$GUID” $adsiFindOne = $adsi.FindOne() $adsiEntry = $adsiFindOne.GetDirectoryEntry() $adsiFindOne = $adsiFindOne.Properties.info $adsiPut = $adsiEntry.Put("info" , "$Listing") $adsiPut = $adsiEntry.SetInfo() $adsiPut = $adsiEntry.CommitChanges() $adsi.Filter = “info=$Listing” $adsiFindOne = $adsi.FindOne() $adsiFindOne = $adsiFindOne.Properties.cn $GUID = $adsiFindOne }$GUID}}
- Изменено SharpQ 22 апреля 2016 г. 7:17
22 апреля 2016 г. 7:16
Ответы
-
$array = Get-ChildItem -Path $pathroot -Depth 1 -Directory | select FullName, @{Name="GroupName_L"; Expression={ $Listing = $_.FullName.Replace("E:\SHARE","DACL").Trim("\").Replace(" ","-").Replace("\","_") + "_L" $gr = Get-ADGroup -Filter "info -eq '$Listing'" if($gr) { $gr.Name } else { $GUID = [GUID]::NewGuid() try { (New-ADGroup -Name $GUID -Path $ldaproot -groupScope domainlocal -OtherAttributes @{info=$Listing} -PassThru).Name } catch { Write-Host "$_" } } }}
- Помечено в качестве ответа SharpQ 22 апреля 2016 г. 10:02
22 апреля 2016 г. 8:06Отвечающий
Все ответы
-
$array = Get-ChildItem -Path $pathroot -Depth 1 -Directory | select FullName, @{Name="GroupName_L"; Expression={ $Listing = $_.FullName.Replace("E:\SHARE","DACL").Trim("\").Replace(" ","-").Replace("\","_") + "_L" $gr = Get-ADGroup -Filter "info -eq '$Listing'" if($gr) { $gr.Name } else { $GUID = [GUID]::NewGuid() try { (New-ADGroup -Name $GUID -Path $ldaproot -groupScope domainlocal -OtherAttributes @{info=$Listing} -PassThru).Name } catch { Write-Host "$_" } } }}
- Помечено в качестве ответа SharpQ 22 апреля 2016 г. 10:02
22 апреля 2016 г. 8:06Отвечающий -
Конечно работа моя топорная по сравненнию с этим...
Спасибо, как всегда идеально.
22 апреля 2016 г. 10:03