Wednesday, February 5, 2014

Backup Lync 2010 Remotely from Orchestrator

Backup Lync 2010 Remotely from Orchestrator


Prerequisites: Lync 2010 Cmdlets installed on Orchestrator Server.
Files needed: DBImpExp.exe


So I needed a way to backup Lync 2010 configuration. Since I have snap shots of the VM I can have a restored Lync environment up in a few hours. But all of my configuration changes will be missing.

This is where Orchestrator Runbook comes into play.

Simple layout
Monitor Date Time
Check Schedule
Export DBImpExp
Sleep (Note Runbook is faster than my script so I need to slow it down)
Script-Export


Now for the Code:

Export DBImpExp:
cd \
cd "C:\Program Files\Common Files\Microsoft Lync Server 2010\Support"
start-process dbimpexp.bat


dbimpexp.bat


@ECHO OFF
REM CD "C:\Program Files\Common Files\Microsoft Lync Server 2010\Support"
dbimpexp.exe /hrxmlfile:"E:\masterbackup\Lync-Backups\BackupFiles\DBImpExp.xml" /sqlserver:nlkvsqldba04\lync_prod
 

Sleep:
PING 127.0.0.1 -n 50 (I do a simple ping, always works!)

Export DBImpExp: once you get all of this data I like to package it into a zip file.


############# NEW-ZIP ############################
function New-Zip
{
  param(
 [Parameter(Mandatory=$true,
  Position=0,
  ValueFromPipeline=$true)]
 [String]
 $Path,
 
 [Switch]
 $PassThru,
 
 [Switch]
 $Force
 )
 process {

   if (Test-Path $path)
   {
    if (-not $Force) { 
     return
    }
   }
   Set-Content $path ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
   $item = Get-Item $path
   $item.IsReadOnly = $false 
   if ($passThru) { $item } 
  
 }
}

Here is the Function to Copy to Zip file

########## Copy-ToZip ###########################
function Copy-ToZip
{
param(
  [Parameter(Mandatory=$true,
    Position=0,
    ValueFromPipelineByPropertyName=$true)]
  [Alias('FullName')]
  [String]$File,

  [Parameter(Mandatory=$true,Position=1)]
  [String]$ZipFile,
  
  [Switch]$HideProgress,

  [Switch]$Force
  )
  begin {

      $ShellApplication = New-Object -ComObject Shell.Application
      if (-not (Test-Path $ZipFile)) {
        New-Zip $ZipFile
      }
      $Path = Resolve-Path $ZipFile
      $ZipPackage =$ShellApplication.Namespace("$Path")
    
  }
  process {

      $RealFile = Get-Item $File
      if (-not $RealFile) { return }    
      if (-not $hideProgress) {
        $perc +=5 
        if ($perc -gt 100) { $perc = 0 } 
        Write-Progress "Copying to $ZipFile" $RealFile.FullName -PercentComplete $perc
      }
      $Flags = 0
      if ($force) {
        $flags = 16 -bor 1024 -bor 64 -bor 512
      } 
      Write-Verbose $realFile.Fullname
      $ZipPackage.CopyHere($realFile.Fullname, $flags)
      Start-Sleep -Milliseconds 500
    
  }
}
Here is where I move the XML Files into the Zip file
I also call 4 other Lync Cmdlets
export-csconfiguration
export-cslisconfiguration
Get-CSVoicePolicy
Get-CSDialPlan

############ Loads funcion to Zip up XML files #############################

# Loads funcion to Zip up XML files
##		This script will purge old files, right now it is set for 10 days

$Now = Get-Date
$Days = "10"
$TargetFolder = "E:\masterbackup\Lync-Backups\BackupFiles\"
$Extension = "*.zip"
$LastWrite = $Now.AddDays(-$Days)
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
	    {
	    if ($File -ne $NULL)
	        {
	        Remove-Item $File.FullName | out-null
	        }
	    else
	        {
	        }
	    }
##		Create two Zip Files for backups
$filename = "E:\masterbackup\Lync-Backups\BackupFiles\{0:yyyy.MM.dd-HH.mm}-CSconfig.zip" -f (Get-Date)
$filename1 = "E:\masterbackup\Lync-Backups\BackupFiles\{0:yyyy.MM.dd-HH.mm}-LISconfig.zip" -f (Get-Date)
$filename2 = "E:\masterbackup\Lync-Backups\BackupFiles\{0:yyyy.MM.dd-HH.mm}-Rgsconfig.zip" -f (Get-Date)
$filename3 = "E:\masterbackup\Lync-Backups\BackupFiles\{0:yyyy.MM.dd-HH.mm}-CS.zip" -f (Get-Date)
##		Commands Run the Export Features
export-csconfiguration -Filename $filename -Force:$True
export-cslisconfiguration -Filename $filename1
#Export-CsRgsConfiguration  -Filename $filename2
Get-CSVoicePolicy | export-clixml –path E:\masterbackup\Lync-Backups\BackupFiles\VoicePolicy.xml
Get-CSDialPlan | export-clixml –path E:\masterbackup\Lync-Backups\BackupFiles\Dialplan.xml



##		Change Directories
Cd \
Cd \
cd E:
cd E:\masterbackup\Lync-Backups\BackupFiles
##		Create Zip file to move XML's
new-zip $filename3
PING 127.0.0.1 -n 10
dir .\DBImpExp.xml | copy-toZip -zipfile $filename3
PING 127.0.0.1 -n 10
dir .\VoicePolicy.xml | copy-toZip -zipfile $filename3
PING 127.0.0.1 -n 5
dir .\Dialplan.xml | copy-toZip -zipfile $filename3
PING 127.0.0.1 -n 5
Del *.xml




When the Runbook has completed you should have several Zip files you Configurations files.








Monday, January 13, 2014

Nagios & Ntop

Old Project:
Nagios Monitoring:


Below is a listing of Switch\Routers\AP's.
SNMP Traps Send status of devices



Diagram of how each device is connected to core Data Center.


Using MRTG you can chart usage.



 NTOP

network traffic probe, this was monitoring traffic on the MPLS between sites


With the monitoring you can filter bases on Port Traffic




Wednesday, January 8, 2014

DNS Failover Project

DNS Failover Project
Scope: One internet circuit fails dns records failover to back up circuit.
Technology IP anycast
Company DNS Made Easy

Summary;

Moved name servers for Contoso to DNS Made Easy. Configured DNS entries for failover between to IP Addresses.

Screenshot of DNS Failover Configuration. (Note company info has been changed.)

Test:
When Location 1 fails the following email is sent:
Notification: System is DOWN
IP: 8.8.8.8
System Desc: Test
Port: 80
Protocol: HTTP
2013-12-28 04:39:15.177 UTC
Previously failed: 7 times.
ID: 12124184
When the Location is has been restored the following email is sent:

Notification: System is UP
IP: 8.8.8.8
System Desc: Test
Port: 80
Protocol: HTTP
2013-12-28 04:39:15.177 UTC
Previously failed: 7 times.
ID: 12124184




Conclusion:
This Solution seems to be working fine for us, only issue we have seen is when the internet circuit flaps. To mitigate this we log into Easy DNS and disable the failover and disable the circuit on the firewall.

This scenario has only effected our production environment once since go live.






Friday, December 20, 2013

Set ACL on a folder

"Set ACL"
One of my Runbooks I create a home drive based on the location of the user and their name. I also set the ACL so they are the only ones with rights.

Screen shot of Runbook:




The DriveMap-Var build the drive mapping based on the location of the user. The VAR is taken from in Initialize Data. In my case
$locNLK ="\\nlkvflesvr04\NLK-Home"
$locBDU ="\\nlkvflesvr02\BDU-Home"
If ($location -eq "NLK"){
$loc = $locNLK
}


Once that is defined, I build the share name:

$homeDrive = "\`d.T.~Ed/{30B8BA77-3261-41F6-8EC5-F84511D45983}.loc\`d.T.~Ed/"
$username = "\`d.T.~Ed/{70D59E59-DB18-4D99-B7FE-FF591376E64C}.{F857D2AB-8976-40C1-B25A-6965985B8541}\`d.T.~Ed/"
$ShareName = "$homeDrive\$username"

I use the built in Create Folder in Orchestrator to create the users folder based on the $sharename.

Next I Set-ACL and the user is all set with a Home Drive.

Script: Set-ACL
$acl = get-acl "\`d.T.~Ed/{0FFE6E93-2182-4081-B0B3-7C9DD2B1F871}.Folder\`d.T.~Ed/"
$UserACL = "SCHOLLE\\`d.T.~Ed/{70D59E59-DB18-4D99-B7FE-FF591376E64C}.{F857D2AB-8976-40C1-B25A-6965985B8541}\`d.T.~Ed/"
$arguments = "$UserACL","Modify", "3", "None", "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $arguments
$acl.SetAccessRule($accessRule)
$acl | Set-Acl "\`d.T.~Ed/{0FFE6E93-2182-4081-B0B3-7C9DD2B1F871}.Folder\`d.T.~Ed/"

Thursday, December 19, 2013

On Battery Powershell Script


I have a laptop in a remote site that loses AC Power from time to time, I wrote the following script and added it to a schedule task to run every hour.

Main line of code is very simple:


Rest of the code is here, this is version 1, I plan on adding other monitoring.

$strComputer = "." 
$colItems = get-wmiobject -class "Win32_Battery" -namespace "root\CIMV2" -computername $strComputer 
$word1 = "Availability: "
$word2 = "Battery Recharge Time: "
$word3 = "Battery Status: "
$word4 = "Description: "
$word5 = "Estimated Charge Remaining: "
$word6 = "Estimated Run Time: "
$word7 = "Last Error Code: " 
$word8 = "Maximum Recharge Time: "
$word9 = "Status: " 
$word10 = "Time On Battery: " 
$word11 = "Time To Full Charge: " 
$br = "
" if ($colItems.Availability -eq "3") { foreach ($objItem in $colItems) { $Bat1 = $objItem.Availability $Bat2 = $objItem.BatteryRechargeTime $Bat3 = $objItem.BatteryStatus $Bat4 = $objItem.Description $Bat5 = $objItem.EstimatedChargeRemaining $Bat6 = $objItem.EstimatedRunTime $Bat7 = $objItem.LastErrorCode $Bat8 = $objItem.MaxRechargeTime $Bat9 = $objItem.Status $Bat10 = $objItem.TimeOnBattery $Bat11 = $objItem.TimeToFullCharge }} else {write-host "NO"} $word1 + $Bat1 + $br | out-file c:\temp\battery.txt $word2 + $Bat2 + $br | out-file c:\temp\battery.txt -Append $word3 + $Bat3 + $br | out-file c:\temp\battery.txt -Append $word4 + $Bat4 + $br | out-file c:\temp\battery.txt -Append $word5 + $Bat5 + $br | out-file c:\temp\battery.txt -Append $word6 + $Bat6 + $br | out-file c:\temp\battery.txt -Append $word7 + $Bat7 + $br | out-file c:\temp\battery.txt -Append $word8 + $Bat8 + $br | out-file c:\temp\battery.txt -Append $word9 + $Bat9 + $br | out-file c:\temp\battery.txt -Append $word10 + $Bat10 + $br | out-file c:\temp\battery.txt -Append $word11 + $Bat11 + $br | out-file c:\temp\battery.txt -Append Del c:\temp\battery.htm Rename-Item C:\temp\battery.txt battery.htm $EmailBody1= get-content "c:\temp\battery.htm" $SmtpClient = new-object system.net.mail.smtpClient $MailMessage = New-Object system.net.mail.mailmessage $SmtpClient.Host = "MBX01" $mailmessage.IsBodyHTML = $true $mailmessage.from = ("stein@olle.com") $mailmessage.To.add("stein@olle.com") $mailmessage.Subject = "Test HTML" $mailmessage.Body = $EmailBody1 $mailmessage.Headers.Add("message-id", "<3BD50098E401463AA228377848493927-1>") $smtpclient.Send($mailmessage)



Tuesday, December 17, 2013

System Center Orchestrator

Below is a layout for Notifying people based on location.



Check out the Powershell code here
                                https://github.com/stein97/Orchestrator/blob/master/notify.ps1                                                 

Thursday, September 10, 2009

Exchange Certificates

Need to Renew your Exchange Certificates?

Fast tutorial:

New-ExchangeCertificate -GenerateRequest:$true -Path c:\Exchange.req -DomainName sch-ca01,sch-ca02 -PrivateKeyExportable:$true -FriendlyName "Exchange Certificate" -IncludeAcceptedDomains:$false -Force:$true

Now Import it:
Import-ExchangeCertificate c:\exchange.cer

Now Enable it:
Enable-ExchangeCertificate -Thumbprint DFFA81EFC7650C536BD435D4EB406C0F8FE7B471 -Services "IMAP, POP, UM, IIS, SMTP"

Friday, May 15, 2009

Powershell with AD

