none
Отчет по членству локальных групп RRS feed

  • Вопрос

  • Добрый день коллеги . Использую SCCM 2012 . Для настройки отчетов по членству в группах использовал мануал от Sherry Kisinger (к сожалению не могу  дать ссылку, так как мой аккаунт ещё не проверен технетом.) Столкнулся с такой проблемой. Не могу cоздать отчет по членству в локальных группах .

    Был создан MOF файл и импортирован через SET CLASSES в Hardware Inventory :

    [ SMS_Report (TRUE),
      SMS_Group_Name ("LocalGroupMembers"),
      SMS_Class_ID ("CUSTOM|LocalGroupMembers|1.0"),
      Namespace ("\\\\\\\\.\\\\root\\\\cimv2") ]
    class cm_LocalGroupMembers : SMS_Class_Template
    {
        [ SMS_Report (TRUE), key ]
        String     Account;
        [ SMS_Report (TRUE), key ]
        String     Name;
        [ SMS_Report (TRUE) ]
        String     Category;
        [ SMS_Report (TRUE) ]
        String     Domain;
        [ SMS_Report (TRUE) ]
        String     Type;
    };

    Далее был запущен скрипт из  мануала Sherry Kisinger'a .  Через некоторое время в Resource Explorer появилась ветка Harwadre\LocalGroupMembers с необходимыми данными о юзерах и группах . Пытаюсь построить отчет который указан в статье, но поля остаются пустыми.

    Вот отчет :

    declare @olddcm datetime
    declare @oldhinv datetime
    set @oldDCM=DATEADD(DAY,-3, getdate())
    set @oldHinv=DATEADD(DAY,-3, getdate())
    select sys1.netbios_name0
    ,lgm.name0 [Name of the local Group]
    ,lgm.account0 as [Account Contained within the Group]
    , lgm.category0 [Account Type]
    , lgm.domain0 [Domain for Account]
    , lgm.type0 [Type of Account]
    , case when ws.lasthwscan < @oldhinv then 'Last Hinv might be out of date'
     when cs.lastcompliancemessagetime < @olddcm then 'CI evaluation might be out of date'
     when ws.lasthwscan < cs.lastcompliancemessagetime then 'CI evaluated since hinv, not necessarily unreliable'
      else 'Recent CI Eval, Hinv since CI Eval = Fairly Reliable'
    end as [Reliability of Information]
    from
    v_gs_localgroupmembers0 lgm
    join v_gs_workstation_status ws on ws.resourceid=lgm.resourceid
    join v_r_system_valid sys1 on sys1.resourceid=lgm.resourceid
    left join v_CICurrentComplianceStatus cs on cs.resourceid=lgm.resourceid
    left join v_LocalizedCIProperties_SiteLoc loc on loc.ci_id=cs.ci_id
    where loc.displayname = 'local group members into WMI'
    order by sys1.netbios_name0, lgm.name0, lgm.account0Н

    Не знаю что дальше делать. Прошу помощи, так как в MSQL не селён .










    • Изменено AlexandrC 30 ноября 2012 г. 9:06
    30 ноября 2012 г. 8:48

Ответы

  • Вы учетную запись указывали, которая имеет права на чтение данного DataSet? Вам нужно открыть SQL Server Management Studio, открыть Security - Logins, добавить пользователя, которого вы указали при установке роли Reporting Point. Правой кнопкой на данную учетную запись -> Properties -> User Mapping -> Галочку напротив БД ConfigMgr (обычно SMS_<код сайта>) -> в нижней части этого же окна галочку напротив db_datareader -> во всех окнах ОК, закрываете Management Studio.

    У вас до этого вообще отчеты работали?


    Vladimir Zelenov | http://systemcenter4all.wordpress.com


    • Изменено Vladimir ZelenovEditor 4 декабря 2012 г. 8:24
    • Помечено в качестве ответа AlexandrC 5 декабря 2012 г. 10:19
    4 декабря 2012 г. 8:23
    Отвечающий
  • Т.е из sql ms все пашет,

    тогда откройте management studio  - > tools - > external tools -> tool1-> command line: C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\PROFILER.EXE (путь проверьте)

    снова tools-> запускйте тулу, подключайтесь к серверу, далее запускайте трасировку, затем  отчет через браузер и   смотрите трассировку  -  какая учетка делает select
    • Помечено в качестве ответа AlexandrC 5 декабря 2012 г. 10:18
    4 декабря 2012 г. 13:24
    Отвечающий

Все ответы

  • Добрый день

    >>Далее был запущен скрипт из  мануала Sherry Kisinger'a .<<

    Каким образом?

    вы создали configuration item (CI) назвали ее local group members into WMI,  добавили в configuration baseline , baseline назначили на коллекцию?

    В противном случае этот отчет работать не будет.

    >>left join v_LocalizedCIProperties_SiteLoc loc on loc.ci_id=cs.ci_id
    where loc.displayname = 'local group members into WMI'<<

    Если же вы просто запустили скрипт на клиенте не используя CI,

    то можете его поправить

     
    select sys1.netbios_name0
    ,lgm.name0 [Name of the local Group]
    ,lgm.account0 as [Account Contained within the Group]
    , lgm.category0 [Account Type]
    , lgm.domain0 [Domain for Account]
    , lgm.type0 [Type of Account]
    from
    v_gs_localgroupmembers0 lgm
    join v_r_system_valid sys1 on sys1.resourceid=lgm.resourceid
    order by sys1.netbios_name0, lgm.name0, lgm.account0

    Насчет работоспособности не скажу,  надо проверять

    Желательно скрипт запускать с той же частотой что и HINV, т.е как и написано в статье уйти к DCM (или пушить через объявление):

    Создать CI в нее вставить скрипт, создать baseline добавить CI, назначить baseline на коллекцию, и использовать приведенный в статье отчет.

    Также можете посмотреть эту статью





    30 ноября 2012 г. 13:54
    Отвечающий
  • Спасибо.  Ваш отчет работает, но только в Report Builder, при создании . Когда пролбую через браузер выдает следующую ошибку

    System.Web.Services.Protocols.SoapException: The permissions granted to user 'domai\user' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'domai\user' are insufficient for performing this operation.
       at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
       at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
    ----------------------------
    The permissions granted to user 'domai\user' are insufficient for performing this operation.Понимаю что дело в разрешении доступа, но вот куда ?

    Скрипт запускается на всех компах через Task Sequences в SCCM'е , раз в 3 дня, примерно в тоже время что и hardware inventory .  С CI и baseline на коллекция не разобрался пока что.


    • Изменено AlexandrC 30 ноября 2012 г. 14:16
    30 ноября 2012 г. 14:02
  • А зачем так сложно - через TS? не проще через обычный деплоймент?

    Vladimir Zelenov | http://systemcenter4all.wordpress.com

    3 декабря 2012 г. 10:14
    Отвечающий
  • Ну я так и делаю , деплою таск на коллекцию .
    3 декабря 2012 г. 10:18
  • Спасибо.  Ваш отчет работает, но только в Report Builder, при создании . Когда пролбую через браузер выдает следующую ошибку

    System.Web.Services.Protocols.SoapException: The permissions granted to user 'domai\user' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'domai\user' are insufficient for performing this operation.
       at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
       at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings)
    ----------------------------
    The permissions granted to user 'domai\user' are insufficient for performing this operation.Понимаю что дело в разрешении доступа, но вот куда ?

    Скрипт запускается на всех компах через Task Sequences в SCCM'е , раз в 3 дня, примерно в тоже время что и hardware inventory .  С CI и baseline на коллекция не разобрался пока что.


     Попробуйте это решение
    3 декабря 2012 г. 11:41
    Отвечающий
  • К сожалению не помогло. Когда запускаю отчет через браузер, вот такой вот ответ получаю :

    • An error has occurred during report processing. (rsProcessingAborted)
      • Query execution failed for dataset 'DataSet1'. (rsErrorExecutingCommand)
        • The SELECT permission was denied on the object 'v_GS_LocalGroupMembers0', database 'CM_CM1', schema 'dbo'.

    3 декабря 2012 г. 13:38
  • Вы дали разрешения учетной записи от имени которой запускаете отчет и учетной записи, которую вы указали в качестве коннектора с SQL сервером?


    Vladimir Zelenov | http://systemcenter4all.wordpress.com

    3 декабря 2012 г. 14:06
    Отвечающий
  • Вы дали разрешения учетной записи от имени которой запускаете отчет и учетной записи, которую вы указали в качестве коннектора с SQL сервером?


    Vladimir Zelenov | http://systemcenter4all.wordpress.com

    Проверил таким образом:

    Зашел:

    Reporting Services Configuration Manager \DataBase\Current Database Credential     

    Тот же юзер, которым я через браузер пытаюсь сгенерировать отчет

    3 декабря 2012 г. 14:44
  • Вот такую запись нашел после выполнения отчета :

    The SELECT permission was denied on the object 'v_GS_LocalGroupMembers0', database 'CM_CM1', schema 'dbo'.
    ----------------------------
    Query execution failed for dataset 'DataSet1'. (rsErrorExecutingCommand)
    ----------------------------
    An error has occurred during report processing. (rsProcessingAborted)

    Понятно, что дело в permision's , но куда рыть ? Ещё раз, на всякий случай повторюсь, что для меня MSQL тёмный лес в безлунную ночь.


    • Изменено AlexandrC 3 декабря 2012 г. 14:58
    3 декабря 2012 г. 14:55
  • Вы учетную запись указывали, которая имеет права на чтение данного DataSet? Вам нужно открыть SQL Server Management Studio, открыть Security - Logins, добавить пользователя, которого вы указали при установке роли Reporting Point. Правой кнопкой на данную учетную запись -> Properties -> User Mapping -> Галочку напротив БД ConfigMgr (обычно SMS_<код сайта>) -> в нижней части этого же окна галочку напротив db_datareader -> во всех окнах ОК, закрываете Management Studio.

    У вас до этого вообще отчеты работали?


    Vladimir Zelenov | http://systemcenter4all.wordpress.com


    • Изменено Vladimir ZelenovEditor 4 декабря 2012 г. 8:24
    • Помечено в качестве ответа AlexandrC 5 декабря 2012 г. 10:19
    4 декабря 2012 г. 8:23
    Отвечающий
  • Вы учетную запись указывали, которая имеет права на чтение данного DataSet? Вам нужно открыть SQL Server Management Studio, открыть Security - Logins, добавить пользователя, которого вы указали при установке роли Reporting Point. Правой кнопкой на данную учетную запись -> Properties -> User Mapping -> Галочку напротив БД ConfigMgr (обычно SMS_<код сайта>) -> в нижней части этого же окна галочку напротив db_datareader -> во всех окнах ОК, закрываете Management Studio.

    У вас до этого вообще отчеты работали?


    Vladimir Zelenov | http://systemcenter4all.wordpress.com


    Да, конечно, отчеты которые идут вместе с SCCM 2012 работают без проблем.

    Сделал, как вы и описали, но к сожалению это не решило проблему .

    4 декабря 2012 г. 9:54
  • Да, конечно, отчеты которые идут вместе с SCCM 2012 работают без проблем.

    Сделал, как вы и описали, но к сожалению это не решило проблему .

    Проверьте что select для данной вьюхи разрешен

    4 декабря 2012 г. 10:13
    Отвечающий
  • Да, конечно, отчеты которые идут вместе с SCCM 2012 работают без проблем.

    Сделал, как вы и описали, но к сожалению это не решило проблему .

    Проверьте что select для данной вьюхи разрешен


    Проверил. У меня точно так же , как у вас на скрине . Permision Select отмечено в столбце Grant .
    4 декабря 2012 г. 10:28
  • Попробуйте проверить права с помощью запроса описанного здесь - http://social.msdn.microsoft.com/forums/en-US/sqlsecurity/thread/2957279e-4404-4556-a912-580b9c04032c/


    Vladimir Zelenov | http://systemcenter4all.wordpress.com

    4 декабря 2012 г. 11:28
    Отвечающий
  • Спасибо за ссылку. Но к сожелению запрос на права выдал мне пустую страницу.

    Решил проблему для себя другим способом.  Через MS SQL Server Manager Studio создаю запрос, описанный в начале темы (спасибо за него пользователю под ником Siniy)

    Результат экспортирую в xls файл, и его уже анализирую
    4 декабря 2012 г. 12:25
  • Спасибо за ссылку. Но к сожелению запрос на права выдал мне пустую страницу.

    Решил проблему для себя другим способом.  Через MS SQL Server Manager Studio создаю запрос, описанный в начале темы (спасибо за него пользователю под ником Siniy)

    Результат экспортирую в xls файл, и его уже анализирую

    Это не лучший способ :(. А от имени какой учетной записи вы создаете запрос (какие права у этой учетки)?

    Vladimir Zelenov | http://systemcenter4all.wordpress.com



    4 декабря 2012 г. 13:03
    Отвечающий
  • Т.е из sql ms все пашет,

    тогда откройте management studio  - > tools - > external tools -> tool1-> command line: C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\PROFILER.EXE (путь проверьте)

    снова tools-> запускйте тулу, подключайтесь к серверу, далее запускайте трасировку, затем  отчет через браузер и   смотрите трассировку  -  какая учетка делает select
    • Помечено в качестве ответа AlexandrC 5 декабря 2012 г. 10:18
    4 декабря 2012 г. 13:24
    Отвечающий
  • Т.е из sql ms все пашет,

    тогда откройте management studio  - > tools - > external tools -> tool1-> command line: C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\PROFILER.EXE (путь проверьте)

    снова tools-> запускйте тулу, подключайтесь к серверу, далее запускайте трасировку, затем  отчет через браузер и   смотрите трассировку  -  какая учетка делает select

    Спасибо. Сделал как вы посоветовали. Выяснилось что запрос делается под другим юзером, который не имеет прав на чтение. 

    Далее сделал как посоветовал  bobgreen84 : " Вам нужно открыть SQL Server Management Studio, открыть Security - Logins, добавить пользователя, которого вы указали при установке роли Reporting Point. Правой кнопкой на данную учетную запись -> Properties -> User Mapping -> Галочку напротив БД ConfigMgr (обычно SMS_<код сайта>) -> в нижней части этого же окна галочку напротив db_datareader -> во всех окнах ОК, закрываете Management Studio. "

    Спасибо всем за советы. Проблема решилась
    • Изменено AlexandrC 5 декабря 2012 г. 10:18
    5 декабря 2012 г. 10:07