{"id":4466,"date":"2025-03-17T14:08:26","date_gmt":"2025-03-17T13:08:26","guid":{"rendered":"https:\/\/www.lieben.nu\/liebensraum\/?p=4466"},"modified":"2025-03-17T14:08:26","modified_gmt":"2025-03-17T13:08:26","slug":"m365permissions-v1-1-5","status":"publish","type":"post","link":"https:\/\/lieben.nu\/liebensraum\/2025\/03\/m365permissions-v1-1-5\/","title":{"rendered":"M365Permissions v1.1.5"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.lieben.nu\/liebensraum\/wp-content\/uploads\/2025\/03\/m365permissions_v1.1.5.gif\"><img loading=\"lazy\" decoding=\"async\" width=\"1396\" height=\"376\" src=\"https:\/\/www.lieben.nu\/liebensraum\/wp-content\/uploads\/2025\/03\/m365permissions_v1.1.5.gif\" alt=\"\" class=\"wp-image-4496\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">1.1.5 brings some initial improvements to prepare for <strong>Managed Identities<\/strong> and <strong>fully automates<\/strong> creating a Service Principal (unattended\/automated scanning).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But, that isn&#8217;t entirely finished yet. However, since my target platforms are Automation Accounts and Azure Functions, which are heavily memory-constricted, I&#8217;ve focused on reducing the module&#8217;s memory footprint and further enhancing performance. The module now uses up to <strong>80%<\/strong> less memory at <strong>no cost<\/strong> to scan speed!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve described how to first set up a service principal in a <a href=\"https:\/\/www.lieben.nu\/liebensraum\/2025\/02\/scanning-unattended-using-a-service-principal\/\" data-type=\"link\" data-id=\"https:\/\/www.lieben.nu\/liebensraum\/2025\/02\/scanning-unattended-using-a-service-principal\/\">separate post<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Full changelog:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[<a href=\"https:\/\/github.com\/jflieben\/assortedFunctionsV2\/pull\/26\/commits\/33fd685be5e60e4211f73e0eaa8dbd5104d358a4\">Feature<\/a>] Add <strong>application and policy <\/strong>scanning<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/5045206d6a7e7711325744b0bdce2dd3d836798a\">Feature<\/a>] Scan <strong>Entra Users<\/strong> in batches<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/b100186a4712b61238f9e8b8ce9044cf9fe8edeb\">Feature<\/a>] Improve <strong>memory usage<\/strong><\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/7c8e40ad73b53374da7bcb28911e39bbcec2e246\">Feature<\/a>] Use<strong> tenant specific<\/strong> report folder<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/ccaedf2202eb43aeceb9de3edaeb1738e6bd6ced\">Feature<\/a>] Make <strong>logLevel <\/strong>configurable<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/c6974e5ae770cb4c0aab7f45456a3c3d05369c4c\">Feature<\/a>] Experimental <strong>Managed Identity<\/strong> support<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/e8ecef77bdb6a4c1dab8426e88907fcdba427960\">Feature<\/a>] Automatically handle <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/manage-lock-status\">Sharepoint Site Locks<\/a><\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/pull\/1\/commits\/d418b16235503e93a7e9a65f14e73a8a8e9ba4ad\">Feature<\/a>] Automatically <strong>deduplicate and diff<\/strong> all reports<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/pull\/1\/commits\/62a70e9283e6f0dcdf8fcc8c6717bafc72dca7b8\">Feature<\/a>] <strong>Add objectId&#8217;s<\/strong> to report where useful<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/pull\/1\/commits\/d76517da390dc3ce1da48ab74e5baf452eb6fda1\">Feature<\/a>] Display calculated <strong>remaining scan time<\/strong><\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/pull\/1\/commits\/1a9fc2da9ffd53e0275f8cb73d71863f4028005c\">Feature<\/a>] Service Principal <strong>create <\/strong>function<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/663c76219025ffc52635a7671847d5fa0192f99f\">Feature<\/a>] Improved changed detection (e.g. ignore display name changes)<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/commit\/e5cc387614ea84e8f741b4f9bae2f4bd5cdecd2a\">BugFix<\/a>]<strong> <\/strong>Respect <strong>verbose<\/strong> settings in child jobs<\/li>\n\n\n\n<li>[<a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/pull\/1\/commits\/59d0e2bf0f6fcd06f17223b6acfe0666415fa887\">BugFix<\/a>] For english <strong>permission descriptions<\/strong> to avoid diff issues<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Download \/ Use:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.lieben.nu\/liebensraum\/m365permissions\/\" data-type=\"page\" data-id=\"4280\">M365Permissions module page<\/a> | <a href=\"https:\/\/github.com\/jflieben\/M365Permissions\/tree\/main\" data-type=\"link\" data-id=\"https:\/\/github.com\/jflieben\/assortedFunctionsV2\/tree\/main\/M365Permissions\">Github <\/a> | <a href=\"https:\/\/www.powershellgallery.com\/packages\/M365Permissions\">PSGallery<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.1.5 brings some initial improvements to prepare for Managed Identities and fully automates creating a Service Principal (unattended\/automated scanning). But, that isn&#8217;t entirely finished yet. However, since my target platforms are Automation Accounts and Azure Functions, which are heavily memory-constricted, I&#8217;ve focused on reducing the module&#8217;s memory footprint and further enhancing performance. The module now &hellip; <a href=\"https:\/\/lieben.nu\/liebensraum\/2025\/03\/m365permissions-v1-1-5\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">M365Permissions v1.1.5<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[4,18,21,24,27,32,34,38,39,43,44],"tags":[],"class_list":["post-4466","post","type-post","status-publish","format-standard","hentry","category-automation","category-exchange-online","category-identity","category-m365permissions","category-microsoft-teams","category-office-365","category-onedrive-for-business","category-powerbi","category-powershell","category-security","category-sharepoint-online"],"_links":{"self":[{"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/posts\/4466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/comments?post=4466"}],"version-history":[{"count":0,"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/posts\/4466\/revisions"}],"wp:attachment":[{"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/media?parent=4466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/categories?post=4466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lieben.nu\/liebensraum\/wp-json\/wp\/v2\/tags?post=4466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}