Add user from the Mobile/On-Site to Wireless Access group with 1 line!!


Get-QADObject -SearchRoot 'whatever.com/chicago/Users/mobile user/on-site' | Add-QADGroupMember 'wireless access'


If you don't have the AD cmdlet go here!

Friday, June 27, 2008

E-mail when passwords are going to expire

$DateTime1 = Get-Date -format "MM-dd-yyyy"
$DateTime = Get-Date -format "yyyy-MM-dd HH.mm.ss"
$PasswordExpires7Days = "PasswordExpires7Days"+"$DateTime"+".txt"

## get the Domain Policy
## for the maximum password age
$dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$root = $dom.GetDirectoryEntry()

## get the account policy
$search = [System.DirectoryServices.DirectorySearcher]$root
$search.Filter = "(objectclass=domainDNS)"
$result = $search.FindOne()

## maximum password age
$t = New-Object System.TimeSpan([System.Math]::ABS($result.properties["maxpwdage"][0]))

##get -PasswordNeverExpires
##$p = Get-QADuser -PasswordNeverExpires $false

## want all accounts where password will expire in next 7 days
## ie password was set (max password age) - 7 days ago
$d = ($t.Days)* -1 ## max password age days ago
$d1 = $d +7 ## 7 days on from max password age
Start-Transcript -path "c:\PowerShell\$PasswordExpires7Days"
Get-QADUser -IncludeAllProperties | Where {($_.PwdLastSet -gt (Get-Date).AddDays($d)) -and ($_.PwdLastSet -lt (Get-Date).AddDays($d1) -and ($_.PasswordNeverExpires -eq $false))} | Sort-Object -Property pwdLastSet -Descending | format-table Name,PwdLastSet
stop-transcript


$EmailBody1= get-content "c:\PowerShell\$PasswordExpires7Days"
$EmailBody= "c:\PowerShell\$PasswordExpires7Days"

# when done, send us an email with the log text


$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$att = new-object system.Net.Mail.Attachment($EmailBody)
$SmtpClient.Host = "sch-ca01.yourdomain.com"
$mailmessage.from = ("someone@yourdomain.com")
$mailmessage.To.add("someone@yourdomain.com")
#$mailmessage.To.add("someone@yourdomain.com,someoneelse@yourdomain.com,someoneelse@yourdomain.com")
$mailmessage.Subject = "Passwords that are going to expire " + "$DateTime1"
$mailmessage.Body = $EmailBody1
$mailmessage.Headers.Add("message-id", "<3bd50098e401463aa228377848493927-1>")
$mailmessage.Attachments.Add($att)
$smtpclient.Send($mailmessage)

Get-MailboxStatistics

Mailbox Statistics for:
MB server
Storage Group
Mailbox database

get-mailbox -Database "sch-mb02\Level 1-MB02\Level 1-MB02" |
Get-MailboxStatistics |
Where {$_.TotalItemSize -gt 400MB} |
Sort-Object -Property TotalItemSize -Descending |
Format-Table DisplayName,TotalItemSize,ItemCount,StorageLimitStatus -auto

Get-MailboxStatistics

Mailbox Statistics for 1 mb server
Get-MailboxStatistics
-Server sch-mb02 |
Where {$_.TotalItemSize -gt 900MB} |
Sort-Object -Property TotalItemSize -Descending |
Format-Table DisplayName,TotalItemSize,ItemCount,StorageLimitStatus -auto |
out-file filesize.txt

Commands to Re-Seed SCR

Commands to Re-Seed SCR

Get-StorageGroupCopyStatus -Identity:sch-mb01\Prod-mb01 -StandbyMachine:wd-mb01 |ft -auto
Suspend-StorageGroupCopy -Identity:sch-mb01\Prod-mb01 -StandbyMachine:wd-mb01 |ft -auto
update-StorageGroupCopy -Identity:sch-mb01\Prod-mb01 -StandbyMachine:wd-mb01 |ft -auto
resume-StorageGroupCopy -Identity:sch-mb01\Prod-mb01 -StandbyMachine:wd-mb01 |ft -auto

SCR Test

SCR Test

Dismount-Database sch-mb01\Prod-mb01

Restore-StorageGroupCopy sch-mb01\Prod-mb01 -StandbyMachine wd-mb01

ESEUTIL /MH M:\prod-mb01\prod-mb01.edb

ESEUTIL /R E01 /l E:\prod-mb01 /S M:\prod-mb01 /a

Move-StorageGroupPath wd-mb01\SG1PORT -SystemFolderPath "C:\Program Files\Microsoft\Exchange Server\Mailbox\sg1Port" -LogFolderPath "E:\prod-mb01" –ConfigurationOnly

Move-DatabasePath wd-mb01\SG1PORT\MBX1PORT -EdbFilePath "M:\prod-mb01\prod-mb01.edb" –ConfigurationOnly

Set-MailboxDatabase wd-mb01\SG1PORT\MBX1PORT -AllowFileRestore:$true

Mount-Database wd-mb01\SG1PORT\MBX1PORT

Get-Mailbox -Database sch-mb01\Prod-mb01\Prod-mb01 |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Move-Mailbox -ConfigurationOnly -TargetDatabase wd-mb01\SG1PORT\MBX1PORT

Monday, March 3, 2008

Missing In Action!

Sorry I have been MIA...............

The wife anfd I just had Twins and they are awesome!!!!!



I will be posting more in the next month on basic admin scrips that I have been using.

Saturday, June 9, 2007

Set-Sendconnector

In my Exchange environment I have 2 SMTP Gateways. 1 Active 1 Passive.
I created 2 Send Connectors but I was unsure how to weight the 2.

Power Shell Command
The first command I used was :

set-sendconnector -id SMTPGT2 smtp:*;2


Which did not give me an error, and it did not change anything!

So I think the smtp:*;2 is considered a multi value string or something to that effect.
I put it in Quotes "" and it worked just fine.

set-sendconnector -id SMTPGT2 "smtp:*;2"

Here are the parameter for the AddressSpaces on a sendconnector.

This parameter is required unless this connector is linked to a Receive connector. If a linked Receive connector is specified by using the LinkedReceiveConnector parameter, the value of AddressSpaces must be $null. Otherwise, the AddressSpaces parameter specifies the domain names to which the Send connector sends messages. You may specify multiple address spaces by separating the address spaces with commas. The complete syntax for entering each address space is as follows:

<ConnectorScope>:<AddressSpaceType>:<AddressSpace>;<AddressSpaceCost>

  • ConnectorScope If you specify a value of Local, the connector can only be used by other Hub Transport servers that exist in the same Active Directory site as the source Hub Transport server on which you are running the New-SendConnector cmdlet. If you omit the ConnectorScope qualifier, the connector can be used by all Hub Transport servers that exist in the whole Exchange 2007 organization.
  • AddressSpaceType For SMTP address spaces, this value must be SMTP. For non-SMTP address spaces, this value may be any descriptive text string, such as "Lotus Notes".
  • AddressSpace For SMTP address spaces, the domain name system (DNS) wildcard character (*) as defined in RFC 1035 can be used. For example, you can use "*", "*.com.", or *.contoso.com". For non-SMTP address spaces, you can use wildcard characters (*) and other characters, such as "*contoso.com" or "@contoso".
  • AddressSpaceCost The valid input range for the cost is 1 to 100. A lower cost indicates a better route. This parameter is optional. If you omit the AddressSpaceCost qualifier when you enter an address space by using the complete syntax, a cost of 1 is assumed.

You only need to use the complete syntax for the AddressSpaces parameter for the following conditions:

  • Scoped connectors that have the Local qualifier
  • Non-SMTP address spaces
  • SMTP address spaces with a cost other than 1

If you enter a domain name or a comma separated list of domain names for the value of the AddressSpaces parameter, the address space type of SMTP and a cost of 1 is assumed for each domain name. Send connectors that are configured on Edge Transport servers only support SMTP address spaces. Send connectors that are configured on Hub Transport servers support SMTP and non-SMTP address spaces.

Wednesday, June 6, 2007

Calendars "Managing Resource"

Check out Nick’s Exchange and Scripting Blog, he has great Blog on Managing Resource Mailbox Calendars.



Monday, June 4, 2007

Can't Send an attachment over 10mb WHY!!??

Now we're on to Exchange 2007 settings:

Open a Power Shell Command:
Type in get-transportconfig | fl *
I have already set my transportconfig to 30mb
Here is what it shows me.

MaxReceiveSize : 30MB
MaxRecipientEnvelopeLimit : 31457280
MaxSendSize : 30MB

To change these setting use the following commands:

Set-transportconfig -MaxReceiveSize
MaxReceiveSize the default value is Unlimited. You can change it to what ever with an an MB following it
Set-transportconfig -MaxReceiveSize 30mb

