Käyttämällä PowerShelliä Arkisto Postilaatikot PST perustuu AD lastLogonTime Exchange 2007 ...

Andy Grogan 10. marraskuuta 2011 · 4 kommenttia

vuonna Exchange 2007 (Admin) , Exchange 2007 (General) , Exchange 2007 Backup , Exchange 2007 Scripts , PowerShell

Vähän aikaa sitten törmäsin siisti pieni ilmainen työkalu PowerShell kutsutaan aktiivisia käyttäjiä Tracker PowerShell cmdlet niminen yhtiö NetWrix .
Tämä cmdlet pohjimmiltaan tarjotaan mukava, helppokäyttöinen kääre yhdistelty viime kirjautumistiedot tilien Active Directory (kuten ehkä tiedätte lastlogon ominaisuutta ei monistaa 2003 ympäristöissä, ja voi olla hieman vaikea keskimäärin käyttäen script ).

En aluksi alkanut käyttää NetWrix moduuli raportoinnista toimeton tilitiedot sisällä hakemiston ympäristöissä, mutta mahdollisuudet sitä voidaan käyttää osana paljon laajempaa työkalu karsia, ja sulkea käyttämättömät tilit ja postilaatikoita oli selkeä - niin Tässä artikkelissa olen keksiä mallikomentosarja antaa teille joitakin ajatuksia siitä, miten voit automatisoida seuraavat prosessit käyttävät sitä:

  • Löytää tilit, joita ei ole kirjautunut määrätyn ajan
  • Vie postilaatikot mainitessaan ne tilille PST
  • Poista postilaatikot
  • Poista Active Directory tilini
  • Siirrä AD tiettyyn OU

Valitettavasti NetWrix on nyt lopetettu tätä työkalua hyväksi GUI version, joka mielestäni voidaan ajoittaa komentoriviltä - mutta voit silti ladata versio, olen käyttäen mistä täällä joka Kehotan, että teet niin kuin toiminnallisuus on todella siistiä .

Käsikirjoitus itsessään pohjautuu löyhästi artikkelissa, että olen julkaissut täällä elokuussa tämän vuoden (2011) - mutta laajentaa sen toimintoja.

Yksi asia, joka minun on huomautettava, että tämä kirjoitus on näyte vain, eikä sitä pitäisi käyttää tuotannossa ilman muutoksia.
Jos aiot käyttää tätä script tuotantoympäristössä - kannattaa katsoa täytäntöön poikkeuksia vientiä ja poista prosessi - kuten yleensä on olemassa useita postilaatikoita tuotannossa että nimellisarvo ei kirjautunut, mutta palvelevat tarkoitusta.

Lisäksi sinun pitäisi myös harkita ilman tilejä, jos omistaja on pitkän aikavälin puuttuessa.

Sanon on - käyttö omalla vastuulla!

Vaatimukset

Jotta hyödyntää tämä kirjoitus sinun tulee olla seuraavat esitietovaatimukset asennettu Exchange (tai Management Server):

Lataa

Käsikirjoitus on ladattavissa alla - tai voit kopioida sen tämä sivu PS1 tiedosto Management / Exchange Server:

[ ExportMailboxesToPst-BasedonLogon.ps1 - 3KB ]

 # Vie Postilaatikko PST, Poista postilaatikko, Active Directory Tili ja Siirrä OU # Versio 1.0 # Tekijä: Andy Grogan # HUOMAUTUS: Tämä skripti poistaa postilaatikon tilin tallentaa # # Add-PSSnapin Quest.ActiveRoles.ADManagement Add-PSSnapin NETWRIXIUTPSSnapIn Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin $ErrorActionPreference = "SilentlyContinue" #  Muuta seuraavia sopivaksi requirements $gblInactiveDays = 50 $DestinationPSTPath = "X:\Psts" $ServiceAccount = "Administrator@ethan.local" function get-DNC { Param ( $RDSE ) $DomainDNC = $RDSE .defaultNamingContext Return $DomainDNC } $NC = (Get-DNC([ adsi ]( "LDAP://RootDSE" ))) $DisabledAccountOU = "OU=DisabledUsers," + $NC function apply_Permissions ( $strMailbox ){ Remove-MailboxPermission  -User $ServiceAccount -Deny -InheritanceType 'All' -AccessRights 'FullAccess' -Confirm : $false Add-MailboxPermission -Identity $ StrMailbox -Käyttäjän $ ServiceAccount -Deny -InheritanceType "Kaikki" -AccessRights "FullAccess" -Tarkista: $ false Add-MailboxPermission -Identity $strMailbox -User $ServiceAccount -AccessRights 'FullAccess' -Confirm : $false } function remove_permissions ( $strMailbox ){ Remove-MailboxPermission -Identity $strMailbox -User $ServiceAccount -InheritanceType 'All' -AccessRights 'FullAccess' -Confirm : $false Add-MailboxPermission  -User $ServiceAccount -Deny -Identity $ StrMailbox -Käyttäjän $ ServiceAccount -Deny -AccessRights 'FullAccess' -Confirm : $false } function get_ADDomain (){ $strDomain = [ System.DirectoryServices.ActiveDirectory.Domain ]:: GetCurrentDomain (). Name return $strDomain } function disable_mailbox ( $strMailbox ){ Disable-Mailbox $strMailbox -Confirm : $false } function get-dn ( $SAMName ) { $root = [ ADSI ] '' $searcher = new-object System.DirectoryServices.DirectorySearcher ( $root ) $searcher .filter = "(&(objectClass=user)(sAMAccountName=  = $searcher .findall() if ( $user .count -gt 1) { $count = 0 foreach ( $i in $user ) { write-host $count ": " $i .path $count = $count + 1 } $selection = Read-Host "Please select item: " return $user [ $selection ].path } else { return $user [0].path } } function moveToDisabledOU ( $strDN ){ move-QADObject $ SAMName)) "$ user = $ etsijä .findall () jos ($ käyttäjä .count -gt 1) {$ count = 0 foreach ($ i $ user) {write-isäntä $ count": "$ i .path $ count = $ count + 1} $ valinta = Read Host "Valitse kohde" paluu $ user [$ valinta] .path} else {return $ user [0] .path}} toiminto moveToDisabledOU ($ strDN) {liikkua -QADObject -Identity $strDN -NewParentContainer $DisabledAccountOU } function get_InactiveAccounts (){ $Domain = get_ADDomain $Accounts = Get-NCInactiveUsers -domain $Domain -days $gblInactiveDays foreach ( $Usr in $Accounts ){ $User = Get-User $Usr .AccountName if ( $User .RecipientType -eq 'UserMailbox' ){ $path = Get-DN $User .samAccountName "'" + $path + "'" apply_Permissions $User .Identity Export_ToPST $User .Identity remove_Permissions $User .Identity disable_mailbox $User .Identity $QADPath = Get-QADUser  .samAccountName $account =[ ADSI ] $path $account .psbase.invokeset( "AccountDisabled" , "True" ) $account .setinfo() Set-QADUser -Identity $user .samAccountName -Description "Account Disabled by PST Export Script" moveToDisabledOU $QADPath .DN } } } function export_ToPST ( $strMailID ){ Export-Mailbox -Identity $strMailID -PSTFolderPath $DestinationPSTPath -Confirm : $false } get_InactiveAccounts -Identity $ Käyttäjän .samAccountName $ tili = [ADSI] $ path $ tili .psbase.invokeset ("accountdisabled", "True") $ tili .setinfo () Aseta-QADUser -Identity $ käyttäjä .samAccountName kuvausBREAK "Account Disabled mukaan PST Export Script "moveToDisabledOU $ QADPath .DN}}} toiminto export_ToPST ($ strMailID) {Vie postilaatikon -Identity $ strMailID -PSTFolderPath $ DestinationPSTPath -Tarkista: $ false} get_InactiveAccounts 

Käyttämällä script

Ennen skripti voidaan ajoittaa käyttöön, sinun täytyy varmistaa, että olet suorittanut seuraavat toimet:

  • Luo OU sisällä Active Directory infrastruktuurin nimeltään "DisabledUsers" - katso alla

ADUC-DUPic

  • Luo käyttäjätili oikean Exchange Oikeudet omassa Exchange-ympäristössä - tilille tarvitsee postilaatikkoon ja on seuraavat Exchange käyttöoikeudet:
    • Exchange Server Administrator
    • Paikallinen Administrator Management / Exchange Server
  • Sinun pitäisi luoda hakemistoon Management Server, joka sisältää viedyt pst-tiedostoja - minun esimerkissä olen luonut kansion nimeltä "X: \ PSTs" - katso alla

pstExprt002

  • Sinun pitäisi muokata komentosarjatiedoston ja muuttaa seuraavia arvoja (l ocated yläreunassa käsikirjoituksen, vastaamaan asetukset oman ympäristön)
  50 $ GblInactiveDays = 50 
  "X:\Psts" $ DestinationPSTPath = "X: \ PSTs" 
  "Administrator@ethan.local" $ ServiceAccount = "Administrator@ethan.local" 

