Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- param (
- [Parameter(Mandatory=$true)][string] $OutFile, #Kimeneti fájl címe
- [switch] $IncludePersonnel #Kapcsoló az adminisztratív munkatárs adataihoz
- )
- Import-Module ActiveDirectory
- $Projects = Get-ADObject -Filter 'CN -like "Project *"' -SearchBase "OU=Projects,DC=irfhf,DC=local" #Az összes projekt
- [System.XML.XMLDocument]$XMLDocument=New-Object System.XML.XMLDocument
- [System.XML.XMLElement]$XMLRoot=$XMLDocument.CreateElement("Projects") #XML fájl létrehozása, gyökér elem megadása
- $XMLDocument.appendChild($XMLRoot)
- foreach($Project in $Projects) { #Projekteken való végigiterálás
- [System.XML.XMLElement]$XMLProject=$XMLRoot.appendChild($XMLDocument.CreateElement("Project"))
- $name = $Project | Select -ExpandProperty "name"
- $XMLProject.SetAttribute("name","$name") #Jelenlegi projekt XML-fájlba szerkesztése
- $Members = Get-ADGroupMember -Identity $Project | Sort-Object name | Select -ExpandProperty "name" #Tagok lekérése
- $UniversityCount = 0
- $PartnerCount = 0
- foreach($Member in $Members) { #Tagok való végigiterálás
- $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
- if (!$Company) {$UniversityCount++} #ez alapján a megfelelő számlálót növeljük
- else {$PartnerCount++}
- }
- [System.XML.XMLElement]$XMLUniversity=$XMLProject.appendChild($XMLDocument.CreateElement("UniversityMembers")) #A projekthez tartozó tagok xml-fájlba írása
- $XMLUniversity.InnerText = $($UniversityCount - 1) # -1 az adminisztratív munkatárs miatt
- [System.XML.XMLElement]$XMLPartner=$XMLProject.appendChild($XMLDocument.CreateElement("Partners"))
- $XMLPartner.InnerText = $PartnerCount
- if($IncludePersonnel){
- $Admin = Get-ADGroupMember -Identity $Project | Where-Object { $($_.DistinguishedName) -like "*Personnel*"} #Adminisztratív munkatárs kiválasztása
- $Adminname = Get-ADUser -Identity $Admin -Properties DisplayName | Select -ExpandProperty DisplayName #Név és e-mail cím lekérése
- $Adminemail = Get-ADUser -Identity $Admin -Properties EmailAddress | Select -ExpandProperty EmailAddress
- [System.XML.XMLElement]$XMLAdministrator=$XMLProject.appendChild($XMLDocument.CreateElement("Administrator")) #Adminisztratív munkatárs adatainak bevitele a fájlba
- [System.XML.XMLElement]$XMLAdminName=$XMLAdministrator.appendChild($XMLDocument.CreateElement("Name"))
- $XMLAdminName.InnerText = $Adminname
- [System.XML.XMLElement]$XMLAdminEmail=$XMLAdministrator.appendChild($XMLDocument.CreateElement("EmailAddress"))
- $XMLAdminEmail.InnerText = $Adminemail
- }
- }
- $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