Käyttämällä PowerShell arkistoon Postilaatikot PST perustuu AD lastLogonTime Exchange 2007 ...

Andy Grogan 10. marraskuuta 2011 · 4 kommenttia

vuonna Exchange 2007 (Admin) , Exchange 2007 (yleinen) , Exchange 2007 Backup , Exchange 2007-skriptit , PowerShell

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

En aluksi alkanut käyttää NetWrix moduuli raportoinnista toimeton tilitiedot sisällä hakemistoon ympäristöissä kuitenkin potentiaalia, jotta sitä voidaan käyttää osana laajempaa keino karsia, ja sulkea käyttämättömät tilit ja postilaatikot oli selkeä - niin Tässä artikkelissa olen keksiä mallikomentosarja antaa sinulle ideoita siitä, miten voit automatisoida seuraavat prosessit käyttävät sitä:

  • Löytää tilejä, joita ei ole kirjautunut määrätyn ajan
  • Viedä postilaatikot mainitessaan ne tiliä PST
  • Poista postilaatikot
  • Poistaa Active Directory-tilin
  • Siirrä AD tiettyyn OU

Valitettavasti NetWrix on nyt lopetettu tätä työkalua hyväksi GUI versio, joka mielestäni voidaan ajoittaa komentoriviltä - mutta voit silti ladata versio, käytän päässä täältä josta Kehotan, että teet niin toiminnallisuus on todella siistiä .

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

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

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

Mitä 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-tilin ja siirtää OU # Versio 1.0 # Tekijä: Andy Grogan # HUOMAUTUS: Tämä skripti poistaa postilaatikon tilin myymälä # # 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 'All' -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 () if ($ user .count -gt 1) {$ count = 0 foreach ($ i $ user) {kirjoitus-isäntä $ count": "$ i .path $ laskuri = $ count + 1} $ valinta = Read Host "Valitse kohta:" 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 $ User .samAccountName $ tili = [ADSI] $ PATH $ tili .psbase.invokeset ("accountdisabled", "True") $ tili .setinfo () Set-QADUser -Identity $ käyttäjä .samAccountName -Kuvaus "Tili poistettu käytöstä PST Export Script "moveToDisabledOU $ QADPath .DN}}} toiminto export_ToPST ($ strMailID) {Export-Postilaatikko -Identity $ strMailID -PSTFolderPath $ DestinationPSTPath -Tarkista: $ false} get_InactiveAccounts 

Käyttämällä kirjoitus

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

  • Luo OU sisällä Active Directory infrastruktuuri 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
    • Paikalliset Administrator johto / Exchange-palvelimen
  • Sinun pitäisi sitten 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 käsikirjoitus tiedoston ja muuttaa seuraavia arvoja (l ocated yläreunassa käsikirjoituksen, vastaamaan asetukset omassa ympäristössä)
  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 tiedostot tallennetaan.

Arvo $ ServiceAccount pitäisi olla SMTP-osoitteen käyttäjän 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 tulee luoda .cmd seuraavien komentojen sisältyviä:

echo Pois
Powershell -Command "Ja {x: \ <PathToScript> \ ExportMailboxesToPst-BasedonLogon.ps1}"

Katso alla:

pstExprt001

Kun olet tehnyt edellä, sinun tulee ajoittaa sen kautta Windows Task Manager suorittaa (käyttäen palvelua tili, jonne olet sijasta) aikana, joka on parhaiten sopiva ympäristö.

Script Käyttö

On huomattava, että riippuen postilaatikoiden koko koski - aika kuluu tämän suorittaa koodin voi vaihdella muutamasta minuutista muutamaan tuntiin tai jopa päiviä) - sinun pitäisi ottaa huomioon tämän ajoitettaessa tehtävä Windows ajastimella.

Kun skripti ajetaan se suorittaa seuraavia toimia:

  • Etsikää Active Directory Tilit Postilaatikot, joita ei ole näytetty in $ gblInactiveDays
  • Levitä postilaatikon täydet käyttöoikeudet palveluun tilin kummallakin Postilaatikko
  • Viedä Sähköposti kohteita PST-tiedosto sijaitsee PST polku sijainti
  • Poistaa Exchange-postilaatikon
  • Poistaa AD
  • Siirrä AD tilin DisabledUsers OU
  • Leima kuvaus tilin Monikeri että se on sijoitettu sinne kirjoitus

pstExprt004

Siksi toteuttamisen jälkeen vuonna PST kansiossa pitäisi näkyä 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ä luettelon 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 vähän inspiraatiota joitakin ihmisiä ja antaa sinulle joitakin viitteitä siitä, miten voit automatisoida prosesseja poistamalla vanhoja tilejä omassa infrastruktuuri.

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

Rob 14 marraskuu 2011 klo 19:27

Kiitos hyödyllinen scripting. Kävin niiden päällä ja että komentosovelma ei ole enää saatavana.

Paras,

Rob

Vastaus

Andy Grogan 14 marraskuu 2011 klo 19:44

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

Vastaus

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. Ammattimaisen kolmannen osapuolen EDB PST Converter työkaluja avulla voidaan poimia tietoja kaikista pääversioita.

http://edbtopstconverter.stellarservertools.com/

Vastaus

Adin 27 syyskuu 2013 klo 09:35

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

Vastaus

Jätä kommentti

CAPTCHA Image
Päivitä kuva

Edellinen viesti:

Seuraava viesti: