none
Не записывается в переменную RRS feed

  • Вопрос

  • Добрый день!

    Часть кода

    $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