Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. param (
  2. [Parameter(Mandatory=$true)][string] $OutFile, #Kimeneti fájl címe
  3. [switch] $IncludePersonnel                     #Kapcsoló az adminisztratív munkatárs adataihoz
  4. )
  5.  
  6. Import-Module ActiveDirectory
  7.  
  8. $Projects = Get-ADObject -Filter 'CN -like "Project *"' -SearchBase "OU=Projects,DC=irfhf,DC=local"    #Az összes projekt
  9.  
  10. [System.XML.XMLDocument]$XMLDocument=New-Object System.XML.XMLDocument
  11. [System.XML.XMLElement]$XMLRoot=$XMLDocument.CreateElement("Projects")                                 #XML fájl létrehozása, gyökér elem megadása
  12. $XMLDocument.appendChild($XMLRoot)
  13.  
  14. foreach($Project in $Projects) {                                                                       #Projekteken való végigiterálás
  15.     [System.XML.XMLElement]$XMLProject=$XMLRoot.appendChild($XMLDocument.CreateElement("Project"))
  16.     $name = $Project | Select -ExpandProperty "name"
  17.     $XMLProject.SetAttribute("name","$name")                                                           #Jelenlegi projekt XML-fájlba szerkesztése
  18.     $Members = Get-ADGroupMember -Identity $Project | Sort-Object name | Select -ExpandProperty "name" #Tagok lekérése
  19.     $UniversityCount = 0
  20.     $PartnerCount = 0
  21.  
  22.  
  23.     foreach($Member in $Members) {                                                                             #Tagok való végigiterálás
  24.     $Company = Get-ADObject -Filter 'CN -eq $Member' -SearchBase "OU=Faculties,OU=University,DC=irfhf,DC=local"#null-al tér vissza ha nem oktató a tag
  25.         if (!$Company) {$UniversityCount++}                                                                    #ez alapján a megfelelő számlálót növeljük
  26.         else {$PartnerCount++}
  27.     }
  28.  
  29.     [System.XML.XMLElement]$XMLUniversity=$XMLProject.appendChild($XMLDocument.CreateElement("UniversityMembers")) #A projekthez tartozó tagok xml-fájlba írása
  30.     $XMLUniversity.InnerText = $($UniversityCount - 1)                                                             # -1 az adminisztratív munkatárs miatt
  31.     [System.XML.XMLElement]$XMLPartner=$XMLProject.appendChild($XMLDocument.CreateElement("Partners"))
  32.     $XMLPartner.InnerText = $PartnerCount
  33.  
  34.     if($IncludePersonnel){
  35.     $Admin = Get-ADGroupMember -Identity $Project | Where-Object { $($_.DistinguishedName)  -like "*Personnel*"}   #Adminisztratív munkatárs kiválasztása
  36.     $Adminname = Get-ADUser -Identity $Admin -Properties DisplayName | Select -ExpandProperty DisplayName          #Név és e-mail cím lekérése
  37.     $Adminemail = Get-ADUser -Identity $Admin -Properties EmailAddress | Select -ExpandProperty EmailAddress
  38.  
  39.  
  40.     [System.XML.XMLElement]$XMLAdministrator=$XMLProject.appendChild($XMLDocument.CreateElement("Administrator"))  #Adminisztratív munkatárs adatainak bevitele a fájlba
  41.     [System.XML.XMLElement]$XMLAdminName=$XMLAdministrator.appendChild($XMLDocument.CreateElement("Name"))
  42.     $XMLAdminName.InnerText = $Adminname
  43.     [System.XML.XMLElement]$XMLAdminEmail=$XMLAdministrator.appendChild($XMLDocument.CreateElement("EmailAddress"))
  44.     $XMLAdminEmail.InnerText = $Adminemail
  45.     }
  46. }
  47.  
  48. $XMLDocument.Save("$OutFile")                                                                                       #XML fájl elmentése a paraméterként kapott címre
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement