none
WMI фильтр RRS feed

  • Вопрос

  • нужно создать фильтр для пользователей с перемещаемым профайлом, т.е. чтобы политика (ограничение размера профайла) применялась только к пользователям с перемещаемым типом профайла, как создать фильтр я вобщем знаю, но не знаю как называется обьект(возможно objUser.Profile ) и свойство
    22 сентября 2009 г. 13:40

Ответы

  • это все стало справедливо только после того как была установлена group policy management console для которой пришлось установить .net framework и msxml4 sp2 кстати консоль не ставится на х64 системы (а у меня х64) пришлось ее немного модернизировать, руководствуясь инструкцией с одного сайта на свой страх и риск - кстати все работает, все получилось, появились кнопки add и browse истало возможным задать пространство имен. Все же для саморазвития - интересно, а что же в голой системе где сам WMI фильтр можно создать, нельзя совсем поредактировать его namespace ?

    Специально проверил на сервере без установленой GPMC - так:

    root\directory\ldap;select * from ds_user where ds_profilepath is not null

    все работает....
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение".
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 13:29
  • Смотрим подходящие классы WMI:
    PS C:\Users\Xaegr> Get-WmiObject -List | where {$_.name -like "*user*"}

    Затем смотрим их свойства. Можно еще Get-Member использовать, но и без него с первой попытки нашел вот это:

    PS C:\Users\Xaegr> Get-WmiObject Win32_UserProfile

    ...

    __GENUS           : 2
    __CLASS           : Win32_UserProfile
    __SUPERCLASS      :
    __DYNASTY         : Win32_UserProfile
    __RELPATH         : Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001"
    __PROPERTY_COUNT  : 12
    __DERIVATION      : {}
    __SERVER          : ALPHA
    __NAMESPACE       : root\cimv2
    __PATH            : \\ALPHA\root\cimv2:Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001"
    LastDownloadTime  :
    LastUploadTime    :
    LastUseTime       : 20090923051208.037000+000
    Loaded            : True
    LocalPath         : C:\Users\Xaegr
    RefCount          : 3
    RoamingConfigured : False
    RoamingPath       :
    RoamingPreference :
    SID               : S-1-5-21-3277372905-3272160052-1420427491-1001
    Special           : False
    Status            : 0

    Ах, да. PowerShell разумеется.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Vasily GusevModerator 23 сентября 2009 г. 5:14
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:41
    23 сентября 2009 г. 5:14
    Модератор
  • Запускаете Group Policy Manager, закладка WMI Filters, выбираете меню New, затем Add и тут можно задать Namespace через кнопку Browse.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 10:57
    Модератор

  • Так вот проблема в том, что (у меня Вин 2003 сервер) у меня нет Namespace boxа, у меня тоько поле куда можно вставить запрос, а также имя и описание фильтра и все, проблема вроде бы решена тем что в wmimgmt.msc я поменял пространство имен по умолчанию с root\cimv2 на root\directory\ldap - и все вроде бы работает (я еще проверяю) но остается впечатление что как то это не совсем правильно, пожалуйста подскажите как сделать правильно - как ввести пространство имен создавая фильтр под 2003сервер, а не 2008(где я подозреваю и находится Namespace box) ?
    Правильно - через GPMC

    Либо в ADUC в Manage WMI FIlter пространство имен можно указать так: root\directory\ldap;select * from ds_user where ds_profilepath is not null
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение".
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 11:17
  • Раз уж автором упоминалась Windows 2000, стоит заметить что WMI фильтры на ней не работают, и политики будут просто применяться без всяких проверок.

    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    27 сентября 2009 г. 8:29
    Модератор
  • 1) можно погуглить на предмет поиска всех свойств объекта User и найти соответсвующее описание в msdn
    2) просмотреть, например, при помощи ADSIEdit атрибуты конкретного объекта-пользователя и найти нужный.

    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:41
    22 сентября 2009 г. 13:56
  •  если кому то будет полезно - фильтр удалось создать (и он даже заработал))) в таком виде :

    Root\CimV2; Select * From Win32_NetworkLoginProfile where profile Like "\\%"

    напомню, что фильтр отсеивает пользователей с локальным типом профайла , а политика (ограничения размера профайла)действует на пользователей с перемещаемым профайлом.

    • Помечено в качестве ответа alfadmin 15 октября 2009 г. 12:25
    15 октября 2009 г. 12:25

Все ответы

  • 1) можно погуглить на предмет поиска всех свойств объекта User и найти соответсвующее описание в msdn
    2) просмотреть, например, при помощи ADSIEdit атрибуты конкретного объекта-пользователя и найти нужный.

    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:41
    22 сентября 2009 г. 13:56
  • Поглядеть как называется объект используя LDAPExplorer или что-то подобное не ку?
    22 сентября 2009 г. 17:54
  • Смотрим подходящие классы WMI:
    PS C:\Users\Xaegr> Get-WmiObject -List | where {$_.name -like "*user*"}

    Затем смотрим их свойства. Можно еще Get-Member использовать, но и без него с первой попытки нашел вот это:

    PS C:\Users\Xaegr> Get-WmiObject Win32_UserProfile

    ...

    __GENUS           : 2
    __CLASS           : Win32_UserProfile
    __SUPERCLASS      :
    __DYNASTY         : Win32_UserProfile
    __RELPATH         : Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001"
    __PROPERTY_COUNT  : 12
    __DERIVATION      : {}
    __SERVER          : ALPHA
    __NAMESPACE       : root\cimv2
    __PATH            : \\ALPHA\root\cimv2:Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001"
    LastDownloadTime  :
    LastUploadTime    :
    LastUseTime       : 20090923051208.037000+000
    Loaded            : True
    LocalPath         : C:\Users\Xaegr
    RefCount          : 3
    RoamingConfigured : False
    RoamingPath       :
    RoamingPreference :
    SID               : S-1-5-21-3277372905-3272160052-1420427491-1001
    Special           : False
    Status            : 0

    Ах, да. PowerShell разумеется.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Vasily GusevModerator 23 сентября 2009 г. 5:14
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:41
    23 сентября 2009 г. 5:14
    Модератор
  • Смотрим подходящие классы WMI:
    PS C:\Users\Xaegr> Get-WmiObject -List | where {$_.name -like "*user*"}

    Затем смотрим их свойства. Можно еще Get-Member использовать, но и без него с первой попытки нашел вот это:

    PS C:\Users\Xaegr> Get-WmiObject Win32_UserProfile

    ...

    __GENUS           : 2
    __CLASS           : Win32_UserProfile
    __SUPERCLASS      :
    __DYNASTY         : Win32_UserProfile
    __RELPATH         : Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001"
    __PROPERTY_COUNT  : 12
    __DERIVATION      : {}
    __SERVER          : ALPHA
    __NAMESPACE       : root\cimv2
    __PATH            : \\ALPHA\root\cimv2:Win32_UserProfile.SID="S-1-5-21-3277372905-3272160052-1420427491-1001 "
    LastDownloadTime  :
    LastUploadTime    :
    LastUseTime       : 20090923051208.037000+000
    Loaded            : True
    LocalPath         : C:\Users\Xaegr
    RefCount          : 3
    RoamingConfigured : False
    RoamingPath       :
    RoamingPreference :
    SID               : S-1-5-21-3277372905-3272160052-1420427491-1001
    Special           : False
    Status            : 0

    Ах, да. PowerShell разумеется.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    Это правильный ответ, но Win32_UserProfile - такого класса нет в вин2000, ХР, 2003сервер, такой класс есть в висте и (наверное) в вин2008 сервер, и надо же так случиться что приходится работать именно с  вин2000, ХР, 2003сервер, есть класс Win32_Account, Win32_NetworkLoginProfile, Win32_UserAccount , но ни в одном из них нет свойства Roaming, вобщем вопрос пока остается открытым
    24 сентября 2009 г. 7:01
  • как создать фильтр я вобщем знаю, но не знаю как называется обьект(возможно objUser.Profile ) и свойство

    Вам нужно свойство ProfilePath объекта User. Если фильтр заработает, то опубликуйте его тут для потомков :-)
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    24 сентября 2009 г. 9:07
    Модератор
  • свойство ProfilePath объекта User.
    Пожалуйста поподробнее, обьект User это что за обьект? какого класса ? я просматриваю наличие классов и свойств в тестере инструментария управления Виндоуз (wbemtest в коммандной строке) - не самый удобный вариант, но пока из близких по смыслу классов удалось найти Win32_Account, Win32_NetworkLoginProfile, Win32_UserAccount только вот нужного свойства в этих классах нет
    24 сентября 2009 г. 10:15
  • В пространстве имен(in namespace) root\directory\LDAP есть замечательный класс DS_User, у которого есть свойство DS_ProfilePath, которое у всех юзеров с локальным типом профайла = null,а с перемещаемым - содержит адрес размещения профайла(\\server\profiles, например), и нехитрым запросом select * from ds_user where ds_profilepath is not null все можно было бы решить, да вот беда - куда вводить пространство имен ? Из инструкции цитирую :
    In the WMI Query dialog box, either leave the default namespace (root\CIMv2) or enter another namespace by doing one of the following:
    • In the Namespace box, type the name of the namespace that you want to use for the WMI query.
    • Click Browse , select a namespace from the list, and then click OK .

    Так вот проблема в том, что (у меня Вин 2003 сервер) у меня нет Namespace boxа, у меня тоько поле куда можно вставить запрос, а также имя и описание фильтра и все, проблема вроде бы решена тем что в wmimgmt.msc я поменял пространство имен по умолчанию с root\cimv2 на root\directory\ldap - и все вроде бы работает (я еще проверяю) но остается впечатление что как то это не совсем правильно, пожалуйста подскажите как сделать правильно - как ввести пространство имен создавая фильтр под 2003сервер, а не 2008(где я подозреваю и находится Namespace box) ?
    25 сентября 2009 г. 9:30
  • Запускаете Group Policy Manager, закладка WMI Filters, выбираете меню New, затем Add и тут можно задать Namespace через кнопку Browse.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 10:57
    Модератор

  • Так вот проблема в том, что (у меня Вин 2003 сервер) у меня нет Namespace boxа, у меня тоько поле куда можно вставить запрос, а также имя и описание фильтра и все, проблема вроде бы решена тем что в wmimgmt.msc я поменял пространство имен по умолчанию с root\cimv2 на root\directory\ldap - и все вроде бы работает (я еще проверяю) но остается впечатление что как то это не совсем правильно, пожалуйста подскажите как сделать правильно - как ввести пространство имен создавая фильтр под 2003сервер, а не 2008(где я подозреваю и находится Namespace box) ?
    Правильно - через GPMC

    Либо в ADUC в Manage WMI FIlter пространство имен можно указать так: root\directory\ldap;select * from ds_user where ds_profilepath is not null
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение".
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 11:17
  • это все стало справедливо только после того как была установлена group policy management console для которой пришлось установить .net framework и msxml4 sp2 кстати консоль не ставится на х64 системы (а у меня х64) пришлось ее немного модернизировать, руководствуясь инструкцией с одного сайта на свой страх и риск - кстати все работает, все получилось, появились кнопки add и browse истало возможным задать пространство имен. Все же для саморазвития - интересно, а что же в голой системе где сам WMI фильтр можно создать, нельзя совсем поредактировать его namespace ?
    25 сентября 2009 г. 13:13
  • это все стало справедливо только после того как была установлена group policy management console для которой пришлось установить .net framework и msxml4 sp2 кстати консоль не ставится на х64 системы (а у меня х64) пришлось ее немного модернизировать, руководствуясь инструкцией с одного сайта на свой страх и риск - кстати все работает, все получилось, появились кнопки add и browse истало возможным задать пространство имен. Все же для саморазвития - интересно, а что же в голой системе где сам WMI фильтр можно создать, нельзя совсем поредактировать его namespace ?

    Специально проверил на сервере без установленой GPMC - так:

    root\directory\ldap;select * from ds_user where ds_profilepath is not null

    все работает....
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение".
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    25 сентября 2009 г. 13:29
  • Раз уж автором упоминалась Windows 2000, стоит заметить что WMI фильтры на ней не работают, и политики будут просто применяться без всяких проверок.

    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Помечено в качестве ответа alfadmin 1 октября 2009 г. 5:42
    27 сентября 2009 г. 8:29
    Модератор
  • Позор на мою голову - запрос (например в wbemtest) работает, выдает список пользователей с перемещаемым типом профайла, а вот сам фильтр - нет, политика применяется ко всем пользователям, ну на вин 2к - понятно, а вот на ХР почему ? есть подозрение что в момент входа в систему у любого юзера значение ds_profilepath не null а скажем с\документс энд сеттинс\%юзернейм%. вобщем работаю в этом направлении...
    29 сентября 2009 г. 11:59
  • А вы уверены что фильтр исполняется от имени логинящегося пользователя? Может там системная учетка используется?


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    29 сентября 2009 г. 12:01
    Модератор
  • не уверен, а как сделать чтобы он исполнялся от имени логинящегося ?
    29 сентября 2009 г. 12:12
  • а если root\directory\ldap;select * from ds_user where ds_profilepath='\\server\profiles\%username%' - примерно так, только вот как правильно сформулировать что то вариантов нет, конкретно такой запрос - неправильный,

    а может это потому что режим работы домена - вин 2000(смешанный) режим работы леса - вин 2000 ?

    29 сентября 2009 г. 13:01
  • на любом запросе например
    Root\CimV2; Select * from Win32_OperatingSystem where Caption = "Microsoft Windows XP Professional"
    создаю фильтр, фильтр в любом случае выдает true что это может быть ? подскажите пожалуйста где искать ?
    режим работы домена и леса повысил до 2003

    30 сентября 2009 г. 13:45
  • Используйте что-то типа WHERE Caption LIKE "Microsoft Windows XP Professional"
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    2 октября 2009 г. 8:56
    Модератор
  • Запрос работает , что с "=" что с "LIKE", в wbemtest - все как надо , но когда я создаю на запросе (на любом) фильтр, линкую к политике, политика работает четко, а фильтр живет своей жизнью. Например есть 3 пользователя и администратор, у пользователей впрочем тоже права -  администратор домена, под одним пользователем создаю фильтр, gpupdate /force, завершаю сеанс, захожу опять тем же пользователем - фильтр работает, захожу другим - не работает, т.е. при любых запросах фильтр возвращает true. Возможно что то с разрешениями, (как понять что ?), но как я понимаю у фильтра они те же что и у политики, если политика работает (а она во всех случаях работает) почему не работает фильтр ?
    5 октября 2009 г. 6:34
  •  если кому то будет полезно - фильтр удалось создать (и он даже заработал))) в таком виде :

    Root\CimV2; Select * From Win32_NetworkLoginProfile where profile Like "\\%"

    напомню, что фильтр отсеивает пользователей с локальным типом профайла , а политика (ограничения размера профайла)действует на пользователей с перемещаемым профайлом.

    • Помечено в качестве ответа alfadmin 15 октября 2009 г. 12:25
    15 октября 2009 г. 12:25