none
Поиск пользователей по пути к терминальному профилю RRS feed

  • Вопрос

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

    Имеется AD с 500+ пользователей, терминальные профили которых находятся на fs1 и fs2. Необходимо получить список тех, кто использует профили с сервера fs2. Посмотреть физически не предлагать, на сервере огромная куча папок от "мертвых" профилей.

    Заранее спасибо.

    3 сентября 2012 г. 17:37

Ответы

  • $result = @()
    $filter = "(&(objectCategory=person)(objectCategory=User))"  
    $ds = New-Object System.DirectoryServices.DirectorySearcher  
    $ds.PageSize = 1000  
    $ds.Filter = $filter   
    $ds.SearchRoot = [ADSI]"LDAP://dc=contoso,dc=com"  
    $users = $ds.FindAll()  
    foreach ($user in $users)  
    { 
        $user = $user.GetDirectoryEntry() 
        trap{continue}
        $result += $user."TerminalServicesProfilePath" | Where {$_ -like "\\ts2\*"} | Foreach {
    		New-Object PsObject -Prop @{
    			DN = $user.distinguishedName[0]
    			Name = $user.Name[0]
    			Profile = $_
    		}
    	 
    	}
    } 
    
    $result | Format-List

    Или если установлены командлеты от Quest Software:

    Get-QADUser | Where {$_.TSProfilePath -like"\\ts2\*"}
    


    • Изменено KazunEditor 3 сентября 2012 г. 18:51
    • Помечено в качестве ответа KazunEditor 12 сентября 2012 г. 14:31
    3 сентября 2012 г. 18:39
    Отвечающий

Все ответы

  • $result = @()
    $filter = "(&(objectCategory=person)(objectCategory=User))"  
    $ds = New-Object System.DirectoryServices.DirectorySearcher  
    $ds.PageSize = 1000  
    $ds.Filter = $filter   
    $ds.SearchRoot = [ADSI]"LDAP://dc=contoso,dc=com"  
    $users = $ds.FindAll()  
    foreach ($user in $users)  
    { 
        $user = $user.GetDirectoryEntry() 
        trap{continue}
        $result += $user."TerminalServicesProfilePath" | Where {$_ -like "\\ts2\*"} | Foreach {
    		New-Object PsObject -Prop @{
    			DN = $user.distinguishedName[0]
    			Name = $user.Name[0]
    			Profile = $_
    		}
    	 
    	}
    } 
    
    $result | Format-List

    Или если установлены командлеты от Quest Software:

    Get-QADUser | Where {$_.TSProfilePath -like"\\ts2\*"}
    


    • Изменено KazunEditor 3 сентября 2012 г. 18:51
    • Помечено в качестве ответа KazunEditor 12 сентября 2012 г. 14:31
    3 сентября 2012 г. 18:39
    Отвечающий
  • Надо еще уточнить как выполняется выбор сервера и назначение профиля: в свойствах учетной записи или через GPO?

    Сазонов Илья http://isazonov.wordpress.com/

    4 сентября 2012 г. 2:37
    Модератор