Set-transportconfig -MaxRecipientEnvelopeLimit
The default size is Unlimited. The valid input range for this parameter is 0 to 2147483647.

Set-transportconfig -MaxSendSize
The default size is Unlimited. You can change it to what ever with an an MB following it

Next we need to look at the receive Connectors. Now we did change this in the ADSI Edit, but we need to make sure exchange 2007 took the setting correctly.

Use the following commands:
get-ReceiveConnector
This will list all of your ReceiveConnector.

Take the complete name and enter it into this command.

get-ReceiveConnector -Identity "Receive Connector name" | fl *
Then look for MaxMessageSize, mine was set for 30MB which is correct.

Do this for all of your Receive Connectors

Next we need to look at the Send Connectors. Now we did change this in the ADSI Edit, but we need to make sure exchange 2007 took the setting correctly.

Use the following commands:
get-SendConnector
This will list all of your SendConnector.

Take the complete name and enter it into this command.

get-SendConnector-Identity "Receive Connector name" | fl *
Then look for MaxMessageSize, mine was set for "Unlimited" which is correct.

Can't Send an attachment over 10mb WHY!!??

Go to your Domain Controller and open ADSI Edit change the Connection Setting / Naming Context to Configuration.

For incoming e-mail:
CN=Configuration\CN=Services\CN=Microsoft Exchange\
CN=\CN=Administrative Groups\CN=Exchange Administrative Group (FYDIBOHF23SPDLT)\CN=Servers\CN='server'\CN=Protocols\CN=SMTP Receive Connectors msExchSmtpReceiveMaxMessageSize 10485760
Here is the first spot, notice it set to 10mb also notice its in Bytes!

Next spot:
For outgoing e-mail:
CN=Configuration\CN=Services\CN=Microsoft Exchange\
CN=\CN=Administrative Groups\CN=Exchange Administrative Group(FYDIBOHF23SPDLT)\CN=Routing Groups\CN=Routing Group (DWBGZMFD01QNBJR)\CN=Connections
delivContLength 10240
Here is the second spot, notice it set to 10mb also notice its in kilobytes

Next Spot:

CN=Configuration\CN=Services\CN=Microsoft Exchange\
CN=\CN=Global Settings\CN=Message Delivery <--Right Click Properties.

Look for the following:
delivContLength this value is in kilobytes change it
SubmissionContLength this value is in bytes change it
msExchRecipLimit this value is in kilobytes change it

Now we're on to Exchange 2007 settings:

Thursday, May 31, 2007

Can't Send an attachment over 10mb WHY!!??

The other day I was trying to send an attachment that was 12mb. I got an error 0x80040610.

My ReceiveConnector and SendConnector was set for Unlimited.

Where was the issue!!!

The issue was with my Active Directory! It seems there is a known issue with New and Upgraded installs of Exchange 2007.

Here are the Global Limits:
Active Directory
delivContLength
10240 KB for the following circumstances:

* Exchange 2007 was the first Exchange server installed in the organization.
* The organization was upgraded from Exchange 2003 to Exchange 2007, and the value of the global Incoming message size limit was set to No Limit.

If the organization was upgraded from Exchange 2003, and a specific value was set for Incoming message size, that value is preserved after the upgrade to Exchange 2007.
submissionContLength
10240 KB for the following circumstances:

* Exchange 2007 was the first Exchange server installed in the organization.
* The organization was upgraded from Exchange 2003 to Exchange 2007, and the value of the global Outgoing message size limit was set to No Limit.

If the organization was upgraded from Exchange 2003, and a specific value was set for Incoming message size, that value is preserved after the upgrade to Exchange 2007

msExchRecipLimit
5000 for the following circumstances:

* Exchange 2007 was the first Exchange server installed in the organization.
* The organization was upgraded from Exchange 2003 to Exchange 2007, and the value of the global Maximum number of recipients limit was set to No Limit.

If the organization was upgraded from Exchange 2003, and a specific value was set for Maximum number of recipients, that value is preserved after the upgrade to Exchange 2007.
So with that explained where do you change these settings?! See Next Post!

Wednesday, May 30, 2007

power shell commands to live by!

So you want to access someone mail file!

ADD-MailboxPermission -Identity "mailbox you want access to" -User "your id" -Accessright FullAccess -InheritanceType all


Done! You have 100% access