Arvo $ gblInactiveDays on siemen arvo kuinka kauan tili ei ole kirjautunut - minun esimerkki skripti etsiä Active Directory tilit, joita ei ole kirjautunut sisään 50 päivää.

Arvo $ DestinationPSTPath on sijainti paikallinen johto palvelin, jossa pst-tiedostoja tallennetaan.

Arvo $ ServiceAccount olisi SMTP osoite käyttäjätilin luomasi viedä postin kohteet postilaatikot.

  • Kun olet muokannut komentosarjatiedoston koskaan ollut näin helppoa, sinun tulee luoda komentojonotiedoston toteuttaa käsikirjoituksen ja voidaan ajoittaa kautta Windows Task Manager.

Voidakseen tehdä tämän sinun pitäisi luoda .cmd seuraavien komentojen sisältyviä:

echo Pois
Powershell -komennolla "& {X: \ <PathToScript> \ ExportMailboxesToPst-BasedonLogon.ps1}"

Katso alla:

pstExprt001

Kun olet tehnyt edellä, sinun pitäisi sitten ajoittaa sen kautta Windows Task Manager toteuttaa (käyttäen palvelua huomioon, että olet sijasta) aikana, joka on parhaiten sopiva ympäristö.

Script Käyttö

On huomattava, että riippuen koosta postilaatikoita asianomaisten - aika kuluu tätä skriptiä voi vaihdella muutamasta minuutista muutamaan tuntiin tai jopa päiviä) - sinun pitäisi ottaa huomioon tämä kun aikataulutus tehtävä Windows ajastimella.

Kun skripti suoritetaan se suorittaa seuraavat toimet:

  • Etsikää Active Directory Tilit Postilaatikot, joita ei ole näytetty, että $ gblInactiveDays
  • Levitä postilaatikon täydet käyttöoikeudet palveluun tilin jokaiseen postilaatikkoon
  • Vie e-Mail kohteita PST sijaitsee PST polun sijainti
  • Poista Exchange-postilaatikon
  • Poista AD
  • Siirrä AD tilin DisabledUsers OU
  • Leima kuvaus tilin monikerin että se oli sijoitettu sinne käsikirjoituksen

pstExprt004

Siksi jälkeen suorittamisen PST kansioon sinun pitäisi nähdä PST: n tileillä että noudatetaan suodatin - katso alla

pstExprt006

Vuonna DisabledUsers OU Active Directoryn käyttäjät ja tietokoneet sinun pitäisi nähdä listan tilejä, jotka on käsitelty - katso alla

pstExprt007

Sisällä Exchange Management Console sinun pitäisi nähdä, että asiaa tili on poistettu - katso alla

Ennen:

pstExprt003

Jälkeen:

pstExprt005

Toivon, että tämä esimerkki antaa hieman inspiraatiota joitakin ihmisiä ja antaa sinulle joitakin viitteitä siitä, miten voit automatisoida prosesseja poistetaan vanha tilien sisällä Infrastructure.

comments… read them below or add one } {4 kommenttia ... lukea ne alle tai lisää yksi }

Rob 14 marraskuu 2011 klo 19:27

Kiitos avulias scripting. Kävin niiden päällä ja että cmdlet ei ole enää saatavana.

Paras,

Ryöstää

Vastata

Andy Grogan 14 marraskuu 2011 klo 19:44

Heippa Rob, kyllä ​​se on oikea - mutta voit silti ladata sen from http://www.softpedia.com/get/System/System-Miscellaneous/Inactive-Users-Tracker-PowerShell-Cmdlet.shtml
Kippis

Vastata

Jenny 15 maaliskuu 2012 klo 06:47

Exchange EDB PST muuntaminen on mahdollista Microsoftin sisäänrakennettu apuohjelmia. Jos oikeat käyttöoikeudet eivät ole saatavilla, epäonnistuu. Professional kolmannen osapuolen EDB PST Converter työkaluja avulla voidaan poimia tietoja kaikista pääversioita.

http://edbtopstconverter.stellarservertools.com/

Vastata

Adin 27 syyskuu 2013 klo 09:35

Moi
Nyt edetä Exchange hyödyntämistä ohjelmisto korjaus virhe vaikutti Exchange-palvelimen ja myös palauttaa palauttaa tietokannan uuteen Exchange-palvelimeen tai PST-tiedostomuodossa. Tietää enemmän: - http://www.exchangerecoverysoftware.org/microsoft-exchange-server-recovery.html

Vastata

Jätä kommentti

CAPTCHA Image
Päivitä kuva
*

Edellinen viesti:

Seuraava viesti: