Frequently used cmdlets

Exchange Server administration forum
Post Reply
ManU
Founder
Founder
Posts: 98
Joined: Sat Sep 26, 2009 9:57 am
Location: India
Contact:

Frequently used cmdlets

Post by ManU » Tue Jun 14, 2011 5:19 pm

Hi,

I am hereby updating the cmdlets developed and used for various purposes. I hope to update this thread daily so that everybody have a look for most needy cmdlets.

1. Set-ExecutionPolicy

Enables you to determine which of the following four Windows PowerShell scripts run on your computer

When you first get started with PowerShell, don’t forget to run ‘Set-ExecutionPolicy RemoteSigned’ from the PowerShell prompt. If you try to run a script without doing that first, expect to see a message like the following:

Code: Select all

File <path to file> cannot be loaded because execution of scripts is disabled on this system.  Please see “get-help about_signing” for more details
Restricted - No scripts can be run. Windows PowerShell can be used only in interactive mode.
AllSigned - Only scripts signed by a trusted publisher can be run.
RemoteSigned - Downloaded scripts must be signed by a trusted publisher before they can be run.
Unrestricted - No restrictions; all Windows PowerShell scripts can be run.

Example:Set-ExecutionPolicy RemoteSigned
This command sets the execution policy to RemoteSigned

2. Find mailbox size of all members in a distribution group
Get-DistributionGroupMember "Group Name" | foreach {Get-MailboxStatistics $_.Name} | select DisplayName,TotalItemSize, database | export-csv c:\temp\test.csv

3. Get-ExchangeCertificate
Use the Get-ExchangeCertificate cmdlet to view certificates in the local certificate store.

Example: Get-ExchangeCertificate
This example returns the properties of a specified certificate in a formatted list.

4. Remove-ExchangeCertificate

This cmdlet is used to remove a certificate from the Exchange environment

Example: Remove-ExchangeCertificate -thumbprint "%THUMBPRINT%"

Removes a certificate with thumbprint named %THUMBPRINT%

5. test-edgesynchronisation

Use the Test-EdgeSynchronization cmdlet to diagnose whether the subscribed Edge Transport servers have a current and accurate synchronization status.

Example: test-edgesynchronisation
This verifies syncronization status of Edge Server with Hub Server

Test-EdgeSynchronization -VerifyRecipient manu@windowsadmin.info
This verifies the synchronization status of the single recipient manu@windowsadmin.info

6. List all disconnected mailboxes
To list all disconnected mailboxes in Exchange Management Shell with Display Name and GUID, run the following cmdlet:

Get-MailboxStatistics | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid

7. Mailbox Statistics as a report

The following cmdlet gives a csv file with the following details
AssociatedItemCount,DeletedItemCount,DisconnectDate,DisplayName,ItemCount,LastLoggedOnUserAccount,LastLogoffTime,LastLogonTime,LegacyDN,MailboxGuid,ObjectClass,StorageLimitStatus,TotalDeletedItemSize,TotalItemSize,Database,ServerName,StorageGroupName,DatabaseName,Identity,IsValid,OriginatingServer

get-mailbox | get-mailboxstatistics | export-csv -path c:\exchangestatistics.csv

Note:By default only the first 1000 items are returned. To change the number of items returned, specify the parameter "-ResultSize". To return all items specify "-ResultSize Unlimited"
If there is no data associated with mailboxes included, that will be displayed as warnings.

8. Mailbox size report

The following cmdlet gives a csv file with the following details:
DisplayName,TotalItemSize,StorageLimitStatus,LastLogonTime

get-mailbox | get-mailboxstatistics | select-object DisplayName,TotalItemSize,StorageLimitStatus,LastLogonTime | export-csv -path c:\userstatistics.csv

Note: The notes are as above for 7

9. Bulk user import
The following cmdlets can be used in Exchange2010 for a bulk user import from a csv file:

Import-CSV C:\users.csv | ForEach-Object -Process {New-Mailbox -Name $_.Name -FirstName $_.FirstName -LastName $_.LastName -OrganizationalUnit $_.OU -UserPrincipalName $_.UPN -Alias $_.alias -Database "Name of database" -Password $Password}

Import-CSV C:\users.csv | ForEach-Object -Process {New-Mailbox -Name $_.Name -FirstName $_.FirstName -LastName $_.LastName -OrganizationalUnit $_.OU -UserPrincipalName $_.UPN -Alias $_.alias -Database "Name of database" -Password (ConvertTo-SecureString $_.password -AsPlainText -Force)}
Thanks
MANU PHILIP
Microsoft MVP(Exchange Server)
| MCITP | MCTS | MCSA | ITIL V3 |
TechNet Forums Profile: ManU

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests