{"id":391,"date":"2017-08-16T14:21:08","date_gmt":"2017-08-16T12:21:08","guid":{"rendered":"https:\/\/itblogwildi.wordpress.com\/?p=391"},"modified":"2017-08-16T14:21:08","modified_gmt":"2017-08-16T12:21:08","slug":"powershell-erstelle-verzeichnisse-pro-benutzer-aus-ad-und-setze-berechtigungen","status":"publish","type":"post","link":"https:\/\/itblog.wildi.dk\/?p=391","title":{"rendered":"PowerShell: Erstelle Verzeichnisse pro Benutzer aus AD, und setze Berechtigungen"},"content":{"rendered":"<p>Obige Anforderung wurde an mich gestellt. Wie immer &#171;quick and dirty&#187;.<\/p>\n<p>Das Script basiert auf den Modulen &#171;NTFSSecurity&#187; (<a href=\"https:\/\/gallery.technet.microsoft.com\/scriptcenter\/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85\" target=\"_blank\" rel=\"noopener\">File System Security PowerShell Module<\/a>), danke schonmal daf\u00fcr.<\/p>\n<p>Beschrieben ist das ganze gut auf der Technet-Gallery Seite, und <a href=\"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2014\/11\/22\/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/p>\n<p>Das Module habe ich unter\u00a0C:\\Program Files\\WindowsPowerShell\\Modules &#171;installiert&#187; (simples Filecopy). Danach kann das Modul via<\/p>\n<pre>Import-Module NTFSSecurity<\/pre>\n<p>importiert werden.<\/p>\n<p>Mein Script sieht wie folgt aus:<\/p>\n<pre># Create Folders based on a AD OU\n# Scripted by M. Wildi, IN4OUT it solutions ag, 5000 Aarau\n# v 1.0 16.08.2017\n# ###########################################################################\n# Import Module\n# Module from https:\/\/gallery.technet.microsoft.com\/scriptcenter\/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85\nImport-Module NTFSSecurity\n\n# set Variables\n$CustClass = \"DT2017\"\n$CustRootDir = \"\\\\FILESERVER\\Share\\share\\root\\\"\n$CustDir = $CustRootDir + $CustClass\n# Create Base Dirs\nmd $CustDir\nmd $CustDir\\_Public\n\n# Set Permissions\nGet-Item $CustDir | Disable-NTFSAccessInheritance\nGet-NTFSAccess $CustDir | Where-Object {$_.Account -like \"DOMAIN\\GROUP\"} | Remove-NTFSAccess\nGet-Item $CustDir | Add-NTFSAccess -Account \"DOMAIN\\$CustClass\" -AccessRights ReadAndExecute -AppliesTo ThisFolderSubfoldersAndFiles\n\nGet-Item $CustDir\\_Public| Disable-NTFSAccessInheritance\nGet-NTFSAccess $CustDir\\_Public| Where-Object {$_.Account -like \"DOMAIN\\GROUP\"} | Remove-NTFSAccess\nGet-Item $CustDir\\_Public| Add-NTFSAccess -Account \"DOMAIN\\$CustClass\" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles\nGet-Item $CustDir\\_Public| Add-NTFSAccess -Account \"DOMAIN\\GROUP2\" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles\n\nGet-ADUser -Filter * -SearchBase \"OU=$CustCLass,OU=OU1,OU=Users,OU=CUSTOMER,DC=CUSTOMER,DC=intern\" -Properties * | \nForEach-Object {\nmd $CustDir\\$($_.SamAccountName)\nGet-Item $CustDir\\$($_.SamAccountName) | Disable-NTFSAccessInheritance\nGet-NTFSAccess $CustDir\\$($_.SamAccountName) | Where-Object {$_.Account -like \"DOMAIN\\$CustClass\"} | Remove-NTFSAccess\nGet-Item $CustDir\\$($_.SamAccountName) | Add-NTFSAccess -Account \"DOMAIN\\$($_.SamAccountName)\" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles\nGet-Item $CustDir\\$($_.SamAccountName) | Add-NTFSAccess -Account \"DOMAIN\\GROUP2\" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Obige Anforderung wurde an mich gestellt. Wie immer &#171;quick and dirty&#187;. Das Script basiert auf den Modulen &#171;NTFSSecurity&#187; (File System&#8230; <a class=\"read-more\" href=\"https:\/\/itblog.wildi.dk\/?p=391\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5,29],"tags":[],"class_list":["post-391","post","type-post","status-publish","format-standard","hentry","category-active-directory","category-allgemein","category-powershell"],"_links":{"self":[{"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=\/wp\/v2\/posts\/391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=391"}],"version-history":[{"count":0,"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=\/wp\/v2\/posts\/391\/revisions"}],"wp:attachment":[{"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itblog.wildi.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}