Quantcast
Channel: Tech Support
Viewing all 880 articles
Browse latest View live

Installing and Configuring Citrix XenApp/XenDesktop 7.6 (Part 4)

$
0
0

In this part we will continue with the basic configuration, starting with creating a Delivery Group.


If you would like to read the other parts in this article series please go to :

 

Introduction

In the third part of this series we started with the installation of the VDA component. The machines running this VDA component are the actual machines the user will execute their (daily) tasks on. After the VDA installation part, we started with the basic configuration of a XenDesktop site by configuring a Machine Catalog.

Creating a Delivery Group

When a Machine Group is available it is possible to create a Delivery Group. A Delivery Group is a collection of Desktops and/or Applications, which can be used on the machines added to the Delivery Group out of a Machine Catalog. Just as with the Machine Group you can use the option within the actions pane or the right mouse button menu.

 Figure 1: Create a Delivery Group

The wizard also starts with an explanation of the Delivery Group option, you can check the option 'Don’t show this again' so that his information is not shown next time.

 Figure 2: Getting started with Delivery Groups

The first step is to select the Machine Catalog that will be used for this Delivery Group. All available Machine Catalogs will be shown and you select which one you would like to use. Next you need to provide the amount of machines from the Machine Catalog that will be added to this Delivery Group. I advise to assign all machines in the Machine Catalog to one Delivery Group to keep the infrastructure simple and understandable.

 Figure 3: Assigning a Machine Catalog to a Delivery Group

Secondly we need to select if this Delivery Group will be used to provide Desktops, Applications or both.

 Figure 4: Delivery Group Delivery Type

The next step is to assign users to this Delivery Group. Those users will be able to access the selected delivery types. During this installation wizard the users will be added to all selected Applications. Later on, you can change this assignment. In this window we also see one of the new options in XenDesktop 7.6: the possibility to allow access to anonymous users to the Delivery Group (as mentioned you also need to configure your StoreFront correctly for this feature).

 Figure 5: Assigning users to the Delivery Group

When you have selected Applications during the Delivery Type the next step is to select which applications should be published. The wizard tries to determine which applications are available, but you can provide an application manually. When you have App-V Publishing configured, App-V packages can also be selected (I will discuss the App-V Publishing later in this article series).

 Figure 6: Selecting applications for publishing

When you are using silos (nowadays different Delivery Groups) you can configure a StoreFront Store, this Store will be configured within the Receiver on the machines in the Machine Catalog automatically. 

 Figure 7: Configure StoreFront automatically within Receiver

The last step is to provide a Delivery Group Name, Display Name and a Delivery Group description (optional). The Display Name is shown to the end user, while the Deliver Group Name is used for the administrator view within the Studio Console.

 Figure 8: Delivery Group Summary

The wizard will create the Delivery Group and when this process is finished the Delivery Group will be shown within the Studio Console. Within the console additional settings can be configured on the Delivery Group. You need to select the Delivery Group and select Edit Delivery Group (available in the Actions pane or again the right mouse button menu).

 Figure 9: Edit Delivery Group

Within the Edit window several new options are available and logically also settings that we already configured during the wizard.

For example, Users and Delivery Type were already showing in the wizard. Out of this configuration screen you can change the users or the Delivery Type. From the Delivery Type you can also change the Display Name (for the end-users) of the Delivery Group. A new configurable option is Application Prelaunch, which was not shown in the previous wizard. This is a new functionality in XenDesktop 7.6, which was also available in XenApp 6.5. With Prelaunch, a session is alreadystarted for the user, while the user did not select any applications. When the user selects an application later, from an end-user perspective, the application starts directly.

By default Prelaunch is not configured, here you can change that behavior. I must say that I really like the implementation of this feature. You can configure it for all users configured to the Delivery Group or a specific group (of users). You can also specify the time a session will stay active when pre-launched. By default it’s configured for 2 hours, personally I think that is a pretty long period. Optionally you can also specify additional rules to end the prelaunched (unused) session if the load on the machine is getting too high.

 Figure 10: Configure Application Prelaunch

The same applies to Application Lingering. This is also a new feature in XenDesktop 7.6, which was also available in XenApp 6.5. With Session Linger the session of the user won’t be closed directly when the user closes the application on the machine. In the case of using Published Application the user does not have to wait to create a full new session when switching between Published Applications. Just like the Application Prelaunch the option is disabled by default. When you enable Application Lingering you can specify the time interval the session should be kept alive. Again the default time interval is pretty long (8 hours). The session can also be closed by specifying maximum load values allowed, before lingered session will be shutdown.

 Figure 11: Configure Application Lingering

The next option is called User Settings. Here you can edit/set-up the description of the Delivery Group, but also other settings we could not configure during the wizard like the amount of Desktops available per user and securing the ICA traffic.

 Figure 12: User Settings

The StoreFront tab shows the same options as during the Delivery Group creation wizard, while Access Policy offers new settings. Within Access Policy you can configure how the Delivery Group may be accessed. Only via the Citrix NetScaler Gateway or also other possibilities like directly through Citrix StoreFront.

 Figure 13: User Settings

The last configurable item is configuring a Restart Schedule. You can create a pretty flexible reboot schema based on a start time and an interval time. You can send users a message that the machine will be restarted within the specified timeframe.

 Figure 14: Restart Schedule

On the Applications tab of the delivery group (available when you selected as Delivery Type Applications or Desktops and Applications). Out of the Actions pane you can add additional applications to the Delivery Group. Also just like the Delivery Group per Application, you can configure additional options via the properties of the application.

 Figure 15: Application view within the Delivery Group

Within the first configurable item called Identification we can change the Application Name (both from an end-user or administrator perspective). Here we can also add a description or keywords. Those keywords are useful when connecting via StoreFront and users can search for applications.

 Figure 16: Application view within the Delivery Group

Within Delivery the application icon can be changed, an optional application category can be filled in and we can add a shortcut to the user’s desktop.

 Figure 17: Delivery application properties

At the location tab we can specify the exact location of the application including the command line argument and working directory.

 Figure 18: Application Location configuration

Already discussed during the Delivery Group Wizard, by default the Published Applications are assigned to the user group selected during the wizard. Happily Citrix currently offers the option to assign an application to a specific group or users. This can be done in the Limit Visibility part, where you can configure which user could use this application.

 Figure 19: Application Location configuration

The last configurable option is the File Type Associations. Here you can configure which file type extensions should be configured for the Published Application.

 Figure 20

We have now configured the Delivered Group completely. It is now possible for a user to connect to the XenDesktop infrastructure and can start a Desktop and/or Published Applications.

 

Summary

In this part we configured a Delivery Group and discussed the setting which can be configured. With the creation of the Delivery Group the XenDesktop infrastructure can be used by the end-user to start a Desktop or Applications. In the next part we will start with showing users starting a Desktop or Application on the XenDesktop infrastructure followed by some advanced configuration options of the XenDesktop Infrastructure.

If you would like to read the other parts in this article series please go to :




Installing and Configuring Citrix XenApp/XenDesktop 7.6 (Part 5)

$
0
0

In this final article in this series we will look at some advanced configuration options of the XenDesktop Infrastructure.


If you would like to read the other parts in this article series please go to :

 

Introduction

In part four we configured a Delivery Group and discussed the setting which can be configured. With the creation of the Delivery Group, the XenDesktop infrastructure can be used by the end-user to start a Desktop or Applications. We will start with showing users starting a Desktop or Application on the XenDesktop infrastructure in this part. We will also go through some more advanced configuration options of the XenDesktop Infrastructure.

Connecting to the XenDesktop Infrastructure

In the previous articles we configured XenDesktop in such a way that it’s ready to allow users to start-up a session on the VDA. Connections are set-up via the Citrix StoreFront component. This can be done by configuring the Citrix Receiver to contact the StoreFront server or entering the URL of the Receiver for Web. For this article I’m using the last option, so I open a browser and enter the URL. A page will be shown where you need to enter the credentials and password.

 Figure 1: The start site of the Receiver for Web connection option

After logging on, the user will be presented with the Desktop and/or Published Applications which were assigned to his account. When the user has a Desktop assigned to his account, an icon on the Desktop tab will be shown (by default this is shown first, but this can be adjusted in the StoreFront configuration).

 Figure 2: Desktop tab of the Receiver for Web

When the user has (also) Applications assigned, those will be shown on the App tab. Different from the Desktop tab the icon(s) are not shown directly. The user (by default) needs to add the application to this tab. The user needs to choose the + sign at the left part of the site.

 Figure 3: Apps tab of Receiver for Web

After choosing the plus sign a new pane is shown, where the user can select the applications he would like to be shown on the Apps tab so he can start those applications.

 Figure 4: Selecting applications to be shown on the Apps tab.

By clicking the icon on the Desktop of the Application the session will be set-up. In figure 5 you will see the full Desktop of the end-user connected.

 Figure 5: Citrix XenDesktop desktop session

While we have a user connected to our XenDesktop infrastructure, the basic installation and configuration is finished. It’s out of scope of this article to describe all the possible configurations options in a real detailed level, however I would like to go one step further than the basic configuration we have done up till now to touch some additional configuration steps.

 

Citrix Policies

Since XenApp 6.x you can configure Citrix policies via two methodologies and these options are still available in XenDesktop 7.x. You can configure policies via the management console or via Group Policy Object in Active Directory. Again there is no good or bad way; it depends on the infrastructure and the organization which makes more sense. The settings are exactly the same and also the way they are applied is the same. Settings are available in two flavors: user settings and machine settings. 

In previous version those were shown separately, however in XenDesktop 7.6 they are both shown and you define later if only one flavor should be applied. I see both advantages (you are not searching between the two policy flavors for a specific setting) as disadvantages (configuring the filters for the policies will need more attention). One last tip is to only select the version and VDA type you have in your environment, so not applying policies are not shown anymore. As mentioned earlier it’s too much to discuss the policies in more depth. If this is of interest to you let us know so we can write an article about policies as I did in the past for one the previous Citrix products.

 Figure 6: Citrix XenDesktop policies

 

Logging

In XenApp 6.x version logging was introduced. In those versions the option was disabled and you need toed enable and configure it manually. In XenDesktop 7.x the option is enabled by default. However you may want to adjust the default configuration. This can be done on the Logging component in the Studio Console like changing the database (specify a specific logging database), the actions which can be executed when the database is not available or completely disable logging. In the same windows the logged actions are shown and reports can be created.

 Figure 7: Citrix Logging

 

Delegation of Control

Citrix products are well known of their advanced delegation of control. XenDesktop 7.6 shows that this it still the case. Within the product, already 6 different roles are created but you can add additional roles. The role can be fully adjusted to your organization needs. Secondly you can create scopes. Per scope you can configure which Machine Catalogs and/or Delivery Groups belong to this scope. Via scopes you can divide the XenDesktop infrastructure in multiple instances for administration purposes. The roles and scope come together at the administrator tab. Here you specify which AD user or group will be assigned to which scope with which role. In other words you can really create a very detailed delegation of control within XenDesktop.

 Figure 8: Citrix XenDesktop Delegation of Control

 

Controllers

In this part of the Studio console you can check if the Controllers are updated and in the case a controller has failed you can remove the Delivery Controller out of the XenDesktop database.

 Figure 9: Citrix XenDesktop Controllers

 

Hosting

Within Hosting you can configure your hypervisor platform. In most cases you will configure this component when you are using the Machine Creation Services (MCS) feature. MSC uses the information specified at this component to create and maintain the virtual machines. XenDesktop support all important hypervisor platforms including the corresponding management tooling. Logically you need to specify a user account that has the required permissions to execute the actions on the hypervisor layer and you need to specify the corresponding network and storage requirements.

It will also be used if you enable Power Management options within the Citrix Policies. If you don’t use MCS or Power Management you do not need to configure this component even if your environment is running on a virtualized infrastructure. For example when using PVS (Provisioning Services) and do not want Power Management you can leave this part empty.

 Figure 10: Citrix XenDesktop Hosting

 

Licensing

The Citrix Licensing component is a separate installation. As mentioned in the first part you can install this also on a Delivery Controller. Whether you have installed it separately or on the same server in previous (XenApp) versions you need to start the specific Citrix License Server console to see licensing information. In XenDesktop 7 this kind of information is also shown in the Studio Console. You can also add licensing, change the license server or change the product version out of this part. I personally really like that this information is shown in the same console.

 Figure 11: Citrix XenDesktop Licensing

 

StoreFront

Maybe you would expect that at this part you can configure the StoreFront configuration, but you should use the StoreFront Console for this. Within the Citrix Studio console you can “only” specify StoreFront Stores. The configured Store can be used to assign to a Delivery Group. At this Delivery Group the Citrix Receiver will automatically be configured based on the selected StoreFront URL. The actual StoreFront URL is stored within the StoreFront component. Assigning a StoreFront URL is useful in scenarios where there are more Machine Groups or an old environment which host another (set of) application(s).

 

App-V Publishing

 Figure 12: Citrix XenDesktop App-V Publishing

The last component in the Studio Console is App-V Publishing. I already touched it quickly earlier. Here you can specify your App-V infrastructure (Management and Publishing server). If you have configured your App-V infrastructure, XenDesktop can contact the App-V infrastructure to automatically create Published Applications based on App-V 5 packages. If using Published Applications in combination with App-V this is a real nice feature. It does not configure an App-V client installed in the XenDesktop VDAs, this needs to be done via the App-V 5 PowerShell scripts.

 Figure 13: Adding App-V applications using App-V Publishing

 

Citrix Director

For those that are familiar with earlier releases of XenApp, notice that the Citrix Studio console does not contain any administration actions (think of user sessions, remote assistance and so on). For this kind of task Citrix created the Citrix Director. The Citrix Directory is based on a website, so you don’t need to install a client to use this. Just type the URL http://FQDN/Directory into a browser. After entering the user information the daily activities can be executed out of this console. On the Citrix blog a very good article series about the Directory is published, so please check that article series for all the details about Citrix Directory.
 Figure 14: Citrix Directory

 

Conclusion

With this fifth part we are finalizing the article series about Installing and Configuring XenApp 7.6. We started a session as a user to show that the basic configuration was completed. Secondly we briefly touched some more advanced configuration options available within XenDesktop. Some of those configuration options can be discussed in much more detail, but that was the scope of this article series. If you are interested in more detailed information let us know, so we know what interests you to write more in-depth articles about XenDesktop.

If you would like to read the other parts in this article series please go to :



Hyper-V Host Properties in SCVMM 2012 R2

$
0
0
In this article, we are going to take a close look at all the configuration tabs that are available on the property page of a virtualization host.

SCVMM is a complex product, but it provides the capabilities to manage entire virtualization stack of an organization. SCVMM can manage Hyper-V, ESXi, and Citrix XenServers. SCVMM provides host groups as a basic management unit for resources such as network and storage. You can also configure placement rules, dynamic optimization settings on the property page of a VMM host group.

When you add virtualization hosts under VMM management, VMM agent collects all the settings that are configured on the virtualization hosts and helps you configure or maintain the settings from the central VMM management console. In other words, VMM allows you to configure virtualization hosts via VMM by means of the configuration tabs that are available on the property page of a virtualization host. By just looking at the configuration tabs, a virtual administrator can always get an idea as to what these configuration tabs are all about. However, by just looking at the configuration tabs is not going to help you unless you know how this information is useful to you before performing an action or configuring a feature.

Hyper-V Host Properties in SCVMM 2012 R2 (Part1)


There are several configuration tabs available such as General, Status, Hardware, Host Access, Virtual Machine Paths, Reserves, Storage, Virtual Switches, Migration Settings, Placement Paths, Servicing Windows, and Custom Properties as shown in the screenshot below. In this article, we are going to take a close look at General, Status, and Hardware tabs.

 Figure 1

Some configuration tabs contain the information that might be helpful in some cases. For example, the General tab contains the system information associated with the virtualization host. By just looking at the General Tab, you'll know the Operating System that is installed on the Hyper-V host, VMM Agent version, total memory assigned to virtualization host and available memory. Let’s take a look at all items one by one that are available on the General Tab:
  • Domain: It shows the domain name to which this Hyper-V host is joined to.
  • SMBIOS ID: This is the unique ID that is discovered from the Hyper-V host and used by VMM when performing a bare-metal deployment.
  • Description: In case you need to type a short description for identification purpose, you can do so by typing some text in the Description text box as shown in the screenshot above.
  • Storage: Shows the total capacity and available storage on the Hyper-V host.
  • Virtualization Software: Shows the virtualization software running on the destination virtualization host.
  • VMM Agent: It is important to note that VMM does not notify you if a Hyper-V host is running an outdated version of the VMM agent. However, since General Tab shows the VMM Agent version that is running on the Hyper-V host, by just looking at the General Tab, you'll know if the current Hyper-V host requires an updated version of the VMM Agent. You can also design a PowerShell script that can help you get VMM Agent versions on all managed Hyper-V hosts.
  • Last Update: Shows the last date when the VMM agent was updated on the Hyper-V host.
In case a VMM or Hyper-V related component is not working on the destination Hyper-V host, you are going to take a look at the Status Tab. Status Tab, that is the next tab, shows the overall status of Hyper-V and VMM related components running on the destination Hyper-V host as shown in the screenshot below.

 Figure 2
 
As you can see in the above screenshot, the Status Tab shows the overall status of all the components. It also shows the status of each sub-item such as WinRM component on Hyper-V host, VMM agent service status, VMM agent version and WMI performance counter. Note that there are two buttons available on the Status Tab; “Repair All” and “Refresh”. 

If Hyper-V host is experiencing any issues or not able to communicate to the VMM Management Server, you can always use the “Repair All” button that might be able to rectify known issues on the destination Hyper-V host. Clicking on “Refresh” button will help you get current status for each item. If overall status shows “Critical”, it is always a good practice to repair the items by clicking the “Repair All” button. In case “Repair All” button does not solve the issues, consider rejoining Hyper-V host to VMM.

The equivalent PowerShell cmdlet for “Repair All” button is Repair-SCVMHost. For example, to execute repair function from a command line for a Hyper-V host, use the below PowerShell commands on the VMM Management Server:
  • $RunAsAccount = Get-SCRunAsAccount –Name “Hyper-VAccount”
  • Get-SCVMHost –ComputerName “Hyper-VHost1” | Repair-SCVMHost –Credential $RunAsAccount
There are two commands that you need to run one by one in the PowerShell command window. First command gathers the credentials for Run As Account and second command executes the repair function on Hyper-V host specified after “-ComputerName” parameter using the credentials that you specified in the first command.
Next tab that is available on the property page of a Hyper-V host is Hardware as shown in the screenshot below:

 Figure 3
 
Hardware Tab shows the hardware related information for the destination Hyper-V host such as CPU, memory configured on the Hyper-V host, local storage, network adapters configured, etc. As you can see in the screenshot above, when clicking on the CPU, it shows the CPU related information for the destination Hyper-V host. This Hyper-V host has four logical CPU processors, CPU speed is 2.59 GHz and manufacturer is Intel.
  • CPU Supports SLAT: The information that is provided on the hardware tab is useful in some cases. For example, before using SR-IOV feature of Hyper-V, the destination Hyper-V hardware must support Second Level Address Translation (SLAT). This is one of the requirements that must be met before using SR-IOV feature. This information is very much available on the hardware tab as shown in the red circle of the above screenshot. Therefore, before configuring the virtual machine to use SR-IOV feature, take a look at the “CPU supports SLAT” row.
  • Enabling/Disabling NUMA: On the hardware tab, you also have an option to enable/disable NUMA for virtual machines. It is important to note that by default, Windows Server 2012 Hyper-V and later hosts enable NUMA spanning which, in turn, allows virtual machines to access and use memory across NUMA nodes. Whether to enable or disable NUMA spanning on a destination Hyper-V host must be considered by assessing the impact on virtual machines. Note that enabling NUMA spanning on a destination Hyper-V host will result in poor performance or virtual machine may not start if the required memory is not available in a NUMA node. As a best practice, it is recommended that you disable the NUMA spanning on destination Hyper-V hosts and enable it only if you think virtual machines will not suffer from any performance issues.

Summary

In this article, we looked at the General, Status and Hardware configuration tabs that are available on the property page of a Hyper-V host in VMM and the information that can be useful before you configure any feature. For example, hardware tab provides you necessary information before enabling SR-IOV for virtual machines. At the same tab, you can also enable/disable NUMA for Hyper-V host and use of “Repair All” button located on the Status tab helps you repair any VMM related components on the destination Hyper-V hosts.

In the second part, we will continue to look at other configuration items available on the Hardware tab.


Hyper-V Host Properties in SCVMM 2012 R2 (Part2)

In this part of the article series, we will continue from part one and explain other items that are available on the Hardware tab, but our focus is geared primarily towards storage devices attached to a Hyper-V host.

There are several configuration tabs available on the property page of a Hyper-V host in VMM. In the first part of this article series, we explained the items that are available on the Status and General Tabs. We also explained a few items that are available on the Hardware tab such as processor details, if processor supports SLAT or not, and configuring NUMA for a Hyper-V host.

When you add a Hyper-V host under VMM management, VMM Agent collects all settings configured on the Hyper-V host, including local and remote storage devices attached to a Hyper-V host. VMM Agent also collects volumes configured on the Hyper-V host. Clicking the Hardware tab and expanding the “Storage” section will provide you the list of volumes that have been created on the Hyper-V host as shown in the figure 1.0 below:


 Figure 1.0: Storage Section on Hardware Tab

As you can see in the above screenshot, there are three volumes configured on the Hyper-V host; C:\ and E:\ and F:\. When you click on each drive letter, you will see volume label, total and available storage on the volume. It is important to note that by just looking at the “Storage” section, you cannot know if the volume is created from a local storage such as local disk connected to the Hyper-V host or from a LUN allocated from block-based storage such as Fibre Channel, iSCSI or Serial Attached SCSI (SAS).

 

How can I differentiate between Local and Remote Storage?

SCVMM does a great job in differentiating between local and remote storage. In case you need to see whether the volumes created on a Hyper-V host are from local or remote storage, you are going to look at the Storage Tab as shown in the figure 1.1 below:

 Figure 1.1: Disk Section on Storage Tab

When a Hyper-V host is added under VMM management, VMM Agent collects the volumes configured on the Hyper-V and then takes the following actions:
  • All volumes created from a directly connected disk are added to “Local Storage” classification.
  • All volumes created from block-based storage are added under “Remote Storage” classification.
As you can see in the above screenshot, PHYSICALDRIVE0 disk is added under the “Local Storage” classification. It is because volume C:\ is created from a local disk attached to the Hyper-V host. Figure 1.2 below shows that PHYSICALDRIVE1 is added under the “Remote Storage” classification. This is because volume E:\ is created from a block-based storage device.

 Figure 1.2: Disk Section on Storage Tab

There are other ways to differentiate between Local and Remote storage. You can also check Logical Unit ID of a disk. For a disk that is coming from a block-based storage will always have a unique GUID as shown in the screenshot above.

While the information provided on total capacity and available storage for each drive is useful, there is one setting that you would always want to pay attention to. The option “Available for placement”, as indicated in the red square in figure 1.0 above, is used by VMM to gather the list of storage devices that will be available for placing virtual machine files. When you deploy a virtual machine on a Hyper-V host via VMM, the Intelligent Placement feature of VMM will gather the list of storage devices available for placing the virtual machine. If VMM does not find any available storage for placing virtual machine files, you will receive an error message as shown in the figure 1.3 below.


Do I need to check “Available for Placement” option for Local Storage?

By default, local storage devices will be available for placement. In other words, “Available for Placement” option is ticked for local storage. When deciding whether to check “Available for Placement” option for local storage or not, the only thing you need to keep in mind is that if workloads require high availability, you should select remote storage or shared storage. There is no point in making local storage available for virtual machine placements if all of your workloads require high availability, but nothing is stopping you from selecting “Available for Placement” option for local drives. It completely depends on your environment. If you need to store a virtual machine on local drives on a Hyper-V host, check “Available for Placement” option for local drives also.

VMM will show you drives that are available for placement when you click Browse button to select a drive for placing the virtual machine as shown in the screenshot below.

 Figure 1.4

 

Summary

In this article we explained the Storage section that is available on the Hardware Tab of a Hyper-V host. Expanding the storage section will show you all volumes that are configured on the Hyper-V host. When you click on a volume, you will see volume label, total and available storage on the volume. By looking at the Storage Tab, you can identify if the storage allocated to Hyper-V host is from local disks attached to the Hyper-V host or block-based storage such as Fibre Channel, iSCSI or Serial Attached SCSI (SAS).

Available for Placement” option that is available for every volume of Hyper-V host helps you block/unblock deployment of virtual machines to specific volumes. In case a volume is not available for the placement, Intelligent Placement of VMM will show an error when you try to deploy a virtual machine.
In the next part of this article series, we will focus on the Network Adapters section found on the Hardware Tab.

Hyper-V Host Properties in SCVMM 2012 R2 (Part3)


In this aritcle we will continue to explain other items that are available on the Hardware tab, but our focus is geared primarily towards network adapters attached to a Hyper-V host.

There are several configuration tabs available on the property page of a Hyper-V host in VMM. In the first part of this article series, we explained the items that are available on the Status and General Tabs. We also explained a few items that are available on the Hardware tab such as processor details, whether the processor supports SLAT or not, and configuring NUMA for a Hyper-V host. In the second part, we explained items available on the Storage tab.

As stated earlier, when adding Hyper-V hosts under VMM management, the VMM agent collects all the configuration settings from the Hyper-V host. This also includes physical network adapters that are attached to the Hyper-V host as shown in the figure 1.0 below.


 Figure 1.0: Network Card Property on Hardware Tab – Network Adapter Details

When you click on any of the physical network adapters, you will see the status of the physical network adapter, MAC Address, whether the network adapter is configured to receive TCP/IP settings from a DHCP server or not, and IP addresses assigned to the network adapters.

 

Configuring “Available for Placement” and “Used by Management” Options

There are two settings you can configure for each network adapter; “Available for Placement” and “Used by Management” as shown in the red square of the screenshot above. “Available for Placement” option, when checked, indicates that this network adapter is available for placement and can be used by VMM when implementing a Hyper-V cluster via VMM. “Used by Management” option, when checked, allows Hyper-V to use the network adapter for management traffic.

As part of Hyper-V deployment best practices, it is always recommended to keep management traffic separate from the virtual machine traffic. Considering this best practice item, each Hyper-V host should have at least two physical network adapters. One network adapter can be used for virtual machine traffic and the other network adapter can be used for management traffic. When configuring network adapters for destination Hyper-V host via VMM, ensure that you uncheck “Used by Management” option for the network adapter that you want to make available only for virtual machine communications. For the second network adapter that you want to make available for virtual machine management traffic, you must check “Used by Management” option.

Tip:
It is recommended that you enter the descriptive text in the description box for each network adapter. It helps you identify the role of a network adapter. For example, you can type “Management traffic” or “Virtual Machine traffic” in the description box.

For each network adapter, you can also configure Logical Network Connectivity and Switch Ports as shown in the figure 1.1 below.
 Figure 1.1: Network Card Property on Hardware Tab – Logical Network Connectivity

In Logical Network Connectivity, you will see the list of logical switches that this network adapter is connected to. Note that when you add Hyper-V hosts under VMM management, all Hyper-V external switches that are created on the destination Hyper-V host will be linked to the corresponding physical network adapter. As you can see in the above list, VMSwitchA is an external Hyper-V switch that was added and linked to the first physical network adapter.


Disabling Automatic Creation of Logical Networks

In case the network adapter is not associated with a logical network, a new one will be created by VMM. The automatic creation and association of Hyper-V virtual switches can be disabled by configuring the Global Network Settings in VMM. In case you do not want VMM to create logical networks automatically when you add a Hyper-V host under VMM management, uncheck “Create logical networks automatically” option as shown in the red square of the figure 1.2 below.

 Figure 1.2: Disabling Automatic Logical Network Creation

As shown in the figure 1.1 above, the first network adapter is configured to use logical switch by name VMSwitchA. This is the logical switch that I have created for virtual machine communications. There is another logical switch named WirelessAP that is not associated with the current network adapter. This is because the WirelessAP logical switch is used solely for Hyper-V management traffic.

 

Configuring Baseboard Management Controller Settings

In the network adapter advanced section, you can configure the Baseboard Management Controller (BMC) settings for the Hyper-V host as shown in the figure 1.3 below.

 Figure 1.3: BMC Settings for Hyper-V Host

BMC allows you to power the host on and off by using the VMM console. BMC settings are also used by the Power Optimization feature of VMM. Before you can configure BMC settings, Hyper-V host must have a BMC installed and supports one of the following out-of-band management protocols:
  • Intelligent Platform Management Interface (IPMI) versions 1.5 or 2.0
  • Data Center Management Interface (DCMI) version 1.0
  • System Management Architecture for Server Hardware (SMASH) version 1.0 over WS-Management (WS-Man)
When configuring BMC settings for a Hyper-V host, specify the following settings:
  • Check “This physical computer is configured for out of band (OOB) management”option.
  • BMC Address: Specify the BMC IP Address.
  • BMC Port: Specify the BMC port number. By default, VMM automatically populates the port number for the selected OOB management protocol. For “Intelligent Platform Management Interface (IPMI)” protocol, 623 is populated as the port number and for “System Management Architecture for Server Hardware (SMASH)” protocol, port 443 is populated.
  • RunAs Account: You must also create a RunAs account that has permissions to access BMC on destination Hyper-V host.

 

Summary

In the third part of this article series, we explained the use of “Available for Placement” and “Used by Management” options. We also explained the Baseboard Management Controller settings that help you power the host on and off manually using VMM Console or by using Power Optimization feature of VMM.

In the next part of this article series, we will continue to look at other tabs available on the property page of a Hyper-V host. We will explain items available on the Virtual Machine Paths and Host Access Tabs.

Hyper-V Host Properties in SCVMM 2012 R2 (Part4)


In this article we'll explain Virtual Machine Paths and Host Access tabs. We also explain the process for registering the virtual machines on the destination Hyper-V host by just providing the path to virtual machine files. 

In the part 3 of this article series, we explained Network Adapters associated with a Hyper-V host, and Baseboard Management Controller (BMC) settings. BMC settings, once configured for a Hyper-V host, can be used by a VMM administrator to power the host on and off manually or automatically using the Power Optimization feature of VMM. In case you need to turn a Hyper-V host on and off, right click on the Hyper-V host and then click on “Power On” or “Power Off” actions as shown in the red square of the figure 1.0 below:

 Figure 1.0: Power On and Power Off Actions on Right Click Context Menu of Hyper-V Host

This is part 4 of this article series. In this article, we will look at virtual machine paths and host access tabs available on the property page of a Hyper-V host managed by Virtual Machine Manager.

Virtual Machine Paths Tab: When a Hyper-V host is added under VMM management, V
MM gathers the list of virtual machines registered on the Hyper-V host. You can see the list of virtual machines registered with a Hyper-V host by navigating to the Virtual Machines Paths tab as shown in the figure 1.1 below.

 Figure 1.1: Virtual Machine Paths for Selected Hyper-V Host

VMM displays the virtual machines registered with the Hyper-V host under the Virtual Machines list box. As you can see, this Hyper-V host has two virtual machines registered; Gen2VM and VM1. Virtual Machines list box also shows the status, processor, memory and storage used by a virtual machine. VMM also allows you to register virtual machines with selected Hyper-V host. In case you need to register virtual machines, you need to click on the “Add” button and then select the path where virtual machine files reside.

Tip:
When registering virtual machines with the Hyper-V host, select the virtual machine folder where virtual machine files such as XML files, VHD files reside.

Host Access Tab: In the Host Access tab, you can configure the RunAs account used by the VMM to communicate with the Hyper-V host. Host Access tab also allows you to configure host placement options and remote connection port as shown in the figure 1.2 below.
 Figure 1.2: Host Access Tab for a Hyper-V Host

To configure a new RunAs account for a Hyper-V host, click on the “Browse” button and then select a RunAs account to communicate with VMM Agent running on the Hyper-V host.

Tip:It is important to note that if the Hyper-V host is part of a Hyper-V cluster, the “Browse” button will be greyed out. In case you need to change RunAs account for Hyper-V host that is part of a Hyper-V cluster, you need to use a series of PowerShell cmdlets as listed below:
  • $MyHVCluster = Get-SCVMHostCluster –Name “Hyper-VClusterName”
  • $MyRunAsAccount – Get-SCRunAsAccount –Name “RunAsAccountName”
  • Set-SCVMHostCluster –VMHostCluster $MyHVCluster –VMHostManagementCredential $MyRunAsAccount
Tip:In case you wish to see the list of Hyper-V hosts associated with a RunAs account, navigate to Settings > Security > click on “RunAs Accounts” > right click on a RunAs account and then click on the Property action to bring the property page of the selected RunAs account. In RunAs account property, click on the “Consumers” tab to see the list of Hyper-V hosts that are using the selected RunAs account as shown in the figure 1.3 below:

 Figure 1.3: Run As Account Consumers

On the Host Access tab, you need to pay attention to one setting that is “This host is available for placement”. By default, when you add a Hyper-V host under VMM management, VMM checks “This host is available for placement” option. If you uncheck this option, the Hyper-V host will not be listed during placements and will not be available to host virtual machines deployed via VMM.

 

Configuring Remote Connection Port

On the Host Access tab, you can also configure Remote Connection Port. VMM connects to virtual machines running on a Hyper-V host over network port 2179. By default, when you add a Hyper-V host under VMM management, VMM configures 2179 as the network port for connecting to virtual machines registered on that Hyper-V host. You can change the port number on the Host Access Tab, but just changing the port number on the Host Access tab will not work. You might also want to configure the new port in the firewall to allow VMM to connect to virtual machines on that Hyper-V host.

Each remote connection to a virtual machine is opened using a separate VMConnect.exe connection. There are several components running in the VMMS.exe process on the Hyper-V host. One of them is “Single Port Listener for RDP”. This is what happens when you connect to a virtual machine on a Hyper-V host:
  1. VMM Administrator connects to a virtual machine via VMM.
  2. The connection request is redirected to VMMS.EXE process on the Hyper-V host.
  3. VMMS.EXE process receives the request and then redirects the request to “Single Port Listener for RDP” component.
  4. Single Port Listener for RDP receives the request and redirects the request to worker process (VMWP.EXE) of the virtual machine.
  5. Worker Process receives the request and enables a remote connection to the virtual machine.
Tip:
Virtual Machine Connection uses the Terminal Services ActiveX control to create a connection over TCP port 2179. ActiveX control is the same component that is used by the RDP client application (MSTSC.EXE).

Summary

In the part 4 of this article series, we explained Virtual Machine Paths and Host Access tabs. We also explained the process for registering the virtual machines on the destination Hyper-V host by just providing the path to virtual machine files. You can configure a RunAs account on the Host Access tab for a Hyper-V host to allow VMM to communicate with VMM Agent running on the Hyper-V host. And, to configure RunAs account for a Hyper-V host that is part of a failover cluster, you must use the PowerShell commands as explained in this part.


SCVMM 2012 R2 Host Groups, Networking and Storage

$
0
0
In this article series, we'll learn about the basic need for creating a Host Group in VMM.

System Center Virtual Machine Manager, sometimes referred to as Virtual Machine Manager (VMM), is one of the complex products from Microsoft. Microsoft designed SCVMM product in such a way that it becomes easy for organizations to model the physical environment.

The idea behind developing SCVMM product is to help virtual administrators to manage virtualization hosts running in your production environment and provide options to model your physical IT environment and network connectivity. 






SCVMM 2012 R2 Networking and Storage (Part 1)


In this article series, we are going to learn how SCVMM can help you manage virtualization hosts from different vendors, model physical networking connectivity, and manage storage. In the first part of this article series, we are going to learn why it is necessary to create a Host Group in VMM.

VMM Host Groups

The first obvious question is why you would need a VMM Host Group. It is important to note that before you can manage the virtualization hosts located in datacenters, you would need to add the virtualization hosts in VMM. The Host Groups can be used to group virtualization hosts based on the physical site location. For example, you have hundreds of virtualization hosts running in the IT datacenters around the world. 

Without a central management console, it would be difficult to manage all aspects of the virtualization infrastructure. For example, you might want to manage the virtualization hosts located in the Dallas datacenter as well as virtualization hosts located in the Seattle datacenter. 

In a heterogeneous environment, where there are virtualization hosts running from the different vendors such as vSphere and Citrix XenServer, you will need to use a different set of tools to manage these virtualization hosts. For example, if you need to deploy a virtual machine on one of the Hyper-V hosts located in Dallas datacenter, you will need to use Hyper-V Manager. 

In case you need to deploy another virtual machine on an XenServer virtualization host operating in the same datacenter, you would require to use XenServer specific tools. VMM eliminates the need for using different sets of tools to manage virtualization hosts from different vendors. Using System Center Virtual Machine Manager, you can manage Hyper-V, ESXi hosts, and Citrix XenServers virtualization hosts. 

But before you can manage these virtualization hosts, you would need to create Host Groups. To manage both the datacenters, you will create two Host Groups in VMM; one Host Group for Dallas datacenter and another one for Seattle datacenter. VMM also allows you to create child Host Groups in case you want to manage virtualization hosts located in each building of a datacenter.

Once the Host Groups are created, you can plan to add the virtualization hosts. All you need to do is to right click on the Host Group and then add the virtualization hosts as shown in the screenshot below.

 Figure 1

By default, VMM provides a default Host Group called “All Hosts”. “All Hosts” Host Group is the first Host Group in the VMM. You cannot rename and delete this Host Group. It is imperative to understand that a Host Group in VMM is more than just a group. While the basic idea behind making the Host Groups available in VMM is to help you manage virtualization hosts located in datacenters, it also provides a lot of other useful options. A Host Group in VMM serves the following purposes:
  • Helps you group virtualization hosts according to their physical locations.
  • Provides you the ability to model physical IT datacenter into logical units.
  • You can create necessary Host Groups in SCVMM, which, in turn, help you define logical networking for that particular location.
  • Several settings such as storage, networking, host reserve settings, and placement rules can be configured at the Host Group.
  • There are two types of Host Groups that can be created in VMM; parent and child. By default, a child Host Group inherits the settings from the Parent Group. You can always change this behaviour by modifying the property of the child Host Group.
  • VMM supports delegation of Host Groups. You can create delegated Administrators and Read-Only Administrator roles in VMM and assign them to the Host Groups. For example, you can create a user role by name “SeattleAdministrator” and assign this user role to manage only virtualization hosts located in the Seattle location.
  • VMM Host Groups can also be assigned to the Private Clouds. When creating a private cloud, you can select which Host Group can be part of the private cloud.
As you can see in the screenshot below, I created three Host Groups in VMM called Dallas, Seattle and Singapore.

 Figure 2

The Host Groups Dallas, Seattle and Singapore are my datacenter locations where all of my virtualization hosts running. These are my parent host groups. You can also see that I have created Building1 and Building2 child Host Groups underneath the Dallas parent group. 

This is because I have two buildings in Dallas Datacenter. Building1 has a Hyper-V host named NKAD1 and Building2 is hosting two virtualization hosts named HVNODE1 and HVNODE2. In fact, HVNODE1 and HVNODE2 cluster nodes. You might want to create a child Host Group for several reasons. One of the reasons is that creating a child Host Group provides you the ability to define storage, networking, various host group parameters, dynamic optimization settings, host placement rules, and custom properties for that Host Group.

 

Summary

In the first of this article series, we learned about the basic need for creating a Host Group in VMM. Concisely, a Host Group is a basic building block before you can manage virtualization hosts and start modelling your physical networking environment into SCVMM. No matter how your physical environment looks like, you have the option to model your physical environment in SCVMM. Since VMM can be used to manage virtualization hosts from different vendors, but these can only be managed by adding them to a VMM Host Group.

In the part II of this article series, we are going to learn about the various options available on the property page of a VMM Host Group.

SCVMM 2012 R2 Networking and Storage (Part 2)







In this article, we'll explain configuration tabs that are available on the property page of a VMM host group.

The first part of this article series explained the benefits provided by VMM host groups. As stated in the first part, VMM host groups must be created before virtualization hosts can be added under VMM management. A VMM host group serves as a management unit for configuration items such as storage, placement rules, Dynamic optimization and host reserves. In Part II, Part III and Part IV of this article series, we are going to take a look at all the configuration tabs that are available on the property page of a VMM host group and how configuring the settings help you fine tune allocation of resources to virtualization hosts located in a VMM host group. Let’s take a look at General, Placement Rules and Host Reserves Tab as part of this article.

Once Property page is opened, you have a number of configuration tabs to work with such as General, Placement rules, Host Reserves, Dynamic Optimization options, Network, Storage, and custom properties as shown in the screenshot below.

 Figure 1
 
General Tab: On the General Tab, you can rename VMM host group, provide a description for the host group and change the location of the VMM host group. While you are given an option to change the location of the VMM host group that does not necessarily mean that you should do it without assessing the impact. Changing the location of a VMM host group would cause the child VMM host group to inherit settings from the parent VMM host group. It is recommended that before you change the location of a VMM host group, make sure VMM host group that is being moved do not inherit the settings from the parent VMM host group.

On the General tab, pay attention to “Allow unencrypted BITS file transfers” option. The overall purpose of enabling this setting is to provide security for the data that is being transferred over the network. There are a few basic things to take into considerations before enabling/disabling “Allow Unencrypted BITS file transfers” setting as listed below:
  • In case you have implemented another form of encryption, such as IPSec, there is no reason that you should enable encrypted file transfers setting.
  • For files to be transferred over an encrypted connection, the setting must be checked on both source and destination Hyper-V hosts. Similarly, the setting must be checked on both source and destination Hyper-V hosts if you need files to be transferred over an unencrypted connection.
  • Since allowing unencrypted file transfers improves overall performance during virtual machine live migration, it is recommended to keep this setting unchecked.
Since unencrypted settings can be enabled\disabled per VMM host group and applies to all Hyper-V hosts residing in a VMM host group, make sure to have the same setting configured for all child VMM host groups that are going to participate in the live migration events.

Placement Rules Tab: On Placement Rules tab, you can configure the placement rules for all Hyper-V hosts located in a VMM host group as shown in the screenshot below.

 Figure 2
 
By default, a child VMM host group inherits placement rules from the parent VMM host group. In case you need to define placement rules for a child VMM host group, uncheck “Use the placement settings from the parent host group” and then define the placement rules by clicking on “Add” button as shown in the screenshot above. By default, SCVMM provides 10 custom placement rules. The placement rules help you define the conditions that VMM should consider before providing a list of virtualization hosts where the virtual machine can be deployed or migrated. 

The placement rules are checked when a virtual machine is live migrated to another virtualization host or when a user deploys a virtual machine via VM Templates to a virtualization host. For example, you create a custom property by name EmpType and assign the value “Permanent”. When you try to migrate or deploy a VM, virtualization host’s EmpType value that do not match the value of virtual machine, the deployment will be blocked. Similarly, when you want to deploy a new virtual machine from a VM Template, only hosts with the same value of EmpType as the VM Template will be taken into consideration.

There are four conditions provided by VMM that you can specify when configuring the placement rules as shown in the screenshot below.

 Figure 3
  • Must Match: This indicates that the virtual machine deployment will be blocked on the destination virtualization host if virtual machine property does not match the virtualization host property. The end result is that virtual machine deployment will be blocked.
  • Should Match: This condition is same as “Must Match” condition except a warning message will be shown to the user about the condition mismatch.
  • Must Not Match: The deployment of virtual machines will be blocked if the property value matches with the destination virtualization hosts.
  • Should Not Match: If a condition matches, placement wizard will show a warning message to users when deploying or migrating virtual machines to destination Hyper-V hosts.
The placement rules are very helpful when you want to have granular control over the deployment of virtual machines.

Host Reserves Tab: Next tab is “Host Reserves”. As the name suggests, Host Reserves allow you to keep a pool of resources such as CPU, memory, and Disk Space reserved on all virtualization hosts residing in a VMM host group as shown in the screenshot below.

 Figure 4
 
By default, host reserve settings are inherited from the parent VMM host group. However, you can always uncheck “Use the host reserves settings from the parent host group” option to configure host reserve settings for a child VMM host group. Host reserve settings are very useful when you have a few virtual machines that need to be up and running on a particular virtualization host. Such virtual machines do not participate in live migration events and are always up and running on a particular virtualization host. 

Before the virtual machines can be placed on a virtualization host, the host must be able to meet the resource requirements of virtual machines without considering the host reserves. VMM always takes host reserve settings of virtualization hosts into consideration before the virtual machine can be moved to a virtualization host.

Note:
Host reserves setting can be configured for individual VMM host groups and for individual virtualization hosts. As part of the host reserve setting, you can configure CPU, Memory, Disk Space, Disk I/O and Network I/O as shown in the screenshot above.

Summary

In this article, we explained configuration tabs that are available on the property page of a VMM host group. We explained the use of Placement Rules that VMM uses before a virtual machine can be placed on a virtualization host. We also explained host reserve settings that are used to reserve a pool of resources on the virtualization hosts residing in a VMM host group.

In the third part of this article series, we will continue to look at the other configuration tabs such as dynamic optimization options, storage, networking, and custom properties.







CVMM 2012 R2 Networking and Storage (Part 3)

In the second part of this article series, we explained general, placement rules, and host reserves tabs. In this part, we will learn about Dynamic and Power Optimization features of VMM and different settings that you can configure at Dynamic and Power Optimization tabs.

Dynamic Optimization Tab: Dynamic optimization is a mechanism in which VMM performs load balancing within the host clusters that support live migration. The settings that you enter at Dynamic Optimization tab, as shown in the screenshot below, is used by the VMM to automatically load balance the virtual machines across a host cluster.

 Figure 1
 
By default, Dynamic Optimization settings are inherited from the parent VMM host group. In case you need to configure Dynamic Optimization settings for the current VMM host group, uncheck “Use dynamic optimization settings from the parent host group” and then specify the settings under “Thresholds” configuration page. However, it is important to take a note of the points listed below before using the Dynamic Optimization feature:
  • Dynamic optimization settings will work only for host clusters. If a VMM host group contains standalone hosts or host clusters that do not support live migration feature of Hyper-V, Dynamic Optimization will not be performed for those hosts.
  • Virtualization hosts that are in maintenance mode will be excluded from Dynamic Optimization.
  • It is also important to understand that any Hyper-V cluster that contains virtual machines that are not highly available, Dynamic Optimization will be ignored for such virtual machines.
  • VMM supports Dynamic Optimization feature for Hyper-V hosts, VMware ESXi and Citrix XenServers.
The following settings can be configured at the Dynamic Optimization configuration tab:
  • Aggressiveness: In Aggressiveness, you can select one of three levels; High, Medium, and Low. Aggressiveness determines the amount of load imbalance that is required before the live migration of virtual machines can be started. Before live migrating a virtual machine, VMM takes aggressiveness setting into consideration. For example, if you set the aggressiveness to High, VMM will try to achieve more virtual machine migrations to achieve a better balance of the host resources across the host cluster. The default setting for aggressiveness is set to medium which should be acceptable in most of the environment. In case you see any impacts of Dynamic Optimization, you can always increase/decrease aggressiveness.
  • Automatically migrate virtual machines to balance load at this frequency (minutes): By configuring this setting, you are allowing VMM to move virtual machines automatically across a host cluster to load balance the resources on all nodes running in a host cluster. By default, the value is set to 10 minutes, which is suitable for most of the environment. So leave the frequency with its default value unless you have a reason to change it.
  • Dynamic Optimization Thresholds: Although Dynamic Optimization is an automatic mechanism, but it needs to know the initial values to determine the need for optimizing the nodes running in a host cluster. VMM uses “Thresholds” configured on a VMM host group before hosts can be considered for optimization. You can configure threshold settings for CPU, Memory, Disk I/O and Network I/O as shown in the screenshot above.
Apart from configuring Dynamic Optimization settings, you can also configure Power Optimization settings for hosts located in a VMM host group. Power Optimization, a very useful feature of SCVMM, helps you conserve energy by having VMM turn off hosts when they are not needed. VMM can automatically turn hosts on when they are needed. To enable Power Optimization, all you need to do is to check “Enable power optimization” checkbox as shown in the screenshot above. Once checked, next is to define the thresholds and schedule so VMM can consider these values when executing Power Optimization functions. Click on “Settings” button to show you below configuration window.

 Figure 2
 
As stated on the Customize Power Optimization Schedule window, hosts located in a VMM host group can be considered for power optimization only if it meets the threshold values and the schedule. Similar to Dynamic Optimization, you need to define the thresholds for CPU, Memory, Disk I/O and Network I/O as shown in the screenshot above. However, before using Power Optimization feature for virtualization hosts take a note of the points listed below:
  • Since resource utilization can fluctuate even in a quiet period and this may result in Power Optimization events, ensure that plenty of buffer resources are configured for virtualization hosts.
  • It is important to note that you may not want Power Optimization to occur during business hours. It is because the time it takes to restart virtualization hosts may be longer. So set the schedule to exclude business hours.
  • Another important thing to note is that VMM requires BMC to be configured on the property page of virtualization hosts before the virtualization hosts can be powered off. If BMC is not configured or not present, VMM will not be able to power down virtualization hosts.
  • Power Optimization is only available when virtual machines are being live migrated automatically by the Dynamic Optimization feature.
Note:VMM migrates all virtual machines to the other nodes in the cluster before turning off the virtualization hosts as part of the Power Optimization event. If VMM needs a virtualization host, it turns on and then performs the dynamic optimization to balance the load within the host cluster.

Summary

In this article, we explained about Dynamic and Power Optimization features of VMM. Dynamic Optimization, an automatic mechanism built into VMM, helps you load balance host resources across host clusters. Power Optimization helps you conserve energy by turning virtualization hosts off when they are not needed and turning them on when they are needed.

In the part IV of this article series, we will continue to look at the remaining configuration tabs such as Network, Storage and Custom Properties before we deep dive into VMM networking.

To Be Continued.......



How to Jailbreak iPhone, iPad and iPod touch on iOS 9 – iOS 9.0.2 using Pangu Jailbreak

$
0
0

Pangu team just surprised us by releasing Pangu jailbreak for iOS 9 – iOS 9.0.2, the first jailbreak for iOS 9 and also for iPhone 6s, iPhone 6s Plus. Here’s how to jailbreak your device running on iOS 9, iOS 9 or iOS 9.0.2 using Pangu jailbreak.



Some important points before you proceed:
  • Pangu9 jailbreak tool can jailbreak iOS 9, iOS 9.0.1, iOS 9.0.2.
  • Pangu supports following iOS 9 – iOS 9.0.2 devices:
    • iPhone 6s, iPhone 6s Plus, iPhone 6, iPhone 6 Plus, iPhone 5s, iPhone 5c, iPhone 5, iPhone 4S
    • iPad Air 2, iPad Air, iPad 4, iPad 3, iPad 2
    • iPad mini 4, iPad mini 3, iPad mini 2, iPad mini
    • iPod touch 6G, iPod touch 5G
  • Pangu 9 is an untethered jailbreak.
  • Pangu 9 is a free jailbreak tool.
  • You need a computer (Mac or Windows PC) to use the Pangu Jailbreak. 
  • Use iCloud or iTunes to back up any and all personal information that you need to keep safe. The jailbreak has been reported to be working in most cases, but on the off chance something goes wrong, it’s a good idea to have an escape plan.
  • Disable any Anti-virus programs or firewalls that could prevent Pangu from connecting to the internet.






Follow these steps to jailbreak your iPhone, iPad and iPod touch on iOS 9 – iOS 9.0.2 using Pangu jailbreak.

Step 1: Download the latest version of the Pangu jailbreak for Windows and for Mac. Pangu jailbreak is a free jailbreak tool. It should not prompt you to enter a registration code.

Step 2: Connect your device to your computer using the USB cable.

Step 3: Take a backup of your device using the latest version of iTunes. After you’ve taken the backup, close iTunes. Also close Xcode if you’ve it open.

Step 4: Disable Passcode from Settings > Touch ID & Passcode, turn off Find my iPhone from Settings > iCloud > Find my iPhone, and enable Airplane mode.

Step 5: Please launch the Pangu 9 application that you had downloaded in step 1 as an Administrator. Right Click on the Pangu exe and select the “Run as Administrator” option.

Step 6: Pangu will take some time to detect your device. Once that is done, click on the blue Start button.


Step 7: Click on Already Backup button to proceed to the jailbreak.


Step 7: At 55%, it will reboot your device.

Step 8: At 65%, it will prompt you to enable AirPlane mode again after your device has rebooted.

Step 9: At 75%, it will then prompt you to unlock your device, and run the Pangu app. Launch the Pangu app from the Home screen. If you can’t find the app the try searching your device for “Pangu”. It also installs the WWDC app but you can ignore it. The Pangu and the WWDC app will be removed when your device is successfully jailbroken.

Step 10: Next, it will prompt you to tap on the Accept button, to give access to the Photos app. Next tap on Allow when you get a popup on your device. It is not clear why it needs access to the Photos app, we’ll update the post when we get more information.


Step 11: Wait for the progress bar to complete. Your iPhone or iPad will reboot.

Step 12: Once the process completes, the Pangu tool will tell you that your device is “Already Jailbroken”. You should see the Cydia icon on your home screen. Please don’t forget to disable AirPlane mode before launching Cydia. Cydia will take some time “Preparing filesystem” when you launch it for the first time. It will exit after it is done, and respring your device.








You can check out the video tutorial on how to jailbreak iOS 9 – iOS 9.0.2 using Pangu Jailbreak:







Latest iOS 9.2.1, iOS 9.2 Jailbreak Status

$
0
0

Apple released iOS 9.2 on December 8th, which includes several bug fixes, features and improvements such as support for AT&T’s NumberSync, iPhone support for Apple’s USB Camera Adapter, support for Mail Drop in Mail, improvements to Safari View Controller and lots more.





iOS 9.2.1 was released on January 19th with bug fixes and security updates.
Since Apple patched two vulnerabilities used in the Pangu iOS 9 Jailbreak in iOS 9.1, you can’t jailbreak iOS 9.2.1 or jailbreak iOS 9.2 on your iPhone, iPad or iPod touch using Pangu jailbreak currently.

Remote Exchange Monitoring and Reporting using Email

$
0
0
In this two-part article series we will develop two scripts to monitor and report on Exchange remotely using email.

Introduction

We all know how crucial a messaging service is to most organizations. With the exception of maybe telephones, businesses today rely on email and messaging systems more than any other piece of infrastructure. Every Exchange administrator knows the importance of continuously monitoring Exchange, not only to prevent downtime and quickly fix problems after they occur, but also to be aware of the health of the infrastructure and to help identify potential problems and performance degradations before they turn into problems and cause downtime.

Monitoring solutions like Microsoft’s System Center Operations Manager, SolarWinds, Nagios, MailScape, etc., are just some examples of monitoring tools for Exchange. However, some organizations do not provide access to these tool’s consoles or dashboards outside the internal network. So what happens if an administrator is out and about without anything other than his/her phone and needs to check if this user has gone over their quota and cannot send emails, on which server a particular database is mounted, or even if ServerA has just been rebooted?

These type of situations might be rare, but I have personally been there and it would have been extremely useful if I could send an email to my mailbox with a particular PowerShell cmdlet and get the output of that cmdlet back. And this is what this article is about. We will develop two basic scripts that will monitor incoming emails between two users (for security reasons), run the cmdlet(s) present in the email’s subject and reply with the output from that same cmdlet. The first script will use Message Tracking Logs while the second Exchange Web Services (EWS).

Obviously this does not help if Exchange itself is experiencing problems with its Transport services and unable to receive/send emails (queue problems), if the entire network is down, and so on.


Message Tracking Logs

The first script we will develop will search the Message Tracking Logs every X number of minutes to look out for any emails arriving at a particular mailbox named monitoring. If it finds any, it will get the subject of the email, run it in the Exchange Management Shell (EMS) and compose a new email to the original sender with the output of the script/cmdlet.

For security reasons, the script will only run Get-* cmdlets, so no settings can be changed using this process. Obviously this can easily be changed to allow us to make changes to our Exchange environment remotely. However, I am certain the Security policies for most organizations would not allow this...

Additionally, we will only process emails that are sent from a particular sender (nuno@outlook.com in this case) to avoid any rogue users or hackers to gain unauthorized information about our environment.
First, we start by defining the parameters this script will use. We can specify the recipient/monitoring mailbox (in this case monitoring@nunomota.pt) and the allowed sender (nuno@outlook.com):
Param (
[Parameter(Position = 0, Mandatory =$False)]
[String] $Recipient="monitoring@nunomota.pt",


[Parameter(Position = 1, Mandatory =$False)]
[String] $Sender="nuno@outlook.com"
)
In this example we will be searching the Message Tracking Logs every 15 minutes, so we save the start date of our search in a variable so we can use later:
$strStartFrom= (Get-Date).AddMinutes(-15)

Then we perform our search. We are interested in emails from $Sender delivered to $Recipient since $strStartFrom:
Get-TransportService | Get-MessageTrackingLog -ResultSize Unlimited -Start $strStartFrom -Sender $Sender -Recipients $Recipient -EventID DELIVER

For each email we find, we will call a function named runCmdlet to process that email and send an appropriate reply. The search itself will look like this:
Get-TransportService | Get-MessageTrackingLog -ResultSize Unlimited -Start $strStartFrom -Sender $Sender -Recipients $Recipient -EventID DELIVER | % {
      runCmdlet$_.MessageSubject
}
Now onto the last part, the runCmdlet function. Here we will start by checking if the cmdlet to run is or includes a Set-* cmdlet. If it does not, than we try to run it and capture any errors that it might throw (in case there is a typo for example):
FunctionrunCmdlet ([String] $cmdlet) {
      If ($cmdlet-match"set-") {
            $output="Cmdlet not allowed!"
      } Else {
            Try {
                $output=Invoke-Expression$cmdlet-ErrorActionStop-ErrorVariableErr
            } Catch {
                $output=$Err
            }
      }
If the cmdlet runs successfully, then we start creating our response, which will be an HTML email. First, the HTML header and titles:

       If ($output) {
       $reportBody="
                    
                    
                     Monitoring Report

                    

                     body {

                           font-family:Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace;

                           font-size: 10pt;

                           background-color: white;

                           color: #000000;

                     }

 

                    

                    
                    

Monitoring Exchange Report


                    

$((Get-Date).ToString())


                    
"


Next we save the cmdlets’ output into a file so we can also send it as an attachment. This is done mainly for formatting reasons. Unfortunately I have not yet found an easy way of putting the output of a cmdlet into a nice HTML format (even when using ConvertTo-Html the result is not good for most cmdlets):
$output | Out-FileRemoteMonitoring.txt

For information purposes, we also include in the email body the cmdlet we ran:
$reportBody+="$cmdlet
"


And then we finally place the cmdlet’s output into the body of our email response. Here we will be putting some new lines, otherwise the output would be a continuous single line:
$reportBody+= [String]::Join("
"
, (Get-ContentRemoteMonitoring.txt))
$reportBody+="
"
The last step is to send the email itself with the body we have been composing:
Send-MailMessage-From$Recipient-To$Sender-Subject"Monitoring Result - $(Get-Date -f ""yyyyMMdd hh:mm"")"-Body$reportBody-BodyAsHTML-SMTPservermail.nunomota.pt-AttachmentsRemoteMonitoring.txt
The final complete script will look like this:
Param (
       [Parameter(Position = 0, Mandatory =$False)]
       [String] $Recipient=monitoring@nunomota.pt,

       [Parameter(Position = 1, Mandatory =$False)]
       [String] $Sender=nuno@outlook.com
)

FunctionrunCmdlet ([String] $cmdlet) {
       If ($cmdlet-match"set-") {
              $output="Cmdlet not allowed!"
       } Else {
              Try {
                     $output=Invoke-Expression$cmdlet-ErrorActionStop-ErrorVariableErr
              } Catch {
                     Write-Verbose"Error running cmdlet!"
                     $output=$Err
              }
       }

       If ($output) {
       Write-Verbose"Composing response"
       $reportBody="
                    
                    
                     Monitoring Report

                    

                     body {

                           font-family:Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace;

                           font-size: 10pt;

                           background-color: white;

                           color: #000000;

                     }

 

                    

                    
                    

Monitoring Exchange Report


                    

$((Get-Date).ToString())


                    
"


              $output | Out-FileRemoteMonitoring.txt
              $reportBody+="$cmdlet
"

              $reportBody+= [String]::Join("
"
, (Get-ContentRemoteMonitoring.txt))
              $reportBody+="
"
              Send-MailMessage-From$Recipient-To$Sender-Subject"Monitoring Result - $(Get-Date -f ""yyyyMMdd hh:mm"")"-Body$reportBody-BodyAsHTML-SMTPservermail.nunomota.pt-AttachmentsRemoteMonitoring.txt
              $reportBody=$null
       }
}

Write-Verbose"Searching Message Tracking Logs"
$strStartFrom= (Get-Date).AddMinutes(-15)

Get-TransportService | Get-MessageTrackingLog -ResultSize Unlimited -Start $strStartFrom -Sender $Sender -Recipients $Recipient -EventID DELIVER | % {
       Write-Verbose"Running $($_.MessageSubject)"
       runCmdlet$_.MessageSubject
}


 

Testing the Script

It is now time we test our script! First, let us see how it handles errors by running a cmdlet with a typo:

 We can see the script runs fine even though the cmdlet throws an error:


But what exactly do we get back? The script returns exactly what we expected: the error returned by the cmdlet:


We also get an attachment with the same output:


What about if we try to run a Set-* cmdlet? Easy, “cmdlet not allowed”!    :)


Ok, let us try a cmdlet that actually returns something useful:



The format of output returned by the script might not be ideal as we can see from the next screenshot:



This is why we also include the output as an attachment as in the file attached the output is exactly formatted as we are used to see it on the EMS:


While we have only ran Exchange cmdlets, the possibilities are huge here. We can tell it to run non-Exchange cmdlets, or even trigger other scripts by sending something like this:


Conclusion

This basic script provides a method of gathering information about our Exchange infrastructure in situations where we would normally not be able to. However, using Message Tracking Logs we are a bit limited as we cannot look into the message body or attachments, only its subject. In the next and final part of this article series, we will develop a similar script but that uses EWS instead, further expanding the script’s capabilities.





Download Latest or Old Apple Firmwares for (iPhone, iPAD, iPod Touch)

$
0
0

You can download all apple devices firmware according to Model Number from this link.

 Download Firmware iPhone

9.2.1 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13D15): iPhone8,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13D20): iPhone8,2_9.2.1_13D20_Restore.ipsw
9.2.1 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13D15): iPhone8,1_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13D20): iPhone8,1_9.2.1_13D20_Restore.ipsw
9.2 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13C75): iPhone8,2_9.2_13C75_Restore.ipsw
9.2 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13C75): iPhone8,1_9.2_13C75_Restore.ipsw
9.1 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13B143): iPhone8,2_9.1_13B143_Restore.ipsw
9.1 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13B143): iPhone8,1_9.1_13B143_Restore.ipsw
9.0.2 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13A452): iPhone8,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13A452): iPhone8,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13A405): iPhone8,2_9.0.1_13A405_Restore.ipsw
9.0.1 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13A405): iPhone8,1_9.0.1_13A405_Restore.ipsw
9.0 (iPhone 6s Plus GSM&CDMA Model A1634-A1687-A1699) (13A343): iPhone8,2_9.0_13A343_Restore.ipsw
9.0 (iPhone 6s GSM&CDMA Model A1633-A1688-A1700) (13A342): iPhone8,1_9.0_13A342_Restore.ipsw

Download Firmware iPhone

9.2.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13D15): iPhone7,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13D20): iPhone7,2_9.2.1_13D20_Restore.ipsw
9.2.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13D15): iPhone7,1_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13D20): iPhone7,1_9.2.1_13D20_Restore.ipsw
9.2 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13C75): iPhone7,2_9.2_13C75_Restore.ipsw
9.2 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13C75): iPhone7,1_9.2_13C75_Restore.ipsw
9.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13B143): iPhone7,2_9.1_13B143_Restore.ipsw
9.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13B143): iPhone7,1_9.1_13B143_Restore.ipsw
9.0.2 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13A452): iPhone7,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13A452): iPhone7,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13A404): iPhone7,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13A404): iPhone7,1_9.0.1_13A404_Restore.ipsw
9.0 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (13A344): iPhone7,2_9.0_13A344_Restore.ipsw
9.0 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (13A344): iPhone7,1_9.0_13A344_Restore.ipsw
8.4.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12H321): iPhone7,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12H321): iPhone7,1_8.4.1_12H321_Restore.ipsw
8.4 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12H143): iPhone7,2_8.4_12H143_Restore.ipsw
8.4 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12H143): iPhone7,1_8.4_12H143_Restore.ipsw
8.3 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12F70): iPhone7,2_8.3_12F70_Restore.ipsw
8.3 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12F70): iPhone7,1_8.3_12F70_Restore.ipsw
8.2 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12D508): iPhone7,2_8.2_12D508_Restore.ipsw
8.2 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12D508): iPhone7,1_8.2_12D508_Restore.ipsw
8.1.3 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12B466): iPhone7,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12B466): iPhone7,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12B440): iPhone7,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12B440): iPhone7,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12B436): iPhone7,2_8.1.1_12B436_Restore.ipsw
8.1.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12B436): iPhone7,1_8.1.1_12B436_Restore.ipsw
8.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12B411): iPhone7,2_8.1_12B411_Restore.ipsw
8.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12B411): iPhone7,1_8.1_12B411_Restore.ipsw
8.0.2 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12A405): iPhone7,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12A405): iPhone7,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12A402): iPhone7,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12A402): iPhone7,1_8.0.1_12A402_Restore.ipsw
8.0 (iPhone 6 GSM&CDMA Model iPhone A1549-A1586) (12A365): iPhone7,2_8.0_12A365_Restore.ipsw
8.0 (iPhone 6 Plus GSM&CDMA Model A1522-A1524) (12A366): iPhone7,1_8.0_12A366_Restore.ipsw

Download Firmware iPhone

9.2.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13D15): iPhone6,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 5s GSM Model A1533-A1453) (13D15): iPhone6,1_9.2.1_13D15_Restore.ipsw
9.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13C75): iPhone6,2_9.2_13C75_Restore.ipsw
9.2 (iPhone 5s GSM Model A1533-A1453) (13C75): iPhone6,1_9.2_13C75_Restore.ipsw
9.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13B143): iPhone6,2_9.1_13B143_Restore.ipsw
9.1 (iPhone 5s GSM Model A1533-A1453) (13B143): iPhone6,1_9.1_13B143_Restore.ipsw
9.0.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13A452): iPhone6,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 5s GSM Model A1533-A1453) (13A452): iPhone6,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13A404): iPhone6,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPhone 5s GSM Model A1533-A1453) (13A404): iPhone6,1_9.0.1_13A404_Restore.ipsw
9.0 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (13A344): iPhone6,2_9.0_13A344_Restore.ipsw
9.0 (iPhone 5s GSM Model A1533-A1453) (13A344): iPhone6,1_9.0_13A344_Restore.ipsw
8.4.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12H321): iPhone6,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPhone 5s GSM Model A1533-A1453) (12H321): iPhone6,1_8.4.1_12H321_Restore.ipsw
8.4 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12H143): iPhone6,2_8.4_12H143_Restore.ipsw
8.4 (iPhone 5s GSM Model A1533-A1453) (12H143): iPhone6,1_8.4_12H143_Restore.ipsw
8.3 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12F70): iPhone6,2_8.3_12F70_Restore.ipsw
8.3 (iPhone 5s GSM Model A1533-A1453) (12F70): iPhone6,1_8.3_12F70_Restore.ipsw
8.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12D508): iPhone6,2_8.2_12D508_Restore.ipsw
8.2 (iPhone 5s GSM Model A1533-A1453) (12D508): iPhone6,1_8.2_12D508_Restore.ipsw
8.1.3 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12B466): iPhone6,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPhone 5s GSM Model A1533-A1453) (12B466): iPhone6,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12B440): iPhone6,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPhone 5s GSM Model A1533-A1453) (12B440): iPhone6,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12B435): iPhone6,2_8.1.1_12B435_Restore.ipsw
8.1.1 (iPhone 5s GSM Model A1533-A1453) (12B435): iPhone6,1_8.1.1_12B435_Restore.ipsw
8.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12B411): iPhone6,2_8.1_12B411_Restore.ipsw
8.1 (iPhone 5s GSM Model A1533-A1453) (12B411): iPhone6,1_8.1_12B411_Restore.ipsw
8.0.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12A405): iPhone6,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPhone 5s GSM Model A1533-A1453) (12A405): iPhone6,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12A402): iPhone6,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPhone 5s GSM Model A1533-A1453) (12A402): iPhone6,1_8.0.1_12A402_Restore.ipsw
8.0 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (12A365): iPhone6,2_8.0_12A365_Restore.ipsw
8.0 (iPhone 5s GSM Model A1533-A1453) (12A365): iPhone6,1_8.0_12A365_Restore.ipsw
7.1.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11D257): iPhone6,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 5s GSM Model A1533-A1453) (11D257): iPhone6,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11D201): iPhone6,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 5s GSM Model A1533-A1453) (11D201): iPhone6,1_7.1.1_11D201_Restore.ipsw
7.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11D167): iPhone6,2_7.1_11D167_Restore.ipsw
7.1 (iPhone 5s GSM Model A1533-A1453) (11D167): iPhone6,1_7.1_11D167_Restore.ipsw
7.0.6 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11B651): iPhone6,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 5s GSM Model A1533-A1453) (11B651): iPhone6,1_7.0.6_11B651_Restore.ipsw
7.0.5 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11B601): iPhone6,2_7.0.5_11B601_Restore.ipsw
7.0.4 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11B554a): iPhone6,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 5s GSM Model A1533-A1453) (11B554a): iPhone6,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11B511): iPhone6,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 5s GSM Model A1533-A1453) (11B511): iPhone6,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11A501): iPhone6,2_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 5s GSM Model A1533-A1453) (11A501): iPhone6,1_7.0.2_11A501_Restore.ipsw
7.0.1 (iPhone 5s CDMA&GSM Model A1533-A1457-A1528-A1530) (11A470a): iPhone6,2_7.0.1_11A470a_Restore.ipsw
7.0.1 (iPhone 5s GSM Model A1533-A1453) (11A470a): iPhone6,1_7.0.1_11A470a_Restore.ipsw
Download Firmware iPhone
9.2.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13D15): iPhone5,4_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 5c GSM Model A1532-A1456) (13D15): iPhone5,3_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 5 Global Model A1429) (13D15): iPhone5,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPhone 5 GSM Only AT&T A1428) (13D15): iPhone5,1_9.2.1_13D15_Restore.ipsw
9.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13C75): iPhone5,4_9.2_13C75_Restore.ipsw
9.2 (iPhone 5c GSM Model A1532-A1456) (13C75): iPhone5,3_9.2_13C75_Restore.ipsw
9.2 (iPhone 5 Global Model A1429) (13C75): iPhone5,2_9.2_13C75_Restore.ipsw
9.2 (iPhone 5 GSM Only AT&T A1428) (13C75): iPhone5,1_9.2_13C75_Restore.ipsw
9.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13B143): iPhone5,4_9.1_13B143_Restore.ipsw
9.1 (iPhone 5c GSM Model A1532-A1456) (13B143): iPhone5,3_9.1_13B143_Restore.ipsw
9.1 (iPhone 5 Global Model A1429) (13B143): iPhone5,2_9.1_13B143_Restore.ipsw
9.1 (iPhone 5 GSM Only AT&T A1428) (13B143): iPhone5,1_9.1_13B143_Restore.ipsw
9.0.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13A452): iPhone5,4_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 5c GSM Model A1532-A1456) (13A452): iPhone5,3_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 5 Global Model A1429) (13A452): iPhone5,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPhone 5 GSM Only AT&T A1428) (13A452): iPhone5,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13A404): iPhone5,4_9.0.1_13A404_Restore.ipsw
9.0.1 (iPhone 5c GSM Model A1532-A1456) (13A404): iPhone5,3_9.0.1_13A404_Restore.ipsw
9.0.1 (iPhone 5 Global Model A1429) (13A404): iPhone5,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPhone 5 GSM Only AT&T A1428) (13A404): iPhone5,1_9.0.1_13A404_Restore.ipsw
9.0 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (13A344): iPhone5,4_9.0_13A344_Restore.ipsw
9.0 (iPhone 5c GSM Model A1532-A1456) (13A344): iPhone5,3_9.0_13A344_Restore.ipsw
9.0 (iPhone 5 Global Model A1429) (13A344): iPhone5,2_9.0_13A344_Restore.ipsw
9.0 (iPhone 5 GSM Only AT&T A1428) (13A344): iPhone5,1_9.0_13A344_Restore.ipsw
8.4.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12H321): iPhone5,4_8.4.1_12H321_Restore.ipsw
8.4.1 (iPhone 5c GSM Model A1532-A1456) (12H321): iPhone5,3_8.4.1_12H321_Restore.ipsw
8.4.1 (iPhone 5 Global Model A1429) (12H321): iPhone5,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPhone 5 GSM Only AT&T A1428) (12H321): iPhone5,1_8.4.1_12H321_Restore.ipsw
8.4 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12H143): iPhone5,4_8.4_12H143_Restore.ipsw
8.4 (iPhone 5c GSM Model A1532-A1456) (12H143): iPhone5,3_8.4_12H143_Restore.ipsw
8.4 (iPhone 5 Global Model A1429) (12H143): iPhone5,2_8.4_12H143_Restore.ipsw
8.4 (iPhone 5 GSM Only AT&T A1428) (12H143): iPhone5,1_8.4_12H143_Restore.ipsw
8.3 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12F70): iPhone5,4_8.3_12F70_Restore.ipsw
8.3 (iPhone 5c GSM Model A1532-A1456) (12F70): iPhone5,3_8.3_12F70_Restore.ipsw
8.3 (iPhone 5 Global Model A1429) (12F70): iPhone5,2_8.3_12F70_Restore.ipsw
8.3 (iPhone 5 GSM Only AT&T A1428) (12F70): iPhone5,1_8.3_12F70_Restore.ipsw
8.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12D508): iPhone5,4_8.2_12D508_Restore.ipsw
8.2 (iPhone 5c GSM Model A1532-A1456) (12D508): iPhone5,3_8.2_12D508_Restore.ipsw
8.2 (iPhone 5 Global Model A1429) (12D508): iPhone5,2_8.2_12D508_Restore.ipsw
8.2 (iPhone 5 GSM Only AT&T A1428) (12D508): iPhone5,1_8.2_12D508_Restore.ipsw
8.1.3 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12B466): iPhone5,4_8.1.3_12B466_Restore.ipsw
8.1.3 (iPhone 5c GSM Model A1532-A1456) (12B466): iPhone5,3_8.1.3_12B466_Restore.ipsw
8.1.3 (iPhone 5 Global Model A1429) (12B466): iPhone5,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPhone 5 GSM Only AT&T A1428) (12B466): iPhone5,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12B440): iPhone5,4_8.1.2_12B440_Restore.ipsw
8.1.2 (iPhone 5c GSM Model A1532-A1456) (12B440): iPhone5,3_8.1.2_12B440_Restore.ipsw
8.1.2 (iPhone 5 Global Model A1429) (12B440): iPhone5,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPhone 5 GSM Only AT&T A1428) (12B440): iPhone5,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12B435): iPhone5,4_8.1.1_12B435_Restore.ipsw
8.1.1 (iPhone 5c GSM Model A1532-A1456) (12B435): iPhone5,3_8.1.1_12B435_Restore.ipsw
8.1.1 (iPhone 5 Global Model A1429) (12B435): iPhone5,2_8.1.1_12B435_Restore.ipsw
8.1.1 (iPhone 5 GSM Only AT&T A1428) (12B435): iPhone5,1_8.1.1_12B435_Restore.ipsw
8.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12B411): iPhone5,4_8.1_12B411_Restore.ipsw
8.1 (iPhone 5c GSM Model A1532-A1456) (12B411): iPhone5,3_8.1_12B411_Restore.ipsw
8.1 (iPhone 5 Global Model A1429) (12B411): iPhone5,2_8.1_12B411_Restore.ipsw
8.1 (iPhone 5 GSM Only AT&T A1428) (12B411): iPhone5,1_8.1_12B411_Restore.ipsw
8.0.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12A405): iPhone5,4_8.0.2_12A405_Restore.ipsw
8.0.2 (iPhone 5c GSM Model A1532-A1456) (12A405): iPhone5,3_8.0.2_12A405_Restore.ipsw
8.0.2 (iPhone 5 Global Model A1429) (12A405): iPhone5,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPhone 5 GSM Only AT&T A1428) (12A405): iPhone5,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12A402): iPhone5,4_8.0.1_12A402_Restore.ipsw
8.0.1 (iPhone 5c GSM Model A1532-A1456) (12A402): iPhone5,3_8.0.1_12A402_Restore.ipsw
8.0.1 (iPhone 5 Global Model A1429) (12A402): iPhone5,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPhone 5 GSM Only AT&T A1428) (12A402): iPhone5,1_8.0.1_12A402_Restore.ipsw
8.0 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (12A365): iPhone5,4_8.0_12A365_Restore.ipsw
8.0 (iPhone 5c GSM Model A1532-A1456) (12A365): iPhone5,3_8.0_12A365_Restore.ipsw
8.0 (iPhone 5 Global Model A1429) (12A365): iPhone5,2_8.0_12A365_Restore.ipsw
8.0 (iPhone 5 GSM Only AT&T A1428) (12A365): iPhone5,1_8.0_12A365_Restore.ipsw
7.1.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11D257): iPhone5,4_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 5c GSM Model A1532-A1456) (11D257): iPhone5,3_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 5 Global Model A1429) (11D257): iPhone5,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 5 GSM Only AT&T A1428) (11D257): iPhone5,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11D201): iPhone5,4_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 5c GSM Model A1532-A1456) (11D201): iPhone5,3_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 5 Global Model A1429) (11D201): iPhone5,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 5 GSM Only AT&T A1428) (11D201): iPhone5,1_7.1.1_11D201_Restore.ipsw
7.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11D167): iPhone5,4_7.1_11D167_Restore.ipsw
7.1 (iPhone 5c GSM Model A1532-A1456) (11D167): iPhone5,3_7.1_11D167_Restore.ipsw
7.1 (iPhone 5 Global Model A1429) (11D167): iPhone5,2_7.1_11D167_Restore.ipsw
7.1 (iPhone 5 GSM Only AT&T A1428) (11D167): iPhone5,1_7.1_11D167_Restore.ipsw
7.0.6 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11B651): iPhone5,4_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 5c GSM Model A1532-A1456) (11B651): iPhone5,3_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 5 Global Model A1429) (11B651): iPhone5,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 5 GSM Only AT&T A1428) (11B651): iPhone5,1_7.0.6_11B651_Restore.ipsw
7.0.5 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11B601): iPhone5,4_7.0.5_11B601_Restore.ipsw
7.0.4 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11B554a): iPhone5,4_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 5c GSM Model A1532-A1456) (11B554a): iPhone5,3_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 5 Global Model A1429) (11B554a): iPhone5,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 5 GSM Only AT&T A1428) (11B554a): iPhone5,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11B511): iPhone5,4_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 5c GSM Model A1532-A1456) (11B511): iPhone5,3_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 5 Global Model A1429) (11B511): iPhone5,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 5 GSM Only AT&T A1428) (11B511): iPhone5,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11A501): iPhone5,4_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 5c GSM Model A1532-A1456) (11A501): iPhone5,3_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 5 Global Model A1429) (11A501): iPhone5,2_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 5 GSM Only AT&T A1428) (11A501): iPhone5,1_7.0.2_11A501_Restore.ipsw
7.0.1 (iPhone 5c CDMA&GSM Model A1532-A1507-A1526-A1529) (11A470a): iPhone5,4_7.0.1_11A470a_Restore.ipsw
7.0.1 (iPhone 5c GSM Model A1532-A1456) (11A470a): iPhone5,3_7.0.1_11A470a_Restore.ipsw
7.0 (iPhone 5 Global Model A1429) (11A465): iPhone5,2_7.0_11A465_Restore.ipsw
7.0 (iPhone 5 GSM Only AT&T A1428) (11A465): iPhone5,1_7.0_11A465_Restore.ipsw
6.1.4 (iPhone 5 Global Model A1429) (10B350): iPhone5,2_6.1.4_10B350_Restore.ipsw
6.1.4 (iPhone 5 GSM Only AT&T A1428) (10B350): iPhone5,1_6.1.4_10B350_Restore.ipsw
6.1.3 (iPhone 5 Global Model A1429) (10B329): iPhone5,2_6.1.3_10B329_Restore.ipsw
6.1.3 (iPhone 5 GSM Only AT&T A1428) (10B329): iPhone5,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPhone 5 Global Model A1429) (10B146): iPhone5,2_6.1.2_10B146_Restore.ipsw
6.1.2 (iPhone 5 GSM Only AT&T A1428) (10B146): iPhone5,1_6.1.2_10B146_Restore.ipsw
6.1 (iPhone 5 Global Model A1429) (10B143): iPhone5,2_6.1_10B143_Restore.ipsw
6.1 (iPhone 5 GSM Only AT&T A1428) (10B143): iPhone5,1_6.1_10B143_Restore.ipsw
6.0.2 (iPhone 5 Global Model A1429) (10A551): iPhone5,2_6.0.2_10A551_Restore.ipsw
6.0.2 (iPhone 5 GSM Only AT&T A1428) (10A551): iPhone5,1_6.0.2_10A551_Restore.ipsw
6.0.1 (iPhone 5 Global Model A1429) (10A525): iPhone5,2_6.0.1_10A525_Restore.ipsw
6.0.1 (iPhone 5 GSM Only AT&T A1428) (10A525): iPhone5,1_6.0.1_10A525_Restore.ipsw
6.0 (iPhone 5 Global Model A1429) (10A405): iPhone5,2_6.0_10A405_Restore.ipsw
6.0 (iPhone 5 GSM Only AT&T A1428) (10A405): iPhone5,1_6.0_10A405_Restore.ipsw

Download Firmware iPhone

9.2.1 (iPhone 4S GSM&CDMA Model A1387) (13D15): iPhone4,1_9.2.1_13D15_Restore.ipsw
9.2 (iPhone 4S GSM&CDMA Model A1387) (13C75): iPhone4,1_9.2_13C75_Restore.ipsw
9.1 (iPhone 4S GSM&CDMA Model A1387) (13B143): iPhone4,1_9.1_13B143_Restore.ipsw
9.0.2 (iPhone 4S GSM&CDMA Model A1387) (13A452): iPhone4,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPhone 4S GSM&CDMA Model A1387) (13A404): iPhone4,1_9.0.1_13A404_Restore.ipsw
9.0 (iPhone 4S GSM&CDMA Model A1387) (13A344): iPhone4,1_9.0_13A344_Restore.ipsw
8.4.1 (iPhone 4S GSM&CDMA Model A1387) (12H321): iPhone4,1_8.4.1_12H321_Restore.ipsw
8.4 (iPhone 4S GSM&CDMA Model A1387) (12H143): iPhone4,1_8.4_12H143_Restore.ipsw
8.3 (iPhone 4S GSM&CDMA Model A1387) (12F70): iPhone4,1_8.3_12F70_Restore.ipsw
8.2 (iPhone 4S GSM&CDMA Model A1387) (12D508): iPhone4,1_8.2_12D508_Restore.ipsw
8.1.3 (iPhone 4S GSM&CDMA Model A1387) (12B466): iPhone4,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPhone 4S GSM&CDMA Model A1387) (12B440): iPhone4,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPhone 4S GSM&CDMA Model A1387) (12B435): iPhone4,1_8.1.1_12B435_Restore.ipsw
8.1 (iPhone 4S GSM&CDMA Model A1387) (12B411): iPhone4,1_8.1_12B411_Restore.ipsw
8.0.2 (iPhone 4S GSM&CDMA Model A1387) (12A405): iPhone4,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPhone 4S GSM&CDMA Model A1387) (12A402): iPhone4,1_8.0.1_12A402_Restore.ipsw
8.0 (iPhone 4S GSM&CDMA Model A1387) (12A365): iPhone4,1_8.0_12A365_Restore.ipsw
7.1.2 (iPhone 4S GSM&CDMA Model A1387) (11D257): iPhone4,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPhone 4S GSM&CDMA Model A1387) (11D201): iPhone4,1_7.1.1_11D201_Restore.ipsw
7.1 (iPhone 4S GSM&CDMA Model A1387) (11D167): iPhone4,1_7.1_11D167_Restore.ipsw
7.0.6 (iPhone 4S GSM&CDMA Model A1387) (11B651): iPhone4,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPhone 4S GSM&CDMA Model A1387) (11B554a): iPhone4,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPhone 4S GSM&CDMA Model A1387) (11B511): iPhone4,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPhone 4S GSM&CDMA Model A1387) (11A501): iPhone4,1_7.0.2_11A501_Restore.ipsw
7.0 (iPhone 4S GSM&CDMA Model A1387) (11A465): iPhone4,1_7.0_11A465_Restore.ipsw
6.1.3 (iPhone 4S GSM&CDMA Model A1387) (10B329): iPhone4,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPhone 4S GSM&CDMA Model A1387) (10B146): iPhone4,1_6.1.2_10B146_Restore.ipsw
6.1.1 (iPhone 4S GSM&CDMA Model A1387) (10B145): iPhone4,1_6.1.1_10B145_Restore.ipsw
6.1 (iPhone 4S GSM&CDMA Model A1387) (10B142): iPhone4,1_6.1_10B142_Restore.ipsw
6.0.1 (iPhone 4S GSM&CDMA Model A1387) (10A523): iPhone4,1_6.0.1_10A523_Restore.ipsw
6.0 (iPhone 4S GSM&CDMA Model A1387) (10A403): iPhone4,1_6.0_10A403_Restore.ipsw
5.1.1 (iPhone 4S GSM&CDMA Model A1387) (9B206): iPhone4,1_5.1.1_9B206_Restore.ipsw
5.1 (iPhone 4S GSM&CDMA Model A1387) (9B179): iPhone4,1_5.1_9B179_Restore.ipsw
5.0.1 (iPhone 4S GSM&CDMA Model A1387) (9A405): iPhone4,1_5.0.1_9A405_Restore.ipsw
5.0.1 (iPhone 4S GSM&CDMA Model A1387) (9A406): iPhone4,1_5.0.1_9A406_Restore.ipsw
5.0 (iPhone 4S GSM&CDMA Model A1387) (9A334): iPhone4,1_5.0_9A334_Restore.ipsw

Download Firmware iPhone

7.1.2 (iPhone 4 CDMA Model A1349) (11D257): iPhone3,3_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 4 GSM Model (2012)) (11D257): iPhone3,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPhone 4 GSM Model A1332) (11D257): iPhone3,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPhone 4 CDMA Model A1349) (11D201): iPhone3,3_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 4 GSM Model (2012)) (11D201): iPhone3,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPhone 4 GSM Model A1332) (11D201): iPhone3,1_7.1.1_11D201_Restore.ipsw
7.1 (iPhone 4 CDMA Model A1349) (11D167): iPhone3,3_7.1_11D167_Restore.ipsw
7.1 (iPhone 4 GSM Model (2012)) (11D169): iPhone3,2_7.1_11D169_Restore.ipsw
7.1 (iPhone 4 GSM Model A1332) (11D169): iPhone3,1_7.1_11D169_Restore.ipsw
7.0.6 (iPhone 4 CDMA Model A1349) (11B651): iPhone3,3_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 4 GSM Model (2012)) (11B651): iPhone3,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 4 GSM Model A1332) (11B651): iPhone3,1_7.0.6_11B651_Restore.ipsw
7.0.6 (iPhone 4 GSM Model A1332) (11B651): iPhone3,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPhone 4 CDMA Model A1349) (11B554a): iPhone3,3_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 4 GSM Model (2012)) (11B554a): iPhone3,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPhone 4 GSM Model A1332) (11B554a): iPhone3,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPhone 4 CDMA Model A1349) (11B511): iPhone3,3_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 4 GSM Model (2012)) (11B511): iPhone3,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPhone 4 GSM Model A1332) (11B511): iPhone3,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPhone 4 CDMA Model A1349) (11A501): iPhone3,3_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 4 GSM Model (2012)) (11A501): iPhone3,2_7.0.2_11A501_Restore.ipsw
7.0.2 (iPhone 4 GSM Model A1332) (11A501): iPhone3,1_7.0.2_11A501_Restore.ipsw
7.0 (iPhone 4 CDMA Model A1349) (11A465): iPhone3,3_7.0_11A465_Restore.ipsw
7.0 (iPhone 4 GSM Model (2012)) (11A465): iPhone3,2_7.0_11A465_Restore.ipsw
7.0 (iPhone 4 GSM Model A1332) (11A465): iPhone3,1_7.0_11A465_Restore.ipsw
6.1.3 (iPhone 4 CDMA Model A1349) (10B329): iPhone3,3_6.1.3_10B329_Restore.ipsw
6.1.3 (iPhone 4 GSM Model (2012)) (10B329): iPhone3,2_6.1.3_10B329_Restore.ipsw
6.1.3 (iPhone 4 GSM Model A1332) (10B329): iPhone3,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPhone 4 CDMA Model A1349) (10B146): iPhone3,3_6.1.2_10B146_Restore.ipsw
6.1.2 (iPhone 4 GSM Model (2012)) (10B146): iPhone3,2_6.1.2_10B146_Restore.ipsw
6.1.2 (iPhone 4 GSM Model A1332) (10B146): iPhone3,1_6.1.2_10B146_Restore.ipsw
6.1 (iPhone 4 CDMA Model A1349) (10B141): iPhone3,3_6.1_10B141_Restore.ipsw
6.1 (iPhone 4 GSM Model (2012)) (10B144): iPhone3,2_6.1_10B144_Restore.ipsw
6.1 (iPhone 4 GSM Model A1332) (10B144): iPhone3,1_6.1_10B144_Restore.ipsw
6.0.1 (iPhone 4 CDMA Model A1349) (10A523): iPhone3,3_6.0.1_10A523_Restore.ipsw
6.0.1 (iPhone 4 GSM Model (2012)) (10A523): iPhone3,2_6.0.1_10A523_Restore.ipsw
6.0.1 (iPhone 4 GSM Model A1332) (10A523): iPhone3,1_6.0.1_10A523_Restore.ipsw
6.0 (iPhone 4 CDMA Model A1349) (10A403): iPhone3,3_6.0_10A403_Restore.ipsw
6.0 (iPhone 4 GSM Model (2012)) (10A403): iPhone3,2_6.0_10A403_Restore.ipsw
6.0 (iPhone 4 GSM Model A1332) (10A403): iPhone3,1_6.0_10A403_Restore.ipsw
5.1.1 (iPhone 4 CDMA Model A1349) (9B206): iPhone3,3_5.1.1_9B206_Restore.ipsw
5.1.1 (iPhone 4 GSM Model A1332) (9B206): iPhone3,1_5.1.1_9B206_Restore.ipsw
5.1.1 (iPhone 4 GSM Model A1332) (9B208): iPhone3,1_5.1.1_9B208_Restore.ipsw
5.1 (iPhone 4 CDMA Model A1349) (9B176): iPhone3,3_5.1_9B176_Restore.ipsw
5.1 (iPhone 4 GSM Model A1332) (9B176): iPhone3,1_5.1_9B176_Restore.ipsw
5.0.1 (iPhone 4 CDMA Model A1349) (9A405): iPhone3,3_5.0.1_9A405_Restore.ipsw
5.0.1 (iPhone 4 GSM Model A1332) (9A405): iPhone3,1_5.0.1_9A405_Restore.ipsw
5.0 (iPhone 4 CDMA Model A1349) (9A334): iPhone3,3_5.0_9A334_Restore.ipsw
5.0 (iPhone 4 GSM Model A1332) (9A334): iPhone3,1_5.0_9A334_Restore.ipsw
4.3.5 (iPhone 4 GSM Model A1332) (8L1): iPhone3,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPhone 4 GSM Model A1332) (8K2): iPhone3,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPhone 4 GSM Model A1332) (8J2): iPhone3,1_4.3.3_8J2_Restore.ipsw
4.3.2 (iPhone 4 GSM Model A1332) (8H7): iPhone3,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPhone 4 GSM Model A1332) (8G4): iPhone3,1_4.3.1_8G4_Restore.ipsw
4.3 (iPhone 4 GSM Model A1332) (8F190): iPhone3,1_4.3_8F190_Restore.ipsw
4.2.9 (iPhone 4 CDMA Model A1349) (8E501): iPhone3,3_4.2.9_8E501_Restore.ipsw
4.2.8 (iPhone 4 CDMA Model A1349) (8E401): iPhone3,3_4.2.8_8E401_Restore.ipsw
4.2.7 (iPhone 4 CDMA Model A1349) (8E303): iPhone3,3_4.2.7_8E303_Restore.ipsw
4.2.6 (iPhone 4 CDMA Model A1349) (8E200): iPhone3,3_4.2.6_8E200_Restore.ipsw
4.2.10 (iPhone 4 CDMA Model A1349) (8E600): iPhone3,3_4.2.10_8E600_Restore.ipsw
4.2.1 (iPhone 4 GSM Model A1332) (8C148): iPhone3,1_4.2.1_8C148_Restore.ipsw
4.1 (iPhone 4 GSM Model A1332) (8B117): iPhone3,1_4.1_8B117_Restore.ipsw
4.0.2 (iPhone 4 GSM Model A1332) (8A400): iPhone3,1_4.0.2_8A400_Restore.ipsw
4.0.1 (iPhone 4 GSM Model A1332) (8A306): iPhone3,1_4.0.1_8A306_Restore.ipsw
4.0 (iPhone 4 GSM Model A1332) (8A293): iPhone3,1_4.0_8A293_Restore.ipsw

Download Firmware iPhone

6.1.6 (iPhone 3G[S]) (10B500): iPhone2,1_6.1.6_10B500_Restore.ipsw
6.1.3 (iPhone 3G[S]) (10B329): iPhone2,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPhone 3G[S]) (10B146): iPhone2,1_6.1.2_10B146_Restore.ipsw
6.1 (iPhone 3G[S]) (10B141): iPhone2,1_6.1_10B141_Restore.ipsw
6.0.1 (iPhone 3G[S]) (10A523): iPhone2,1_6.0.1_10A523_Restore.ipsw
6.0 (iPhone 3G[S]) (10A403): iPhone2,1_6.0_10A403_Restore.ipsw
5.1.1 (iPhone 3G[S]) (9B206): iPhone2,1_5.1.1_9B206_Restore.ipsw
5.1 (iPhone 3G[S]) (9B176): iPhone2,1_5.1_9B176_Restore.ipsw
5.0.1 (iPhone 3G[S]) (9A405): iPhone2,1_5.0.1_9A405_Restore.ipsw
5.0 (iPhone 3G[S]) (9A334): iPhone2,1_5.0_9A334_Restore.ipsw
4.3.5 (iPhone 3G[S]) (8L1): iPhone2,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPhone 3G[S]) (8K2): iPhone2,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPhone 3G[S]) (8J2): iPhone2,1_4.3.3_8J2_Restore.ipsw
4.3.2 (iPhone 3G[S]) (8H7): iPhone2,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPhone 3G[S]) (8G4): iPhone2,1_4.3.1_8G4_Restore.ipsw
4.3 (iPhone 3G[S]) (8F190): iPhone2,1_4.3_8F190_Restore.ipsw
4.2.1 (iPhone 3G[S]) (8C148a): iPhone2,1_4.2.1_8C148a_Restore.ipsw
4.1 (iPhone 3G[S]) (8B117): iPhone2,1_4.1_8B117_Restore.ipsw
4.0.2 (iPhone 3G[S]) (8A400): iPhone2,1_4.0.2_8A400_Restore.ipsw
4.0.1 (iPhone 3G[S]) (8A306): iPhone2,1_4.0.1_8A306_Restore.ipsw
4.0 (iPhone 3G[S]) (8A293): iPhone2,1_4.0_8A293_Restore.ipsw
3.1.3 (iPhone 3G[S]) (7E18): iPhone2,1_3.1.3_7E18_Restore.ipsw
3.1.2 (iPhone 3G[S]) (7D11): iPhone2,1_3.1.2_7D11_Restore.ipsw
3.1 (iPhone 3G[S]) (7C144): iPhone2,1_3.1_7C144_Restore.ipsw
3.0.1 (iPhone 3G[S]) (7A400): iPhone2,1_3.0.1_7A400_Restore.ipsw
3.0 (iPhone 3G[S]) (7A341): iPhone2,1_3.0_7A341_Restore.ipsw

Download Firmware iPhone

4.2.1 (iPhone 3G) (8C148): iPhone1,2_4.2.1_8C148_Restore.ipsw
4.1 (iPhone 3G) (8B117): iPhone1,2_4.1_8B117_Restore.ipsw
4.0.2 (iPhone 3G) (8A400): iPhone1,2_4.0.2_8A400_Restore.ipsw
4.0.1 (iPhone 3G) (8A306): iPhone1,2_4.0.1_8A306_Restore.ipsw
4.0 (iPhone 3G) (8A293): iPhone1,2_4.0_8A293_Restore.ipsw
3.1.3 (iPhone 3G) (7E18): iPhone1,2_3.1.3_7E18_Restore.ipsw
3.1.3 (iPhone 2G) (7E18): iPhone1,1_3.1.3_7E18_Restore.ipsw
3.1.2 (iPhone 3G) (7D11): iPhone1,2_3.1.2_7D11_Restore.ipsw
3.1.2 (iPhone 2G) (7D11): iPhone1,1_3.1.2_7D11_Restore.ipsw
3.1 (iPhone 3G) (7C144): iPhone1,2_3.1_7C144_Restore.ipsw
3.1 (iPhone 2G) (7C144): iPhone1,1_3.1_7C144_Restore.ipsw
3.0.1 (iPhone 3G) (7A400): iPhone1,2_3.0.1_7A400_Restore.ipsw
3.0.1 (iPhone 2G) (7A400): iPhone1,1_3.0.1_7A400_Restore.ipsw
3.0 (iPhone 3G) (7A341): iPhone1,2_3.0_7A341_Restore.ipsw
3.0 (iPhone 2G) (7A341): iPhone1,1_3.0_7A341_Restore.ipsw
2.2.1 (iPhone 3G) (5H11): iPhone1,2_2.2.1_5H11_Restore.ipsw
2.2.1 (iPhone 2G) (5H11): iPhone1,1_2.2.1_5H11_Restore.ipsw
2.2 (iPhone 3G) (5G77): iPhone1,2_2.2_5G77_Restore.ipsw
2.2 (iPhone 2G) (5G77): iPhone1,1_2.2_5G77_Restore.ipsw
2.1 (iPhone 3G) (5F136): iPhone1,2_2.1_5F136_Restore.ipsw
2.1 (iPhone 2G) (5F136): iPhone1,1_2.1_5F136_Restore.ipsw
2.0.2 (iPhone 3G) (5C1): iPhone1,2_2.0.2_5C1_Restore.ipsw
2.0.2 (iPhone 2G) (5C1): iPhone1,1_2.0.2_5C1_Restore.ipsw
2.0.1 (iPhone 3G) (5B108): iPhone1,2_2.0.1_5B108_Restore.ipsw
2.0.1 (iPhone 2G) (5B108): iPhone1,1_2.0.1_5B108_Restore.ipsw
2.0 (iPhone 3G) (5A347): iPhone1,2_2.0_5A347_Restore.ipsw
2.0 (iPhone 2G) (5A347): iPhone1,1_2.0_5A347_Restore.ipsw
1.1.4 (iPhone 2G) (4A102): iPhone1,1_1.1.4_4A102_Restore.ipsw
1.1.3 (iPhone 2G) (4A93): iPhone1,1_1.1.3_4A93_Restore.ipsw
1.1.2 (iPhone 2G) (3B48b): iPhone1,1_1.1.2_3B48b_Restore.ipsw
1.1.1 (iPhone 2G) (3A109a): iPhone1,1_1.1.1_3A109a_Restore.ipsw
1.0.2 (iPhone 2G) (1C28): iPhone1,1_1.0.2_1C28_Restore.ipsw
1.0.1 (iPhone 2G) (1C25): iPhone1,1_1.0.1_1C25_Restore.ipsw
1.0 (iPhone 2G) (1A543a): iPhone1,1_1.0_1A543a_Restore.ipsw

Download Firmware iPad

9.2.1 (iPad Pro GSM&CDMA Model A1652) (13D15): iPad6,8_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Pro GSM&CDMA Model A1652) (13D20): iPad6,8_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad Pro Wifi Model A1584) (13D15): iPad6,7_9.2.1_13D15_Restore.ipsw
9.2 (iPad Pro GSM&CDMA Model A1652) (13C75): iPad6,8_9.2_13C75_Restore.ipsw
9.2 (iPad Pro Wifi Model A1584) (13C75): iPad6,7_9.2_13C75_Restore.ipsw
9.1 (iPad Pro GSM&CDMA Model A1652) (13B144): iPad6,8_9.1_13B144_Restore.ipsw
9.1 (iPad Pro GSM&CDMA Model A1652) (13B143): iPad6,8_9.1_13B143_Restore.ipsw
9.1 (iPad Pro Wifi Model A1584) (13B143): iPad6,7_9.1_13B143_Restore.ipsw
9.1 (iPad Pro Wifi Model A1584) (13B144): iPad6,7_9.1_13B144_Restore.ipsw

Download Firmware iPad

9.2.1 (iPad Air 2 GSM Model A1567) (13D15): iPad5,4_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Air 2 GSM Model A1567) (13D20): iPad5,4_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad Air 2 WiFi Model A1566) (13D15): iPad5,3_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Air 2 WiFi Model A1566) (13D20): iPad5,3_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad Mini 4 GSM&CDMA Model A1550) (13D15): iPad5,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini 4 GSM&CDMA Model A1550) (13D20): iPad5,2_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad Mini 4 WiFi Model A1538) (13D15): iPad5,1_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini 4 WiFi Model A1538) (13D20): iPad5,1_9.2.1_13D20_Restore.ipsw
9.2 (iPad Air 2 GSM Model A1567) (13C75): iPad5,4_9.2_13C75_Restore.ipsw
9.2 (iPad Air 2 WiFi Model A1566) (13C75): iPad5,3_9.2_13C75_Restore.ipsw
9.2 (iPad Mini 4 GSM&CDMA Model A1550) (13C75): iPad5,2_9.2_13C75_Restore.ipsw
9.2 (iPad Mini 4 WiFi Model A1538) (13C75): iPad5,1_9.2_13C75_Restore.ipsw
9.1 (iPad Air 2 GSM Model A1567) (13B143): iPad5,4_9.1_13B143_Restore.ipsw
9.1 (iPad Air 2 WiFi Model A1566) (13B143): iPad5,3_9.1_13B143_Restore.ipsw
9.1 (iPad Mini 4 GSM&CDMA Model A1550) (13B143): iPad5,2_9.1_13B143_Restore.ipsw
9.1 (iPad Mini 4 WiFi Model A1538) (13B143): iPad5,1_9.1_13B143_Restore.ipsw
9.0.2 (iPad Air 2 GSM Model A1567) (13A452): iPad5,4_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Air 2 WiFi Model A1566) (13A452): iPad5,3_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini 4 GSM&CDMA Model A1550) (13A452): iPad5,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini 4 WiFi Model A1538) (13A452): iPad5,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPad Air 2 GSM Model A1567) (13A404): iPad5,4_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Air 2 WiFi Model A1566) (13A404): iPad5,3_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini 4 GSM&CDMA Model A1550) (13A404): iPad5,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini 4 WiFi Model A1538) (13A404): iPad5,1_9.0.1_13A404_Restore.ipsw
9.0 (iPad Air 2 GSM Model A1567) (13A344): iPad5,4_9.0_13A344_Restore.ipsw
9.0 (iPad Air 2 WiFi Model A1566) (13A344): iPad5,3_9.0_13A344_Restore.ipsw
9.0 (iPad Mini 4 GSM&CDMA Model A1550) (13A340): iPad5,2_9.0_13A340_Restore.ipsw
9.0 (iPad Mini 4 WiFi Model A1538) (13A340): iPad5,1_9.0_13A340_Restore.ipsw
8.4.1 (iPad Air 2 GSM Model A1567) (12H321): iPad5,4_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Air 2 WiFi Model A1566) (12H321): iPad5,3_8.4.1_12H321_Restore.ipsw
8.4 (iPad Air 2 GSM Model A1567) (12H143): iPad5,4_8.4_12H143_Restore.ipsw
8.4 (iPad Air 2 WiFi Model A1566) (12H143): iPad5,3_8.4_12H143_Restore.ipsw
8.3 (iPad Air 2 GSM Model A1567) (12F69): iPad5,4_8.3_12F69_Restore.ipsw
8.3 (iPad Air 2 WiFi Model A1566) (12F69): iPad5,3_8.3_12F69_Restore.ipsw
8.2 (iPad Air 2 GSM Model A1567) (12D508): iPad5,4_8.2_12D508_Restore.ipsw
8.2 (iPad Air 2 WiFi Model A1566) (12D508): iPad5,3_8.2_12D508_Restore.ipsw
8.1.3 (iPad Air 2 GSM Model A1567) (12B466): iPad5,4_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Air 2 WiFi Model A1566) (12B466): iPad5,3_8.1.3_12B466_Restore.ipsw
8.1.2 (iPad Air 2 GSM Model A1567) (12B440): iPad5,4_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Air 2 WiFi Model A1566) (12B440): iPad5,3_8.1.2_12B440_Restore.ipsw
8.1.1 (iPad Air 2 GSM Model A1567) (12B436): iPad5,4_8.1.1_12B436_Restore.ipsw
8.1.1 (iPad Air 2 WiFi Model A1566) (12B436): iPad5,3_8.1.1_12B436_Restore.ipsw
8.1 (iPad Air 2 GSM Model A1567) (12B410): iPad5,4_8.1_12B410_Restore.ipsw
8.1 (iPad Air 2 WiFi Model A1566) (12B410): iPad5,3_8.1_12B410_Restore.ipsw

Download Firmware iPad

9.2.1 (iPad mini 3 GSM&CDMA Model A1601) (13D15): iPad4,9_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad mini 3 GSM&CDMA Model A1601) (13D20): iPad4,9_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad mini 3 GSM&CDMA Model A1600) (13D15): iPad4,8_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad mini 3 GSM&CDMA Model A1600) (13D20): iPad4,8_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad mini 3 Wifi Model A1599) (13D15): iPad4,7_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad mini 3 Wifi Model A1599) (13D20): iPad4,7_9.2.1_13D20_Restore.ipsw
9.2.1 (iPad Mini 2 Model A1491) (13D15): iPad4,6_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini 2 GSM&CDMA Model A1490) (13D15): iPad4,5_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini 2 WiFi Model A1489) (13D15): iPad4,4_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Air Model A1476) (13D15): iPad4,3_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Air GSM&CDMA Model A1475) (13D15): iPad4,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Air WiFi Model A1474) (13D15): iPad4,1_9.2.1_13D15_Restore.ipsw
9.2 (iPad mini 3 GSM&CDMA Model A1601) (13C75): iPad4,9_9.2_13C75_Restore.ipsw
9.2 (iPad mini 3 GSM&CDMA Model A1600) (13C75): iPad4,8_9.2_13C75_Restore.ipsw
9.2 (iPad mini 3 Wifi Model A1599) (13C75): iPad4,7_9.2_13C75_Restore.ipsw
9.2 (iPad Mini 2 Model A1491) (13C75): iPad4,6_9.2_13C75_Restore.ipsw
9.2 (iPad Mini 2 GSM&CDMA Model A1490) (13C75): iPad4,5_9.2_13C75_Restore.ipsw
9.2 (iPad Mini 2 WiFi Model A1489) (13C75): iPad4,4_9.2_13C75_Restore.ipsw
9.2 (iPad Air Model A1476) (13C75): iPad4,3_9.2_13C75_Restore.ipsw
9.2 (iPad Air GSM&CDMA Model A1475) (13C75): iPad4,2_9.2_13C75_Restore.ipsw
9.2 (iPad Air WiFi Model A1474) (13C75): iPad4,1_9.2_13C75_Restore.ipsw
9.1 (iPad mini 3 GSM&CDMA Model A1601) (13B143): iPad4,9_9.1_13B143_Restore.ipsw
9.1 (iPad mini 3 GSM&CDMA Model A1600) (13B143): iPad4,8_9.1_13B143_Restore.ipsw
9.1 (iPad mini 3 Wifi Model A1599) (13B143): iPad4,7_9.1_13B143_Restore.ipsw
9.1 (iPad Mini 2 Model A1491) (13B143): iPad4,6_9.1_13B143_Restore.ipsw
9.1 (iPad Mini 2 GSM&CDMA Model A1490) (13B143): iPad4,5_9.1_13B143_Restore.ipsw
9.1 (iPad Mini 2 WiFi Model A1489) (13B143): iPad4,4_9.1_13B143_Restore.ipsw
9.1 (iPad Air Model A1476) (13B143): iPad4,3_9.1_13B143_Restore.ipsw
9.1 (iPad Air GSM&CDMA Model A1475) (13B143): iPad4,2_9.1_13B143_Restore.ipsw
9.1 (iPad Air WiFi Model A1474) (13B143): iPad4,1_9.1_13B143_Restore.ipsw
9.0.2 (iPad mini 3 GSM&CDMA Model A1601) (13A452): iPad4,9_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad mini 3 GSM&CDMA Model A1600) (13A452): iPad4,8_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad mini 3 Wifi Model A1599) (13A452): iPad4,7_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini 2 Model A1491) (13A452): iPad4,6_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini 2 GSM&CDMA Model A1490) (13A452): iPad4,5_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini 2 WiFi Model A1489) (13A452): iPad4,4_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Air Model A1476) (13A452): iPad4,3_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Air GSM&CDMA Model A1475) (13A452): iPad4,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Air WiFi Model A1474) (13A452): iPad4,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPad mini 3 GSM&CDMA Model A1601) (13A404): iPad4,9_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad mini 3 GSM&CDMA Model A1600) (13A404): iPad4,8_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad mini 3 Wifi Model A1599) (13A404): iPad4,7_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini 2 Model A1491) (13A404): iPad4,6_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini 2 GSM&CDMA Model A1490) (13A404): iPad4,5_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini 2 WiFi Model A1489) (13A404): iPad4,4_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Air Model A1476) (13A404): iPad4,3_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Air GSM&CDMA Model A1475) (13A404): iPad4,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Air WiFi Model A1474) (13A404): iPad4,1_9.0.1_13A404_Restore.ipsw
9.0 (iPad mini 3 GSM&CDMA Model A1601) (13A344): iPad4,9_9.0_13A344_Restore.ipsw
9.0 (iPad mini 3 GSM&CDMA Model A1600) (13A344): iPad4,8_9.0_13A344_Restore.ipsw
9.0 (iPad mini 3 Wifi Model A1599) (13A344): iPad4,7_9.0_13A344_Restore.ipsw
9.0 (iPad Mini 2 Model A1491) (13A344): iPad4,6_9.0_13A344_Restore.ipsw
9.0 (iPad Mini 2 GSM&CDMA Model A1490) (13A344): iPad4,5_9.0_13A344_Restore.ipsw
9.0 (iPad Mini 2 WiFi Model A1489) (13A344): iPad4,4_9.0_13A344_Restore.ipsw
9.0 (iPad Air Model A1476) (13A344): iPad4,3_9.0_13A344_Restore.ipsw
9.0 (iPad Air GSM&CDMA Model A1475) (13A344): iPad4,2_9.0_13A344_Restore.ipsw
9.0 (iPad Air WiFi Model A1474) (13A344): iPad4,1_9.0_13A344_Restore.ipsw
8.4.1 (iPad mini 3 GSM&CDMA Model A1601) (12H321): iPad4,9_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad mini 3 GSM&CDMA Model A1600) (12H321): iPad4,8_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad mini 3 Wifi Model A1599) (12H321): iPad4,7_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Mini 2 Model A1491) (12H321): iPad4,6_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Mini 2 GSM&CDMA Model A1490) (12H321): iPad4,5_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Mini 2 WiFi Model A1489) (12H321): iPad4,4_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Air Model A1476) (12H321): iPad4,3_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Air GSM&CDMA Model A1475) (12H321): iPad4,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Air WiFi Model A1474) (12H321): iPad4,1_8.4.1_12H321_Restore.ipsw
8.4 (iPad mini 3 GSM&CDMA Model A1601) (12H143): iPad4,9_8.4_12H143_Restore.ipsw
8.4 (iPad mini 3 GSM&CDMA Model A1600) (12H143): iPad4,8_8.4_12H143_Restore.ipsw
8.4 (iPad mini 3 Wifi Model A1599) (12H143): iPad4,7_8.4_12H143_Restore.ipsw
8.4 (iPad Mini 2 Model A1491) (12H143): iPad4,6_8.4_12H143_Restore.ipsw
8.4 (iPad Mini 2 GSM&CDMA Model A1490) (12H143): iPad4,5_8.4_12H143_Restore.ipsw
8.4 (iPad Mini 2 WiFi Model A1489) (12H143): iPad4,4_8.4_12H143_Restore.ipsw
8.4 (iPad Air Model A1476) (12H143): iPad4,3_8.4_12H143_Restore.ipsw
8.4 (iPad Air GSM&CDMA Model A1475) (12H143): iPad4,2_8.4_12H143_Restore.ipsw
8.4 (iPad Air WiFi Model A1474) (12H143): iPad4,1_8.4_12H143_Restore.ipsw
8.3 (iPad mini 3 GSM&CDMA Model A1601) (12F69): iPad4,9_8.3_12F69_Restore.ipsw
8.3 (iPad mini 3 GSM&CDMA Model A1600) (12F69): iPad4,8_8.3_12F69_Restore.ipsw
8.3 (iPad mini 3 Wifi Model A1599) (12F69): iPad4,7_8.3_12F69_Restore.ipsw
8.3 (iPad Mini 2 Model A1491) (12F69): iPad4,6_8.3_12F69_Restore.ipsw
8.3 (iPad Mini 2 GSM&CDMA Model A1490) (12F69): iPad4,5_8.3_12F69_Restore.ipsw
8.3 (iPad Mini 2 WiFi Model A1489) (12F69): iPad4,4_8.3_12F69_Restore.ipsw
8.3 (iPad Air Model A1476) (12F69): iPad4,3_8.3_12F69_Restore.ipsw
8.3 (iPad Air GSM&CDMA Model A1475) (12F69): iPad4,2_8.3_12F69_Restore.ipsw
8.3 (iPad Air WiFi Model A1474) (12F69): iPad4,1_8.3_12F69_Restore.ipsw
8.2 (iPad mini 3 GSM&CDMA Model A1601) (12D508): iPad4,9_8.2_12D508_Restore.ipsw
8.2 (iPad mini 3 GSM&CDMA Model A1600) (12D508): iPad4,8_8.2_12D508_Restore.ipsw
8.2 (iPad mini 3 Wifi Model A1599) (12D508): iPad4,7_8.2_12D508_Restore.ipsw
8.2 (iPad Mini 2 Model A1491) (12D508): iPad4,6_8.2_12D508_Restore.ipsw
8.2 (iPad Mini 2 GSM&CDMA Model A1490) (12D508): iPad4,5_8.2_12D508_Restore.ipsw
8.2 (iPad Mini 2 WiFi Model A1489) (12D508): iPad4,4_8.2_12D508_Restore.ipsw
8.2 (iPad Air Model A1476) (12D508): iPad4,3_8.2_12D508_Restore.ipsw
8.2 (iPad Air GSM&CDMA Model A1475) (12D508): iPad4,2_8.2_12D508_Restore.ipsw
8.2 (iPad Air WiFi Model A1474) (12D508): iPad4,1_8.2_12D508_Restore.ipsw
8.1.3 (iPad mini 3 GSM&CDMA Model A1601) (12B466): iPad4,9_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad mini 3 GSM&CDMA Model A1600) (12B466): iPad4,8_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad mini 3 Wifi Model A1599) (12B466): iPad4,7_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Mini 2 Model A1491) (12B466): iPad4,6_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Mini 2 GSM&CDMA Model A1490) (12B466): iPad4,5_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Mini 2 WiFi Model A1489) (12B466): iPad4,4_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Air Model A1476) (12B466): iPad4,3_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Air GSM&CDMA Model A1475) (12B466): iPad4,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Air WiFi Model A1474) (12B466): iPad4,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPad mini 3 GSM&CDMA Model A1601) (12B440): iPad4,9_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad mini 3 GSM&CDMA Model A1600) (12B440): iPad4,8_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad mini 3 Wifi Model A1599) (12B440): iPad4,7_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Mini 2 Model A1491) (12B440): iPad4,6_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Mini 2 GSM&CDMA Model A1490) (12B440): iPad4,5_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Mini 2 WiFi Model A1489) (12B440): iPad4,4_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Air Model A1476) (12B440): iPad4,3_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Air GSM&CDMA Model A1475) (12B440): iPad4,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Air WiFi Model A1474) (12B440): iPad4,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPad mini 3 GSM&CDMA Model A1601) (12B436): iPad4,9_8.1.1_12B436_Restore.ipsw
8.1.1 (iPad mini 3 GSM&CDMA Model A1600) (12B436): iPad4,8_8.1.1_12B436_Restore.ipsw
8.1.1 (iPad mini 3 Wifi Model A1599) (12B436): iPad4,7_8.1.1_12B436_Restore.ipsw
8.1.1 (iPad Mini 2 Model A1491) (12B435): iPad4,6_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Mini 2 GSM&CDMA Model A1490) (12B435): iPad4,5_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Mini 2 WiFi Model A1489) (12B435): iPad4,4_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Air Model A1476) (12B435): iPad4,3_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Air GSM&CDMA Model A1475) (12B435): iPad4,2_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Air WiFi Model A1474) (12B435): iPad4,1_8.1.1_12B435_Restore.ipsw
8.1 (iPad mini 3 GSM&CDMA Model A1601) (12B410): iPad4,9_8.1_12B410_Restore.ipsw
8.1 (iPad mini 3 GSM&CDMA Model A1600) (12B410): iPad4,8_8.1_12B410_Restore.ipsw
8.1 (iPad mini 3 Wifi Model A1599) (12B410): iPad4,7_8.1_12B410_Restore.ipsw
8.1 (iPad Mini 2 Model A1491) (12B410): iPad4,6_8.1_12B410_Restore.ipsw
8.1 (iPad Mini 2 GSM&CDMA Model A1490) (12B410): iPad4,5_8.1_12B410_Restore.ipsw
8.1 (iPad Mini 2 WiFi Model A1489) (12B410): iPad4,4_8.1_12B410_Restore.ipsw
8.1 (iPad Air Model A1476) (12B410): iPad4,3_8.1_12B410_Restore.ipsw
8.1 (iPad Air GSM&CDMA Model A1475) (12B410): iPad4,2_8.1_12B410_Restore.ipsw
8.1 (iPad Air WiFi Model A1474) (12B410): iPad4,1_8.1_12B410_Restore.ipsw
8.0.2 (iPad Mini 2 Model A1491) (12A405): iPad4,6_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Mini 2 GSM&CDMA Model A1490) (12A405): iPad4,5_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Mini 2 WiFi Model A1489) (12A405): iPad4,4_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Air Model A1476) (12A405): iPad4,3_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Air GSM&CDMA Model A1475) (12A405): iPad4,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Air WiFi Model A1474) (12A405): iPad4,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPad Mini 2 Model A1491) (12A402): iPad4,6_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Mini 2 GSM&CDMA Model A1490) (12A402): iPad4,5_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Mini 2 WiFi Model A1489) (12A402): iPad4,4_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Air Model A1476) (12A402): iPad4,3_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Air GSM&CDMA Model A1475) (12A402): iPad4,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Air WiFi Model A1474) (12A402): iPad4,1_8.0.1_12A402_Restore.ipsw
8.0 (iPad Mini 2 Model A1491) (12A365): iPad4,6_8.0_12A365_Restore.ipsw
8.0 (iPad Mini 2 GSM&CDMA Model A1490) (12A365): iPad4,5_8.0_12A365_Restore.ipsw
8.0 (iPad Mini 2 WiFi Model A1489) (12A365): iPad4,4_8.0_12A365_Restore.ipsw
8.0 (iPad Air Model A1476) (12A365): iPad4,3_8.0_12A365_Restore.ipsw
8.0 (iPad Air GSM&CDMA Model A1475) (12A365): iPad4,2_8.0_12A365_Restore.ipsw
8.0 (iPad Air WiFi Model A1474) (12A365): iPad4,1_8.0_12A365_Restore.ipsw
7.1.2 (iPad Mini 2 Model A1491) (11D257): iPad4,6_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Mini 2 GSM&CDMA Model A1490) (11D257): iPad4,5_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Mini 2 WiFi Model A1489) (11D257): iPad4,4_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Air Model A1476) (11D257): iPad4,3_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Air GSM&CDMA Model A1475) (11D257): iPad4,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Air WiFi Model A1474) (11D257): iPad4,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPad Mini 2 Model A1491) (11D201): iPad4,6_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Mini 2 GSM&CDMA Model A1490) (11D201): iPad4,5_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Mini 2 WiFi Model A1489) (11D201): iPad4,4_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Air Model A1476) (11D201): iPad4,3_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Air GSM&CDMA Model A1475) (11D201): iPad4,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Air WiFi Model A1474) (11D201): iPad4,1_7.1.1_11D201_Restore.ipsw
7.1 (iPad Mini 2 Model A1491) (11D167): iPad4,6_7.1_11D167_Restore.ipsw
7.1 (iPad Mini 2 GSM&CDMA Model A1490) (11D167): iPad4,5_7.1_11D167_Restore.ipsw
7.1 (iPad Mini 2 WiFi Model A1489) (11D167): iPad4,4_7.1_11D167_Restore.ipsw
7.1 (iPad Air Model A1476) (11D167): iPad4,3_7.1_11D167_Restore.ipsw
7.1 (iPad Air GSM&CDMA Model A1475) (11D167): iPad4,2_7.1_11D167_Restore.ipsw
7.1 (iPad Air WiFi Model A1474) (11D167): iPad4,1_7.1_11D167_Restore.ipsw
7.0.6 (iPad Mini 2 GSM&CDMA Model A1490) (11B651): iPad4,5_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad Mini 2 WiFi Model A1489) (11B651): iPad4,4_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad Air GSM&CDMA Model A1475) (11B651): iPad4,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad Air WiFi Model A1474) (11B651): iPad4,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPad Mini 2 GSM&CDMA Model A1490) (11B554a): iPad4,5_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad Mini 2 WiFi Model A1489) (11B554a): iPad4,4_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad Air GSM&CDMA Model A1475) (11B554a): iPad4,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad Air WiFi Model A1474) (11B554a): iPad4,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPad Mini 2 GSM&CDMA Model A1490) (11B511): iPad4,5_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad Mini 2 WiFi Model A1489) (11B511): iPad4,4_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad Air GSM&CDMA Model A1475) (11B511): iPad4,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad Air WiFi Model A1474) (11B511): iPad4,1_7.0.3_11B511_Restore.ipsw

Download Firmware iPad

9.2.1 (iPad 4 CDMA Model A1460) (13D15): iPad3,6_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 4 GSM Model A1459) (13D15): iPad3,5_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 4 Wi-Fi Model A1458) (13D15): iPad3,4_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 3 GSM model A1430) (13D15): iPad3,3_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 3 CDMA Model (VS) A1403) (13D15): iPad3,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 3 Wi-Fi Model A1416) (13D15): iPad3,1_9.2.1_13D15_Restore.ipsw
9.2 (iPad 4 CDMA Model A1460) (13C75): iPad3,6_9.2_13C75_Restore.ipsw
9.2 (iPad 4 GSM Model A1459) (13C75): iPad3,5_9.2_13C75_Restore.ipsw
9.2 (iPad 4 Wi-Fi Model A1458) (13C75): iPad3,4_9.2_13C75_Restore.ipsw
9.2 (iPad 3 GSM model A1430) (13C75): iPad3,3_9.2_13C75_Restore.ipsw
9.2 (iPad 3 CDMA Model (VS) A1403) (13C75): iPad3,2_9.2_13C75_Restore.ipsw
9.2 (iPad 3 Wi-Fi Model A1416) (13C75): iPad3,1_9.2_13C75_Restore.ipsw
9.1 (iPad 4 CDMA Model A1460) (13B143): iPad3,6_9.1_13B143_Restore.ipsw
9.1 (iPad 4 GSM Model A1459) (13B143): iPad3,5_9.1_13B143_Restore.ipsw
9.1 (iPad 4 Wi-Fi Model A1458) (13B143): iPad3,4_9.1_13B143_Restore.ipsw
9.1 (iPad 3 GSM model A1430) (13B143): iPad3,3_9.1_13B143_Restore.ipsw
9.1 (iPad 3 CDMA Model (VS) A1403) (13B143): iPad3,2_9.1_13B143_Restore.ipsw
9.1 (iPad 3 Wi-Fi Model A1416) (13B143): iPad3,1_9.1_13B143_Restore.ipsw
9.0.2 (iPad 4 CDMA Model A1460) (13A452): iPad3,6_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 4 GSM Model A1459) (13A452): iPad3,5_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 4 Wi-Fi Model A1458) (13A452): iPad3,4_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 3 GSM model A1430) (13A452): iPad3,3_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 3 CDMA Model (VS) A1403) (13A452): iPad3,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 3 Wi-Fi Model A1416) (13A452): iPad3,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPad 4 CDMA Model A1460) (13A404): iPad3,6_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 4 GSM Model A1459) (13A404): iPad3,5_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 4 Wi-Fi Model A1458) (13A404): iPad3,4_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 3 GSM model A1430) (13A404): iPad3,3_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 3 CDMA Model (VS) A1403) (13A404): iPad3,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 3 Wi-Fi Model A1416) (13A404): iPad3,1_9.0.1_13A404_Restore.ipsw
9.0 (iPad 4 CDMA Model A1460) (13A344): iPad3,6_9.0_13A344_Restore.ipsw
9.0 (iPad 4 GSM Model A1459) (13A344): iPad3,5_9.0_13A344_Restore.ipsw
9.0 (iPad 4 Wi-Fi Model A1458) (13A344): iPad3,4_9.0_13A344_Restore.ipsw
9.0 (iPad 3 GSM model A1430) (13A344): iPad3,3_9.0_13A344_Restore.ipsw
9.0 (iPad 3 CDMA Model (VS) A1403) (13A344): iPad3,2_9.0_13A344_Restore.ipsw
9.0 (iPad 3 Wi-Fi Model A1416) (13A344): iPad3,1_9.0_13A344_Restore.ipsw
8.4.1 (iPad 4 CDMA Model A1460) (12H321): iPad3,6_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 4 GSM Model A1459) (12H321): iPad3,5_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 4 Wi-Fi Model A1458) (12H321): iPad3,4_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 3 GSM model A1430) (12H321): iPad3,3_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 3 CDMA Model (VS) A1403) (12H321): iPad3,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 3 Wi-Fi Model A1416) (12H321): iPad3,1_8.4.1_12H321_Restore.ipsw
8.4 (iPad 4 CDMA Model A1460) (12H143): iPad3,6_8.4_12H143_Restore.ipsw
8.4 (iPad 4 GSM Model A1459) (12H143): iPad3,5_8.4_12H143_Restore.ipsw
8.4 (iPad 4 Wi-Fi Model A1458) (12H143): iPad3,4_8.4_12H143_Restore.ipsw
8.4 (iPad 3 GSM model A1430) (12H143): iPad3,3_8.4_12H143_Restore.ipsw
8.4 (iPad 3 CDMA Model (VS) A1403) (12H143): iPad3,2_8.4_12H143_Restore.ipsw
8.4 (iPad 3 Wi-Fi Model A1416) (12H143): iPad3,1_8.4_12H143_Restore.ipsw
8.3 (iPad 4 CDMA Model A1460) (12F69): iPad3,6_8.3_12F69_Restore.ipsw
8.3 (iPad 4 GSM Model A1459) (12F69): iPad3,5_8.3_12F69_Restore.ipsw
8.3 (iPad 4 Wi-Fi Model A1458) (12F69): iPad3,4_8.3_12F69_Restore.ipsw
8.3 (iPad 3 GSM model A1430) (12F69): iPad3,3_8.3_12F69_Restore.ipsw
8.3 (iPad 3 CDMA Model (VS) A1403) (12F69): iPad3,2_8.3_12F69_Restore.ipsw
8.3 (iPad 3 Wi-Fi Model A1416) (12F69): iPad3,1_8.3_12F69_Restore.ipsw
8.2 (iPad 4 CDMA Model A1460) (12D508): iPad3,6_8.2_12D508_Restore.ipsw
8.2 (iPad 4 GSM Model A1459) (12D508): iPad3,5_8.2_12D508_Restore.ipsw
8.2 (iPad 4 Wi-Fi Model A1458) (12D508): iPad3,4_8.2_12D508_Restore.ipsw
8.2 (iPad 3 GSM model A1430) (12D508): iPad3,3_8.2_12D508_Restore.ipsw
8.2 (iPad 3 CDMA Model (VS) A1403) (12D508): iPad3,2_8.2_12D508_Restore.ipsw
8.2 (iPad 3 Wi-Fi Model A1416) (12D508): iPad3,1_8.2_12D508_Restore.ipsw
8.1.3 (iPad 4 CDMA Model A1460) (12B466): iPad3,6_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 4 GSM Model A1459) (12B466): iPad3,5_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 4 Wi-Fi Model A1458) (12B466): iPad3,4_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 3 GSM model A1430) (12B466): iPad3,3_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 3 CDMA Model (VS) A1403) (12B466): iPad3,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 3 Wi-Fi Model A1416) (12B466): iPad3,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPad 4 CDMA Model A1460) (12B440): iPad3,6_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 4 GSM Model A1459) (12B440): iPad3,5_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 4 Wi-Fi Model A1458) (12B440): iPad3,4_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 3 GSM model A1430) (12B440): iPad3,3_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 3 CDMA Model (VS) A1403) (12B440): iPad3,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 3 Wi-Fi Model A1416) (12B440): iPad3,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPad 4 CDMA Model A1460) (12B435): iPad3,6_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 4 GSM Model A1459) (12B435): iPad3,5_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 4 Wi-Fi Model A1458) (12B435): iPad3,4_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 3 GSM model A1430) (12B435): iPad3,3_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 3 CDMA Model (VS) A1403) (12B435): iPad3,2_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 3 Wi-Fi Model A1416) (12B435): iPad3,1_8.1.1_12B435_Restore.ipsw
8.1 (iPad 4 CDMA Model A1460) (12B410): iPad3,6_8.1_12B410_Restore.ipsw
8.1 (iPad 4 GSM Model A1459) (12B410): iPad3,5_8.1_12B410_Restore.ipsw
8.1 (iPad 4 Wi-Fi Model A1458) (12B410): iPad3,4_8.1_12B410_Restore.ipsw
8.1 (iPad 3 GSM model A1430) (12B410): iPad3,3_8.1_12B410_Restore.ipsw
8.1 (iPad 3 CDMA Model (VS) A1403) (12B410): iPad3,2_8.1_12B410_Restore.ipsw
8.1 (iPad 3 Wi-Fi Model A1416) (12B410): iPad3,1_8.1_12B410_Restore.ipsw
8.0.2 (iPad 4 CDMA Model A1460) (12A405): iPad3,6_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 4 GSM Model A1459) (12A405): iPad3,5_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 4 Wi-Fi Model A1458) (12A405): iPad3,4_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 3 GSM model A1430) (12A405): iPad3,3_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 3 CDMA Model (VS) A1403) (12A405): iPad3,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 3 Wi-Fi Model A1416) (12A405): iPad3,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPad 4 CDMA Model A1460) (12A402): iPad3,6_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 4 GSM Model A1459) (12A402): iPad3,5_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 4 Wi-Fi Model A1458) (12A402): iPad3,4_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 3 GSM model A1430) (12A402): iPad3,3_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 3 CDMA Model (VS) A1403) (12A402): iPad3,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 3 Wi-Fi Model A1416) (12A402): iPad3,1_8.0.1_12A402_Restore.ipsw
8.0 (iPad 4 CDMA Model A1460) (12A365): iPad3,6_8.0_12A365_Restore.ipsw
8.0 (iPad 4 GSM Model A1459) (12A365): iPad3,5_8.0_12A365_Restore.ipsw
8.0 (iPad 4 Wi-Fi Model A1458) (12A365): iPad3,4_8.0_12A365_Restore.ipsw
8.0 (iPad 3 GSM model A1430) (12A365): iPad3,3_8.0_12A365_Restore.ipsw
8.0 (iPad 3 CDMA Model (VS) A1403) (12A365): iPad3,2_8.0_12A365_Restore.ipsw
8.0 (iPad 3 Wi-Fi Model A1416) (12A365): iPad3,1_8.0_12A365_Restore.ipsw
7.1.2 (iPad 4 CDMA Model A1460) (11D257): iPad3,6_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 4 GSM Model A1459) (11D257): iPad3,5_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 4 Wi-Fi Model A1458) (11D257): iPad3,4_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 3 GSM model A1430) (11D257): iPad3,3_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 3 CDMA Model (VS) A1403) (11D257): iPad3,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 3 Wi-Fi Model A1416) (11D257): iPad3,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPad 4 CDMA Model A1460) (11D201): iPad3,6_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 4 GSM Model A1459) (11D201): iPad3,5_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 4 Wi-Fi Model A1458) (11D201): iPad3,4_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 3 GSM model A1430) (11D201): iPad3,3_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 3 CDMA Model (VS) A1403) (11D201): iPad3,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 3 Wi-Fi Model A1416) (11D201): iPad3,1_7.1.1_11D201_Restore.ipsw
7.1 (iPad 4 CDMA Model A1460) (11D167): iPad3,6_7.1_11D167_Restore.ipsw
7.1 (iPad 4 GSM Model A1459) (11D167): iPad3,5_7.1_11D167_Restore.ipsw
7.1 (iPad 4 Wi-Fi Model A1458) (11D167): iPad3,4_7.1_11D167_Restore.ipsw
7.1 (iPad 3 GSM model A1430) (11D167): iPad3,3_7.1_11D167_Restore.ipsw
7.1 (iPad 3 CDMA Model (VS) A1403) (11D167): iPad3,2_7.1_11D167_Restore.ipsw
7.1 (iPad 3 Wi-Fi Model A1416) (11D167): iPad3,1_7.1_11D167_Restore.ipsw
7.0.6 (iPad 4 CDMA Model A1460) (11B651): iPad3,6_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 4 GSM Model A1459) (11B651): iPad3,5_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 4 Wi-Fi Model A1458) (11B651): iPad3,4_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 3 GSM model A1430) (11B651): iPad3,3_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 3 CDMA Model (VS) A1403) (11B651): iPad3,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 3 Wi-Fi Model A1416) (11B651): iPad3,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPad 4 CDMA Model A1460) (11B554a): iPad3,6_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 4 GSM Model A1459) (11B554a): iPad3,5_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 4 Wi-Fi Model A1458) (11B554a): iPad3,4_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 3 GSM model A1430) (11B554a): iPad3,3_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 3 CDMA Model (VS) A1403) (11B554a): iPad3,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 3 Wi-Fi Model A1416) (11B554a): iPad3,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPad 4 CDMA Model A1460) (11B511): iPad3,6_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 4 GSM Model A1459) (11B511): iPad3,5_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 4 Wi-Fi Model A1458) (11B511): iPad3,4_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 3 GSM model A1430) (11B511): iPad3,3_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 3 CDMA Model (VS) A1403) (11B511): iPad3,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 3 Wi-Fi Model A1416) (11B511): iPad3,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPad 4 CDMA Model A1460) (11A501): iPad3,6_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 4 GSM Model A1459) (11A501): iPad3,5_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 4 Wi-Fi Model A1458) (11A501): iPad3,4_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 3 GSM model A1430) (11A501): iPad3,3_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 3 CDMA Model (VS) A1403) (11A501): iPad3,2_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 3 Wi-Fi Model A1416) (11A501): iPad3,1_7.0.2_11A501_Restore.ipsw
7.0 (iPad 4 CDMA Model A1460) (11A465): iPad3,6_7.0_11A465_Restore.ipsw
7.0 (iPad 4 GSM Model A1459) (11A465): iPad3,5_7.0_11A465_Restore.ipsw
7.0 (iPad 4 Wi-Fi Model A1458) (11A465): iPad3,4_7.0_11A465_Restore.ipsw
7.0 (iPad 3 GSM model A1430) (11A465): iPad3,3_7.0_11A465_Restore.ipsw
7.0 (iPad 3 CDMA Model (VS) A1403) (11A465): iPad3,2_7.0_11A465_Restore.ipsw
7.0 (iPad 3 Wi-Fi Model A1416) (11A465): iPad3,1_7.0_11A465_Restore.ipsw
6.1.3 (iPad 4 CDMA Model A1460) (10B329): iPad3,6_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 4 GSM Model A1459) (10B329): iPad3,5_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 4 Wi-Fi Model A1458) (10B329): iPad3,4_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 3 GSM model A1430) (10B329): iPad3,3_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 3 CDMA Model (VS) A1403) (10B329): iPad3,2_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 3 Wi-Fi Model A1416) (10B329): iPad3,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPad 4 CDMA Model A1460) (10B147): iPad3,6_6.1.2_10B147_Restore.ipsw
6.1.2 (iPad 4 GSM Model A1459) (10B147): iPad3,5_6.1.2_10B147_Restore.ipsw
6.1.2 (iPad 4 Wi-Fi Model A1458) (10B146): iPad3,4_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 3 GSM model A1430) (10B146): iPad3,3_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 3 CDMA Model (VS) A1403) (10B146): iPad3,2_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 3 Wi-Fi Model A1416) (10B146): iPad3,1_6.1.2_10B146_Restore.ipsw
6.1 (iPad 4 CDMA Model A1460) (10B141): iPad3,6_6.1_10B141_Restore.ipsw
6.1 (iPad 4 GSM Model A1459) (10B141): iPad3,5_6.1_10B141_Restore.ipsw
6.1 (iPad 4 Wi-Fi Model A1458) (10B141): iPad3,4_6.1_10B141_Restore.ipsw
6.1 (iPad 3 GSM model A1430) (10B141): iPad3,3_6.1_10B141_Restore.ipsw
6.1 (iPad 3 CDMA Model (VS) A1403) (10B141): iPad3,2_6.1_10B141_Restore.ipsw
6.1 (iPad 3 Wi-Fi Model A1416) (10B141): iPad3,1_6.1_10B141_Restore.ipsw
6.0.1 (iPad 4 CDMA Model A1460) (10A8426): iPad3,6_6.0.1_10A8426_Restore.ipsw
6.0.1 (iPad 4 GSM Model A1459) (10A8426): iPad3,5_6.0.1_10A8426_Restore.ipsw
6.0.1 (iPad 4 Wi-Fi Model A1458) (10A523): iPad3,4_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 3 GSM model A1430) (10A523): iPad3,3_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 3 CDMA Model (VS) A1403) (10A523): iPad3,2_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 3 Wi-Fi Model A1416) (10A523): iPad3,1_6.0.1_10A523_Restore.ipsw
6.0 (iPad 4 Wi-Fi Model A1458) (10A407): iPad3,4_6.0_10A407_Restore.ipsw
6.0 (iPad 3 GSM model A1430) (10A403): iPad3,3_6.0_10A403_Restore.ipsw
6.0 (iPad 3 CDMA Model (VS) A1403) (10A403): iPad3,2_6.0_10A403_Restore.ipsw
6.0 (iPad 3 Wi-Fi Model A1416) (10A403): iPad3,1_6.0_10A403_Restore.ipsw
5.1.1 (iPad 3 GSM model A1430) (9B206): iPad3,3_5.1.1_9B206_Restore.ipsw
5.1.1 (iPad 3 CDMA Model (VS) A1403) (9B206): iPad3,2_5.1.1_9B206_Restore.ipsw
5.1.1 (iPad 3 Wi-Fi Model A1416) (9B206): iPad3,1_5.1.1_9B206_Restore.ipsw
5.1 (iPad 3 GSM model A1430) (9B176): iPad3,3_5.1_9B176_Restore.ipsw
5.1 (iPad 3 CDMA Model (VS) A1403) (9B176): iPad3,2_5.1_9B176_Restore.ipsw
5.1 (iPad 3 Wi-Fi Model A1416) (9B176): iPad3,1_5.1_9B176_Restore.ipsw

Download Firmware iPad

9.2.1 (iPad Mini CDMA Model A1455) (13D15): iPad2,7_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini GSM Model A1454) (13D15): iPad2,6_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad Mini Wi-Fi Model A1432) (13D15): iPad2,5_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 2 Wi-Fi Model (2012)) (13D15): iPad2,4_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 2 CDMA Model A1397) (13D15): iPad2,3_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 2 GSM Model A1396) (13D15): iPad2,2_9.2.1_13D15_Restore.ipsw
9.2.1 (iPad 2 Wi-Fi Model A1395) (13D15): iPad2,1_9.2.1_13D15_Restore.ipsw
9.2 (iPad Mini CDMA Model A1455) (13C75): iPad2,7_9.2_13C75_Restore.ipsw
9.2 (iPad Mini GSM Model A1454) (13C75): iPad2,6_9.2_13C75_Restore.ipsw
9.2 (iPad Mini Wi-Fi Model A1432) (13C75): iPad2,5_9.2_13C75_Restore.ipsw
9.2 (iPad 2 Wi-Fi Model (2012)) (13C75): iPad2,4_9.2_13C75_Restore.ipsw
9.2 (iPad 2 CDMA Model A1397) (13C75): iPad2,3_9.2_13C75_Restore.ipsw
9.2 (iPad 2 GSM Model A1396) (13C75): iPad2,2_9.2_13C75_Restore.ipsw
9.2 (iPad 2 Wi-Fi Model A1395) (13C75): iPad2,1_9.2_13C75_Restore.ipsw
9.1 (iPad Mini CDMA Model A1455) (13B143): iPad2,7_9.1_13B143_Restore.ipsw
9.1 (iPad Mini GSM Model A1454) (13B143): iPad2,6_9.1_13B143_Restore.ipsw
9.1 (iPad Mini Wi-Fi Model A1432) (13B143): iPad2,5_9.1_13B143_Restore.ipsw
9.1 (iPad 2 Wi-Fi Model (2012)) (13B143): iPad2,4_9.1_13B143_Restore.ipsw
9.1 (iPad 2 CDMA Model A1397) (13B143): iPad2,3_9.1_13B143_Restore.ipsw
9.1 (iPad 2 GSM Model A1396) (13B143): iPad2,2_9.1_13B143_Restore.ipsw
9.1 (iPad 2 Wi-Fi Model A1395) (13B143): iPad2,1_9.1_13B143_Restore.ipsw
9.0.2 (iPad Mini CDMA Model A1455) (13A452): iPad2,7_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini GSM Model A1454) (13A452): iPad2,6_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad Mini Wi-Fi Model A1432) (13A452): iPad2,5_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 2 Wi-Fi Model (2012)) (13A452): iPad2,4_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 2 CDMA Model A1397) (13A452): iPad2,3_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 2 GSM Model A1396) (13A452): iPad2,2_9.0.2_13A452_Restore.ipsw
9.0.2 (iPad 2 Wi-Fi Model A1395) (13A452): iPad2,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPad Mini CDMA Model A1455) (13A404): iPad2,7_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini GSM Model A1454) (13A404): iPad2,6_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad Mini Wi-Fi Model A1432) (13A404): iPad2,5_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 2 Wi-Fi Model (2012)) (13A404): iPad2,4_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 2 CDMA Model A1397) (13A404): iPad2,3_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 2 GSM Model A1396) (13A404): iPad2,2_9.0.1_13A404_Restore.ipsw
9.0.1 (iPad 2 Wi-Fi Model A1395) (13A404): iPad2,1_9.0.1_13A404_Restore.ipsw
9.0 (iPad Mini CDMA Model A1455) (13A344): iPad2,7_9.0_13A344_Restore.ipsw
9.0 (iPad Mini GSM Model A1454) (13A344): iPad2,6_9.0_13A344_Restore.ipsw
9.0 (iPad Mini Wi-Fi Model A1432) (13A344): iPad2,5_9.0_13A344_Restore.ipsw
9.0 (iPad 2 Wi-Fi Model (2012)) (13A344): iPad2,4_9.0_13A344_Restore.ipsw
9.0 (iPad 2 CDMA Model A1397) (13A344): iPad2,3_9.0_13A344_Restore.ipsw
9.0 (iPad 2 GSM Model A1396) (13A344): iPad2,2_9.0_13A344_Restore.ipsw
9.0 (iPad 2 Wi-Fi Model A1395) (13A344): iPad2,1_9.0_13A344_Restore.ipsw
8.4.1 (iPad Mini CDMA Model A1455) (12H321): iPad2,7_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Mini GSM Model A1454) (12H321): iPad2,6_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad Mini Wi-Fi Model A1432) (12H321): iPad2,5_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 2 Wi-Fi Model (2012)) (12H321): iPad2,4_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 2 CDMA Model A1397) (12H321): iPad2,3_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 2 GSM Model A1396) (12H321): iPad2,2_8.4.1_12H321_Restore.ipsw
8.4.1 (iPad 2 Wi-Fi Model A1395) (12H321): iPad2,1_8.4.1_12H321_Restore.ipsw
8.4 (iPad Mini CDMA Model A1455) (12H143): iPad2,7_8.4_12H143_Restore.ipsw
8.4 (iPad Mini GSM Model A1454) (12H143): iPad2,6_8.4_12H143_Restore.ipsw
8.4 (iPad Mini Wi-Fi Model A1432) (12H143): iPad2,5_8.4_12H143_Restore.ipsw
8.4 (iPad 2 Wi-Fi Model (2012)) (12H143): iPad2,4_8.4_12H143_Restore.ipsw
8.4 (iPad 2 CDMA Model A1397) (12H143): iPad2,3_8.4_12H143_Restore.ipsw
8.4 (iPad 2 GSM Model A1396) (12H143): iPad2,2_8.4_12H143_Restore.ipsw
8.4 (iPad 2 Wi-Fi Model A1395) (12H143): iPad2,1_8.4_12H143_Restore.ipsw
8.3 (iPad Mini CDMA Model A1455) (12F69): iPad2,7_8.3_12F69_Restore.ipsw
8.3 (iPad Mini GSM Model A1454) (12F69): iPad2,6_8.3_12F69_Restore.ipsw
8.3 (iPad Mini Wi-Fi Model A1432) (12F69): iPad2,5_8.3_12F69_Restore.ipsw
8.3 (iPad 2 Wi-Fi Model (2012)) (12F69): iPad2,4_8.3_12F69_Restore.ipsw
8.3 (iPad 2 CDMA Model A1397) (12F69): iPad2,3_8.3_12F69_Restore.ipsw
8.3 (iPad 2 GSM Model A1396) (12F69): iPad2,2_8.3_12F69_Restore.ipsw
8.3 (iPad 2 Wi-Fi Model A1395) (12F69): iPad2,1_8.3_12F69_Restore.ipsw
8.2 (iPad Mini CDMA Model A1455) (12D508): iPad2,7_8.2_12D508_Restore.ipsw
8.2 (iPad Mini GSM Model A1454) (12D508): iPad2,6_8.2_12D508_Restore.ipsw
8.2 (iPad Mini Wi-Fi Model A1432) (12D508): iPad2,5_8.2_12D508_Restore.ipsw
8.2 (iPad 2 Wi-Fi Model (2012)) (12D508): iPad2,4_8.2_12D508_Restore.ipsw
8.2 (iPad 2 CDMA Model A1397) (12D508): iPad2,3_8.2_12D508_Restore.ipsw
8.2 (iPad 2 GSM Model A1396) (12D508): iPad2,2_8.2_12D508_Restore.ipsw
8.2 (iPad 2 Wi-Fi Model A1395) (12D508): iPad2,1_8.2_12D508_Restore.ipsw
8.1.3 (iPad Mini CDMA Model A1455) (12B466): iPad2,7_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Mini GSM Model A1454) (12B466): iPad2,6_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad Mini Wi-Fi Model A1432) (12B466): iPad2,5_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 2 Wi-Fi Model (2012)) (12B466): iPad2,4_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 2 CDMA Model A1397) (12B466): iPad2,3_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 2 GSM Model A1396) (12B466): iPad2,2_8.1.3_12B466_Restore.ipsw
8.1.3 (iPad 2 Wi-Fi Model A1395) (12B466): iPad2,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPad Mini CDMA Model A1455) (12B440): iPad2,7_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Mini GSM Model A1454) (12B440): iPad2,6_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad Mini Wi-Fi Model A1432) (12B440): iPad2,5_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 2 Wi-Fi Model (2012)) (12B440): iPad2,4_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 2 CDMA Model A1397) (12B440): iPad2,3_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 2 GSM Model A1396) (12B440): iPad2,2_8.1.2_12B440_Restore.ipsw
8.1.2 (iPad 2 Wi-Fi Model A1395) (12B440): iPad2,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPad Mini CDMA Model A1455) (12B435): iPad2,7_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Mini GSM Model A1454) (12B435): iPad2,6_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad Mini Wi-Fi Model A1432) (12B435): iPad2,5_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 2 Wi-Fi Model (2012)) (12B435): iPad2,4_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 2 CDMA Model A1397) (12B435): iPad2,3_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 2 GSM Model A1396) (12B435): iPad2,2_8.1.1_12B435_Restore.ipsw
8.1.1 (iPad 2 Wi-Fi Model A1395) (12B435): iPad2,1_8.1.1_12B435_Restore.ipsw
8.1 (iPad Mini CDMA Model A1455) (12B410): iPad2,7_8.1_12B410_Restore.ipsw
8.1 (iPad Mini GSM Model A1454) (12B410): iPad2,6_8.1_12B410_Restore.ipsw
8.1 (iPad Mini Wi-Fi Model A1432) (12B410): iPad2,5_8.1_12B410_Restore.ipsw
8.1 (iPad 2 Wi-Fi Model (2012)) (12B410): iPad2,4_8.1_12B410_Restore.ipsw
8.1 (iPad 2 CDMA Model A1397) (12B410): iPad2,3_8.1_12B410_Restore.ipsw
8.1 (iPad 2 GSM Model A1396) (12B410): iPad2,2_8.1_12B410_Restore.ipsw
8.1 (iPad 2 Wi-Fi Model A1395) (12B410): iPad2,1_8.1_12B410_Restore.ipsw
8.0.2 (iPad Mini CDMA Model A1455) (12A405): iPad2,7_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Mini GSM Model A1454) (12A405): iPad2,6_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad Mini Wi-Fi Model A1432) (12A405): iPad2,5_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 2 Wi-Fi Model (2012)) (12A405): iPad2,4_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 2 CDMA Model A1397) (12A405): iPad2,3_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 2 GSM Model A1396) (12A405): iPad2,2_8.0.2_12A405_Restore.ipsw
8.0.2 (iPad 2 Wi-Fi Model A1395) (12A405): iPad2,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPad Mini CDMA Model A1455) (12A402): iPad2,7_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Mini GSM Model A1454) (12A402): iPad2,6_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad Mini Wi-Fi Model A1432) (12A402): iPad2,5_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 2 Wi-Fi Model (2012)) (12A402): iPad2,4_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 2 CDMA Model A1397) (12A402): iPad2,3_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 2 GSM Model A1396) (12A402): iPad2,2_8.0.1_12A402_Restore.ipsw
8.0.1 (iPad 2 Wi-Fi Model A1395) (12A402): iPad2,1_8.0.1_12A402_Restore.ipsw
8.0 (iPad Mini CDMA Model A1455) (12A365): iPad2,7_8.0_12A365_Restore.ipsw
8.0 (iPad Mini GSM Model A1454) (12A365): iPad2,6_8.0_12A365_Restore.ipsw
8.0 (iPad Mini Wi-Fi Model A1432) (12A365): iPad2,5_8.0_12A365_Restore.ipsw
8.0 (iPad 2 Wi-Fi Model (2012)) (12A365): iPad2,4_8.0_12A365_Restore.ipsw
8.0 (iPad 2 CDMA Model A1397) (12A365): iPad2,3_8.0_12A365_Restore.ipsw
8.0 (iPad 2 GSM Model A1396) (12A365): iPad2,2_8.0_12A365_Restore.ipsw
8.0 (iPad 2 Wi-Fi Model A1395) (12A365): iPad2,1_8.0_12A365_Restore.ipsw
7.1.2 (iPad Mini CDMA Model A1455) (11D257): iPad2,7_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Mini GSM Model A1454) (11D257): iPad2,6_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad Mini Wi-Fi Model A1432) (11D257): iPad2,5_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 2 Wi-Fi Model (2012)) (11D257): iPad2,4_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 2 CDMA Model A1397) (11D257): iPad2,3_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 2 GSM Model A1396) (11D257): iPad2,2_7.1.2_11D257_Restore.ipsw
7.1.2 (iPad 2 Wi-Fi Model A1395) (11D257): iPad2,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPad Mini CDMA Model A1455) (11D201): iPad2,7_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Mini GSM Model A1454) (11D201): iPad2,6_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad Mini Wi-Fi Model A1432) (11D201): iPad2,5_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 2 Wi-Fi Model (2012)) (11D201): iPad2,4_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 2 CDMA Model A1397) (11D201): iPad2,3_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 2 GSM Model A1396) (11D201): iPad2,2_7.1.1_11D201_Restore.ipsw
7.1.1 (iPad 2 Wi-Fi Model A1395) (11D201): iPad2,1_7.1.1_11D201_Restore.ipsw
7.1 (iPad Mini CDMA Model A1455) (11D167): iPad2,7_7.1_11D167_Restore.ipsw
7.1 (iPad Mini GSM Model A1454) (11D167): iPad2,6_7.1_11D167_Restore.ipsw
7.1 (iPad Mini Wi-Fi Model A1432) (11D167): iPad2,5_7.1_11D167_Restore.ipsw
7.1 (iPad 2 Wi-Fi Model (2012)) (11D167): iPad2,4_7.1_11D167_Restore.ipsw
7.1 (iPad 2 CDMA Model A1397) (11D167): iPad2,3_7.1_11D167_Restore.ipsw
7.1 (iPad 2 GSM Model A1396) (11D167): iPad2,2_7.1_11D167_Restore.ipsw
7.1 (iPad 2 Wi-Fi Model A1395) (11D167): iPad2,1_7.1_11D167_Restore.ipsw
7.0.6 (iPad Mini CDMA Model A1455) (11B651): iPad2,7_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad Mini GSM Model A1454) (11B651): iPad2,6_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad Mini Wi-Fi Model A1432) (11B651): iPad2,5_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 2 Wi-Fi Model (2012)) (11B651): iPad2,4_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 2 CDMA Model A1397) (11B651): iPad2,3_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 2 GSM Model A1396) (11B651): iPad2,2_7.0.6_11B651_Restore.ipsw
7.0.6 (iPad 2 Wi-Fi Model A1395) (11B651): iPad2,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPad Mini CDMA Model A1455) (11B554a): iPad2,7_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad Mini GSM Model A1454) (11B554a): iPad2,6_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad Mini Wi-Fi Model A1432) (11B554a): iPad2,5_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 2 Wi-Fi Model (2012)) (11B554a): iPad2,4_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 2 CDMA Model A1397) (11B554a): iPad2,3_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 2 GSM Model A1396) (11B554a): iPad2,2_7.0.4_11B554a_Restore.ipsw
7.0.4 (iPad 2 Wi-Fi Model A1395) (11B554a): iPad2,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPad Mini CDMA Model A1455) (11B511): iPad2,7_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad Mini GSM Model A1454) (11B511): iPad2,6_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad Mini Wi-Fi Model A1432) (11B511): iPad2,5_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 2 Wi-Fi Model (2012)) (11B511): iPad2,4_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 2 CDMA Model A1397) (11B511): iPad2,3_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 2 GSM Model A1396) (11B511): iPad2,2_7.0.3_11B511_Restore.ipsw
7.0.3 (iPad 2 Wi-Fi Model A1395) (11B511): iPad2,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPad Mini CDMA Model A1455) (11A501): iPad2,7_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad Mini GSM Model A1454) (11A501): iPad2,6_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad Mini Wi-Fi Model A1432) (11A501): iPad2,5_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 2 Wi-Fi Model (2012)) (11A501): iPad2,4_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 2 CDMA Model A1397) (11A501): iPad2,3_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 2 GSM Model A1396) (11A501): iPad2,2_7.0.2_11A501_Restore.ipsw
7.0.2 (iPad 2 Wi-Fi Model A1395) (11A501): iPad2,1_7.0.2_11A501_Restore.ipsw
7.0 (iPad Mini CDMA Model A1455) (11A465): iPad2,7_7.0_11A465_Restore.ipsw
7.0 (iPad Mini GSM Model A1454) (11A465): iPad2,6_7.0_11A465_Restore.ipsw
7.0 (iPad Mini Wi-Fi Model A1432) (11A465): iPad2,5_7.0_11A465_Restore.ipsw
7.0 (iPad 2 Wi-Fi Model (2012)) (11A465): iPad2,4_7.0_11A465_Restore.ipsw
7.0 (iPad 2 CDMA Model A1397) (11A465): iPad2,3_7.0_11A465_Restore.ipsw
7.0 (iPad 2 GSM Model A1396) (11A465): iPad2,2_7.0_11A465_Restore.ipsw
7.0 (iPad 2 Wi-Fi Model A1395) (11A465): iPad2,1_7.0_11A465_Restore.ipsw
6.1.3 (iPad Mini CDMA Model A1455) (10B329): iPad2,7_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad Mini GSM Model A1454) (10B329): iPad2,6_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad Mini Wi-Fi Model A1432) (10B329): iPad2,5_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 2 Wi-Fi Model (2012)) (10B329): iPad2,4_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 2 CDMA Model A1397) (10B329): iPad2,3_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 2 GSM Model A1396) (10B329): iPad2,2_6.1.3_10B329_Restore.ipsw
6.1.3 (iPad 2 Wi-Fi Model A1395) (10B329): iPad2,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPad Mini CDMA Model A1455) (10B147): iPad2,7_6.1.2_10B147_Restore.ipsw
6.1.2 (iPad Mini GSM Model A1454) (10B147): iPad2,6_6.1.2_10B147_Restore.ipsw
6.1.2 (iPad Mini Wi-Fi Model A1432) (10B146): iPad2,5_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 2 Wi-Fi Model (2012)) (10B146): iPad2,4_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 2 CDMA Model A1397) (10B146): iPad2,3_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 2 GSM Model A1396) (10B146): iPad2,2_6.1.2_10B146_Restore.ipsw
6.1.2 (iPad 2 Wi-Fi Model A1395) (10B146): iPad2,1_6.1.2_10B146_Restore.ipsw
6.1 (iPad Mini CDMA Model A1455) (10B141): iPad2,7_6.1_10B141_Restore.ipsw
6.1 (iPad Mini GSM Model A1454) (10B141): iPad2,6_6.1_10B141_Restore.ipsw
6.1 (iPad Mini Wi-Fi Model A1432) (10B141): iPad2,5_6.1_10B141_Restore.ipsw
6.1 (iPad 2 Wi-Fi Model (2012)) (10B141): iPad2,4_6.1_10B141_Restore.ipsw
6.1 (iPad 2 CDMA Model A1397) (10B141): iPad2,3_6.1_10B141_Restore.ipsw
6.1 (iPad 2 GSM Model A1396) (10B141): iPad2,2_6.1_10B141_Restore.ipsw
6.1 (iPad 2 Wi-Fi Model A1395) (10B141): iPad2,1_6.1_10B141_Restore.ipsw
6.0.2 (iPad Mini CDMA Model A1455) (10A8500): iPad2,7_6.0.2_10A8500_Restore.ipsw
6.0.2 (iPad Mini GSM Model A1454) (10A8500): iPad2,6_6.0.2_10A8500_Restore.ipsw
6.0.2 (iPad Mini Wi-Fi Model A1432) (10A550): iPad2,5_6.0.2_10A550_Restore.ipsw
6.0.1 (iPad Mini CDMA Model A1455) (10A8426): iPad2,7_6.0.1_10A8426_Restore.ipsw
6.0.1 (iPad Mini GSM Model A1454) (10A8426): iPad2,6_6.0.1_10A8426_Restore.ipsw
6.0.1 (iPad Mini Wi-Fi Model A1432) (10A523): iPad2,5_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 2 Wi-Fi Model (2012)) (10A523): iPad2,4_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 2 CDMA Model A1397) (10A523): iPad2,3_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 2 GSM Model A1396) (10A523): iPad2,2_6.0.1_10A523_Restore.ipsw
6.0.1 (iPad 2 Wi-Fi Model A1395) (10A523): iPad2,1_6.0.1_10A523_Restore.ipsw
6.0 (iPad Mini Wi-Fi Model A1432) (10A406): iPad2,5_6.0_10A406_Restore.ipsw
6.0 (iPad 2 Wi-Fi Model (2012)) (10A403): iPad2,4_6.0_10A403_Restore.ipsw
6.0 (iPad 2 CDMA Model A1397) (10A403): iPad2,3_6.0_10A403_Restore.ipsw
6.0 (iPad 2 GSM Model A1396) (10A403): iPad2,2_6.0_10A403_Restore.ipsw
6.0 (iPad 2 Wi-Fi Model A1395) (10A403): iPad2,1_6.0_10A403_Restore.ipsw
5.1.1 (iPad 2 Wi-Fi Model (2012)) (9B206): iPad2,4_5.1.1_9B206_Restore.ipsw
5.1.1 (iPad 2 CDMA Model A1397) (9B206): iPad2,3_5.1.1_9B206_Restore.ipsw
5.1.1 (iPad 2 GSM Model A1396) (9B206): iPad2,2_5.1.1_9B206_Restore.ipsw
5.1.1 (iPad 2 Wi-Fi Model A1395) (9B206): iPad2,1_5.1.1_9B206_Restore.ipsw
5.1 (iPad 2 Wi-Fi Model (2012)) (9B176): iPad2,4_5.1_9B176_Restore.ipsw
5.1 (iPad 2 CDMA Model A1397) (9B176): iPad2,3_5.1_9B176_Restore.ipsw
5.1 (iPad 2 GSM Model A1396) (9B176): iPad2,2_5.1_9B176_Restore.ipsw
5.1 (iPad 2 Wi-Fi Model A1395) (9B176): iPad2,1_5.1_9B176_Restore.ipsw
5.0.1 (iPad 2 CDMA Model A1397) (9A405): iPad2,3_5.0.1_9A405_Restore.ipsw
5.0.1 (iPad 2 GSM Model A1396) (9A405): iPad2,2_5.0.1_9A405_Restore.ipsw
5.0.1 (iPad 2 Wi-Fi Model A1395) (9A405): iPad2,1_5.0.1_9A405_Restore.ipsw
5.0 (iPad 2 CDMA Model A1397) (9A334): iPad2,3_5.0_9A334_Restore.ipsw
5.0 (iPad 2 GSM Model A1396) (9A334): iPad2,2_5.0_9A334_Restore.ipsw
5.0 (iPad 2 Wi-Fi Model A1395) (9A334): iPad2,1_5.0_9A334_Restore.ipsw
4.3.5 (iPad 2 CDMA Model A1397) (8L1): iPad2,3_4.3.5_8L1_Restore.ipsw
4.3.5 (iPad 2 GSM Model A1396) (8L1): iPad2,2_4.3.5_8L1_Restore.ipsw
4.3.5 (iPad 2 Wi-Fi Model A1395) (8L1): iPad2,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPad 2 CDMA Model A1397) (8K2): iPad2,3_4.3.4_8K2_Restore.ipsw
4.3.4 (iPad 2 GSM Model A1396) (8K2): iPad2,2_4.3.4_8K2_Restore.ipsw
4.3.4 (iPad 2 Wi-Fi Model A1395) (8K2): iPad2,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPad 2 CDMA Model A1397) (8J2): iPad2,3_4.3.3_8J2_Restore.ipsw
4.3.3 (iPad 2 GSM Model A1396) (8J2): iPad2,2_4.3.3_8J2_Restore.ipsw
4.3.3 (iPad 2 Wi-Fi Model A1395) (8J2): iPad2,1_4.3.3_8J2_Restore.ipsw
4.3.2 (iPad 2 CDMA Model A1397) (8H8): iPad2,3_4.3.2_8H8_Restore.ipsw
4.3.2 (iPad 2 GSM Model A1396) (8H7): iPad2,2_4.3.2_8H7_Restore.ipsw
4.3.2 (iPad 2 Wi-Fi Model A1395) (8H7): iPad2,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPad 2 CDMA Model A1397) (8G4): iPad2,3_4.3.1_8G4_Restore.ipsw
4.3.1 (iPad 2 GSM Model A1396) (8G4): iPad2,2_4.3.1_8G4_Restore.ipsw
4.3.1 (iPad 2 Wi-Fi Model A1395) (8G4): iPad2,1_4.3.1_8G4_Restore.ipsw
4.3 (iPad 2 CDMA Model A1397) (8F191): iPad2,3_4.3_8F191_Restore.ipsw
4.3 (iPad 2 GSM Model A1396) (8F191): iPad2,2_4.3_8F191_Restore.ipsw
4.3 (iPad 2 Wi-Fi Model A1395) (8F191): iPad2,1_4.3_8F191_Restore.ipsw

Download Firmware iPad

5.1.1 (iPad 1) (9B206): iPad1,1_5.1.1_9B206_Restore.ipsw
5.1 (iPad 1) (9B176): iPad1,1_5.1_9B176_Restore.ipsw
5.0.1 (iPad 1) (9A405): iPad1,1_5.0.1_9A405_Restore.ipsw
5.0 (iPad 1) (9A334): iPad1,1_5.0_9A334_Restore.ipsw
4.3.5 (iPad 1) (8L1): iPad1,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPad 1) (8K2): iPad1,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPad 1) (8J3): iPad1,1_4.3.3_8J3_Restore.ipsw
4.3.2 (iPad 1) (8H7): iPad1,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPad 1) (8G4): iPad1,1_4.3.1_8G4_Restore.ipsw
4.3 (iPad 1) (8F190): iPad1,1_4.3_8F190_Restore.ipsw
4.2.1 (iPad 1) (8C148): iPad1,1_4.2.1_8C148_Restore.ipsw
3.2.2 (iPad 1) (7B500): iPad1,1_3.2.2_7B500_Restore.ipsw
3.2.1 (iPad 1) (7B405): iPad1,1_3.2.1_7B405_Restore.ipsw
3.2 (iPad 1) (7B367): iPad1,1_3.2_7B367_Restore.ipsw

Download Firmware iPod

9.2.1 (iPod touch (6th generation)) (13D15): iPod7,1_9.2.1_13D15_Restore.ipsw
9.2 (iPod touch (6th generation)) (13C75): iPod7,1_9.2_13C75_Restore.ipsw
9.1 (iPod touch (6th generation)) (13B143): iPod7,1_9.1_13B143_Restore.ipsw
9.0.2 (iPod touch (6th generation)) (13A452): iPod7,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPod touch (6th generation)) (13A404): iPod7,1_9.0.1_13A404_Restore.ipsw
9.0 (iPod touch (6th generation)) (13A344): iPod7,1_9.0_13A344_Restore.ipsw
8.4.1 (iPod touch (6th generation)) (12H321): iPod7,1_8.4.1_12H321_Restore.ipsw
8.4 (iPod touch (6th generation)) (12H143): iPod7,1_8.4_12H143_Restore.ipsw

Download Firmware iPod

9.2.1 (iPod touch (5th generation)) (13D15): iPod5,1_9.2.1_13D15_Restore.ipsw
9.2 (iPod touch (5th generation)) (13C75): iPod5,1_9.2_13C75_Restore.ipsw
9.1 (iPod touch (5th generation)) (13B143): iPod5,1_9.1_13B143_Restore.ipsw
9.0.2 (iPod touch (5th generation)) (13A452): iPod5,1_9.0.2_13A452_Restore.ipsw
9.0.1 (iPod touch (5th generation)) (13A404): iPod5,1_9.0.1_13A404_Restore.ipsw
9.0 (iPod touch (5th generation)) (13A344): iPod5,1_9.0_13A344_Restore.ipsw
8.4.1 (iPod touch (5th generation)) (12H321): iPod5,1_8.4.1_12H321_Restore.ipsw
8.4 (iPod touch (5th generation)) (12H143): iPod5,1_8.4_12H143_Restore.ipsw
8.3 (iPod touch (5th generation)) (12F69): iPod5,1_8.3_12F69_Restore.ipsw
8.2 (iPod touch (5th generation)) (12D508): iPod5,1_8.2_12D508_Restore.ipsw
8.1.3 (iPod touch (5th generation)) (12B466): iPod5,1_8.1.3_12B466_Restore.ipsw
8.1.2 (iPod touch (5th generation)) (12B440): iPod5,1_8.1.2_12B440_Restore.ipsw
8.1.1 (iPod touch (5th generation)) (12B435): iPod5,1_8.1.1_12B435_Restore.ipsw
8.1 (iPod touch (5th generation)) (12B411): iPod5,1_8.1_12B411_Restore.ipsw
8.0.2 (iPod touch (5th generation)) (12A405): iPod5,1_8.0.2_12A405_Restore.ipsw
8.0.1 (iPod touch (5th generation)) (12A402): iPod5,1_8.0.1_12A402_Restore.ipsw
8.0 (iPod touch (5th generation)) (12A365): iPod5,1_8.0_12A365_Restore.ipsw
7.1.2 (iPod touch (5th generation)) (11D257): iPod5,1_7.1.2_11D257_Restore.ipsw
7.1.1 (iPod touch (5th generation)) (11D201): iPod5,1_7.1.1_11D201_Restore.ipsw
7.1 (iPod touch (5th generation)) (11D167): iPod5,1_7.1_11D167_Restore.ipsw
7.0.6 (iPod touch (5th generation)) (11B651): iPod5,1_7.0.6_11B651_Restore.ipsw
7.0.4 (iPod touch (5th generation)) (11B554a): iPod5,1_7.0.4_11B554a_Restore.ipsw
7.0.3 (iPod touch (5th generation)) (11B511): iPod5,1_7.0.3_11B511_Restore.ipsw
7.0.2 (iPod touch (5th generation)) (11A501): iPod5,1_7.0.2_11A501_Restore.ipsw
7.0 (iPod touch (5th generation)) (11A465): iPod5,1_7.0_11A465_Restore.ipsw
6.1.3 (iPod touch (5th generation)) (10B329): iPod5,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPod touch (5th generation)) (10B146): iPod5,1_6.1.2_10B146_Restore.ipsw
6.1 (iPod touch (5th generation)) (10B141): iPod5,1_6.1_10B141_Restore.ipsw
6.0.1 (iPod touch (5th generation)) (10A523): iPod5,1_6.0.1_10A523_Restore.ipsw
6.0 (iPod touch (5th generation)) (10A406): iPod5,1_6.0_10A406_Restore.ipsw

Download Firmware iPod

6.1.6 (iPod touch (4th generation)) (10B500): iPod4,1_6.1.6_10B500_Restore.ipsw
6.1.5 (iPod touch (4th generation)) (10B400): iPod4,1_6.1.5_10B400_Restore.ipsw
6.1.3 (iPod touch (4th generation)) (10B329): iPod4,1_6.1.3_10B329_Restore.ipsw
6.1.2 (iPod touch (4th generation)) (10B146): iPod4,1_6.1.2_10B146_Restore.ipsw
6.1 (iPod touch (4th generation)) (10B144): iPod4,1_6.1_10B144_Restore.ipsw
6.0.1 (iPod touch (4th generation)) (10A523): iPod4,1_6.0.1_10A523_Restore.ipsw
6.0 (iPod touch (4th generation)) (10A403): iPod4,1_6.0_10A403_Restore.ipsw
5.1.1 (iPod touch (4th generation)) (9B206): iPod4,1_5.1.1_9B206_Restore.ipsw
5.1 (iPod touch (4th generation)) (9B176): iPod4,1_5.1_9B176_Restore.ipsw
5.0.1 (iPod touch (4th generation)) (9A405): iPod4,1_5.0.1_9A405_Restore.ipsw
5.0 (iPod touch (4th generation)) (9A334): iPod4,1_5.0_9A334_Restore.ipsw
4.3.5 (iPod touch (4th generation)) (8L1): iPod4,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPod touch (4th generation)) (8K2): iPod4,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPod touch (4th generation)) (8J2): iPod4,1_4.3.3_8J2_Restore.ipsw
4.3.2 (iPod touch (4th generation)) (8H7): iPod4,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPod touch (4th generation)) (8G4): iPod4,1_4.3.1_8G4_Restore.ipsw
4.3 (iPod touch (4th generation)) (8F190): iPod4,1_4.3_8F190_Restore.ipsw
4.2.1 (iPod touch (4th generation)) (8C148): iPod4,1_4.2.1_8C148_Restore.ipsw
4.2.1 (iPod touch (4th generation)) (8C148): iPod4,1_4.2.1_8C148_Restore.ipsw
4.1 (iPod touch (4th generation)) (8B118): iPod4,1_4.1_8B118_Restore.ipsw
4.1 (iPod touch (4th generation)) (8B117): iPod4,1_4.1_8B117_Restore.ipsw

Download Firmware iPod

5.1.1 (iPod touch (3rd generation)) (9B206): iPod3,1_5.1.1_9B206_Restore.ipsw
5.1 (iPod touch (3rd generation)) (9B176): iPod3,1_5.1_9B176_Restore.ipsw
5.0.1 (iPod touch (3rd generation)) (9A405): iPod3,1_5.0.1_9A405_Restore.ipsw
5.0 (iPod touch (3rd generation)) (9A334): iPod3,1_5.0_9A334_Restore.ipsw
4.3.5 (iPod touch (3rd generation)) (8L1): iPod3,1_4.3.5_8L1_Restore.ipsw
4.3.4 (iPod touch (3rd generation)) (8K2): iPod3,1_4.3.4_8K2_Restore.ipsw
4.3.3 (iPod touch (3rd generation)) (8J2): iPod3,1_4.3.3_8J2_Restore.ipsw
4.3.2 (iPod touch (3rd generation)) (8H7): iPod3,1_4.3.2_8H7_Restore.ipsw
4.3.1 (iPod touch (3rd generation)) (8G4): iPod3,1_4.3.1_8G4_Restore.ipsw
4.3 (iPod touch (3rd generation)) (8F190): iPod3,1_4.3_8F190_Restore.ipsw
4.2.1 (iPod touch (3rd generation)) (8C148): iPod3,1_4.2.1_8C148_Restore.ipsw
4.1 (iPod touch (3rd generation)) (8B117): iPod3,1_4.1_8B117_Restore.ipsw
4.0.2 (iPod touch (3rd generation)) (8A400): iPod3,1_4.0.2_8A400_Restore.ipsw
4.0 (iPod touch (3rd generation)) (8A293): iPod3,1_4.0_8A293_Restore.ipsw
3.1.3 (iPod touch (3rd generation)) (7E18): iPod3,1_3.1.3_7E18_Restore.ipsw
3.1.2 (iPod touch (3rd generation)) (7D11): iPod3,1_3.1.2_7D11_Restore.ipsw
3.1.1 (iPod touch (3rd generation)) (7C146): iPod3,1_3.1.1_7C146_Restore.ipsw
3.1.1 (iPod touch (3rd generation)) (7C145): iPod3,1_3.1.1_7C145_Restore.ipsw

Download Firmware iPod

4.2.1 (iPod touch (2nd generation)) (8C148): iPod2,1_4.2.1_8C148_Restore.ipsw
4.1 (iPod touch (2nd generation)) (8B117): iPod2,1_4.1_8B117_Restore.ipsw
4.0.2 (iPod touch (2nd generation)) (8A400): iPod2,1_4.0.2_8A400_Restore.ipsw
4.0 (iPod touch (2nd generation)) (8A293): iPod2,1_4.0_8A293_Restore.ipsw
2.2.1 (iPod touch (2nd generation)) (5H11a): iPod2,1_2.2.1_5H11a_Restore.ipsw
2.2 (iPod touch (2nd generation)) (5G77a): iPod2,1_2.2_5G77a_Restore.ipsw
2.1.1 (iPod touch (2nd generation)) (5F138): iPod2,1_2.1.1_5F138_Restore.ipsw

Download Firmware iPod

1.1.5 (iPod touch) (4B1): iPod1,1_1.1.5_4B1_Restore.ipsw
1.1.4 (iPod touch) (4A102): iPod1,1_1.1.4_4A102_Restore.ipsw
1.1.3 (iPod touch) (4A93): iPod1,1_1.1.3_4A93_Restore.ipsw
1.1.2 (iPod touch) (3B48b): iPod1,1_1.1.2_3B48b_Restore.ipsw
1.1.1 (iPod touch) (3A110a): iPod1,1_1.1.1_3A110a_Restore.ipsw
1.1.1 (iPod touch) (39A00025): iPod_1.1.1_39A00025.ipsw
1.1 (iPod touch) (3A101a): iPod1,1_1.1_3A101a_Restore.ipsw
1.0.4 (iPod touch) (37A40005): iPod_1.0.4_37A40005.ipsw
1.0.3 (iPod touch) (37A30172): iPod_1.0.3_37A30172.ipsw
1.0.2 (iPod touch) (34A20020): iPod_1.0.2_34A20020.ipsw
1.0.2 (iPod touch) (37A20090): iPod_1.0.2_37A20090.ipsw

Download Firmware watch

Download Firmware AppleTV

9.1.1 (Apple TV 4rd Model A1625) (13U717): AppleTV5,3_9.1.1_13U717_Restore.ipsw
9.1 (Apple TV 4rd Model A1625) (13U85): AppleTV5,3_9.1_13U85_Restore.ipsw
9.0.1 (Apple TV 4rd Model A1625) (13T402): AppleTV5,3_9.0.1_13T402_Restore.ipsw
9.0 (Apple TV 4rd Model A1625) (13T396): AppleTV5,3_9.0_13T396_Restore.ipsw

Download Firmware AppleTV

7.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (12D508): AppleTV3,2_7.1_12D508_Restore.ipsw
7.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (12F69): AppleTV3,2_7.1_12F69_Restore.ipsw
7.1 (Apple TV 2rd Model A1378) (12D508): AppleTV3,1_7.1_12D508_Restore.ipsw
7.1 (Apple TV 2rd Model A1378) (12F69): AppleTV3,1_7.1_12F69_Restore.ipsw
7.0.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (12B435): AppleTV3,2_7.0.2_12B435_Restore.ipsw
7.0.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (12B466): AppleTV3,2_7.0.2_12B466_Restore.ipsw
7.0.2 (Apple TV 2rd Model A1378) (12B435): AppleTV3,1_7.0.2_12B435_Restore.ipsw
7.0.2 (Apple TV 2rd Model A1378) (12B466): AppleTV3,1_7.0.2_12B466_Restore.ipsw
7.0.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (12B410a): AppleTV3,2_7.0.1_12B410a_Restore.ipsw
7.0.1 (Apple TV 2rd Model A1378) (12B410a): AppleTV3,1_7.0.1_12B410a_Restore.ipsw
7.0 (Apple TV 3rd Model A1427-A1469 for Rev A) (12A365b): AppleTV3,2_7.0_12A365b_Restore.ipsw
7.0 (Apple TV 2rd Model A1378) (12A365b): AppleTV3,1_7.0_12A365b_Restore.ipsw
6.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (11D257c): AppleTV3,2_6.2_11D257c_Restore.ipsw
6.2 (Apple TV 2rd Model A1378) (11D257c): AppleTV3,1_6.2_11D257c_Restore.ipsw
6.1.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (11D201c): AppleTV3,2_6.1.1_11D201c_Restore.ipsw
6.1.1 (Apple TV 2rd Model A1378) (11D201c): AppleTV3,1_6.1.1_11D201c_Restore.ipsw
6.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (11D169b): AppleTV3,2_6.1_11D169b_Restore.ipsw
6.1 (Apple TV 2rd Model A1378) (11D169b): AppleTV3,1_6.1_11D169b_Restore.ipsw
6.0.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (11B554a): AppleTV3,2_6.0.2_11B554a_Restore.ipsw
6.0.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (11B651): AppleTV3,2_6.0.2_11B651_Restore.ipsw
6.0.2 (Apple TV 2rd Model A1378) (11B554a): AppleTV3,1_6.0.2_11B554a_Restore.ipsw
6.0.2 (Apple TV 2rd Model A1378) (11B651): AppleTV3,1_6.0.2_11B651_Restore.ipsw
6.0.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (11B511d): AppleTV3,2_6.0.1_11B511d_Restore.ipsw
6.0.1 (Apple TV 2rd Model A1378) (11B511d): AppleTV3,1_6.0.1_11B511d_Restore.ipsw
6.0 (Apple TV 3rd Model A1427-A1469 for Rev A) (11A470e): AppleTV3,2_6.0_11A470e_Restore.ipsw
6.0 (Apple TV 3rd Model A1427-A1469 for Rev A) (11A502): AppleTV3,2_6.0_11A502_Restore.ipsw
6.0 (Apple TV 2rd Model A1378) (11A470e): AppleTV3,1_6.0_11A470e_Restore.ipsw
6.0 (Apple TV 2rd Model A1378) (11A502): AppleTV3,1_6.0_11A502_Restore.ipsw
5.3 (Apple TV 3rd Model A1427-A1469 for Rev A) (10B809): AppleTV3,2_5.3_10B809_Restore.ipsw
5.3 (Apple TV 3rd Model A1427-A1469 for Rev A) (10B806): AppleTV3,2_5.3_10B806_Restore.ipsw
5.3 (Apple TV 2rd Model A1378) (10B809): AppleTV3,1_5.3_10B809_Restore.ipsw
5.3 (Apple TV 2rd Model A1378) (10B806): AppleTV3,1_5.3_10B806_restore.ipsw
5.2.1 (Apple TV 3rd Model A1427-A1469 for Rev A) (10B329a): AppleTV3,2_5.2.1_10B329a_Restore.ipsw
5.2.1 (Apple TV 2rd Model A1378) (10B329a): AppleTV3,1_5.2.1_10B329a_Restore.ipsw
5.2 (Apple TV 3rd Model A1427-A1469 for Rev A) (10B144b): AppleTV3,2_5.2_10B144b_Restore.ipsw
5.2 (Apple TV 2rd Model A1378) (10B144b): AppleTV3,1_5.2_10B144b_Restore.ipsw
5.1.1 (Apple TV 2rd Model A1378) (10A831): AppleTV3,1_5.1.1_10A831_Restore.ipsw
5.1 (Apple TV 2rd Model A1378) (10A406e): AppleTV3,1_5.1_10A406e_Restore.ipsw
5.0.2 (Apple TV 2rd Model A1378) (9B830): AppleTV3,1_5.0.2_9B830_Restore.ipsw
5.0 (Apple TV 2rd Model A1378) (9B179b): AppleTV3,1_5.0_9B179b_Restore.ipsw
5.0 (Apple TV 2rd Model A1378) (9B206f): AppleTV3,1_5.0_9B206f_Restore.ipsw

Download Firmware AppleTV

6.2.1 (Apple TV 1nd Model A1218)) (11D258): AppleTV2,1_6.2.1_11D258_Restore.ipsw
6.2 (Apple TV 1nd Model A1218)) (11D257c): AppleTV2,1_6.2_11D257c_Restore.ipsw
6.1.1 (Apple TV 1nd Model A1218)) (11D201c): AppleTV2,1_6.1.1_11D201c_Restore.ipsw
6.1 (Apple TV 1nd Model A1218)) (11D169b): AppleTV2,1_6.1_11D169b_Restore.ipsw
6.0.2 (Apple TV 1nd Model A1218)) (11B554a): AppleTV2,1_6.0.2_11B554a_Restore.ipsw
6.0.2 (Apple TV 1nd Model A1218)) (11B651): AppleTV2,1_6.0.2_11B651_Restore.ipsw
6.0.1 (Apple TV 1nd Model A1218)) (11B511d): AppleTV2,1_6.0.1_11B511d_Restore.ipsw
6.0 (Apple TV 1nd Model A1218)) (11A470e): AppleTV2,1_6.0_11A470e_Restore.ipsw
6.0 (Apple TV 1nd Model A1218)) (11A502): AppleTV2,1_6.0_11A502_Restore.ipsw
5.3 (Apple TV 1nd Model A1218)) (10B809): AppleTV2,1_5.3_10B809_Restore.ipsw
5.3 (Apple TV 1nd Model A1218)) (10B806): AppleTV2,1_5.3_10B806_Restore.ipsw
5.2.1 (Apple TV 1nd Model A1218)) (10B329a): AppleTV2,1_5.2.1_10B329a_Restore.ipsw
5.2 (Apple TV 1nd Model A1218)) (10B144b): AppleTV2,1_5.2_10B144b_Restore.ipsw
5.1.1 (Apple TV 1nd Model A1218)) (10A831): AppleTV2,1_5.1.1_10A831_Restore.ipsw
5.1 (Apple TV 1nd Model A1218)) (10A406e): AppleTV2,1_5.1_10A406e_Restore.ipsw
5.0.2 (Apple TV 1nd Model A1218)) (9B830): AppleTV2,1_5.0.2_9B830_Restore.ipsw
5.0 (Apple TV 1nd Model A1218)) (9B179b): AppleTV2,1_5.0_9B179b_Restore.ipsw
5.0 (Apple TV 1nd Model A1218)) (9B206f): AppleTV2,1_5.0_9B206f_Restore.ipsw
4.4.4 (Apple TV 1nd Model A1218)) (9A406a): AppleTV2,1_4.4.4_9A406a_Restore.ipsw
4.4.3 (Apple TV 1nd Model A1218)) (9A405l): AppleTV2,1_4.4.3_9A405l_Restore.ipsw
4.4.2 (Apple TV 1nd Model A1218)) (9A336a): AppleTV2,1_4.4.2_9A336a_Restore.ipsw
4.4.1 (Apple TV 1nd Model A1218)) (9A335a): AppleTV2,1_4.4.1_9A335a_Restore.ipsw
4.4 (Apple TV 1nd Model A1218)) (9A334v): AppleTV2,1_4.4_9A334v_Restore.ipsw
4.3 (Apple TV 1nd Model A1218)) (8F191m): AppleTV2,1_4.3_8F191m_Restore.ipsw
4.3 (Apple TV 1nd Model A1218)) (8F202): AppleTV2,1_4.3_8F202_Restore.ipsw
4.3 (Apple TV 1nd Model A1218)) (8F305): AppleTV2,1_4.3_8F305_Restore.ipsw
4.3 (Apple TV 1nd Model A1218)) (8F455): AppleTV2,1_4.3_8F455_Restore.ipsw
4.2.1 (Apple TV 1nd Model A1218)) (8C154): AppleTV2,1_4.2.1_8C154_Restore.ipsw
4.2.1 (Apple TV 1nd Model A1218)) (8C152): AppleTV2,1_4.2.1_8C152_Restore.ipsw
4.2 (Apple TV 1nd Model A1218)) (8C150): AppleTV2,1_4.2_8C150_Restore.ipsw
4.1 (Apple TV 1nd Model A1218)) (8M89): AppleTV2,1_4.1_8M89_Restore.ipsw

Mobile Device Management in Exchange Online (Part 1)

$
0
0
In this article series we will explore the new built-in Mobile Device Management solution in Office 365, with a focus on Exchange Online.


If you would like to read the other parts in this article series please go to:

 

Introduction

You may have heard or have worked on Intune and Exchange ActiveSync. Intune is constantly evolving and it is, without a doubt, a very capable Mobile Device Management (MDM) solution. However, not every organization requires all the features that Intune provides, has the in-house expertise to deploy and manage it, or is able to justify its cost.

To overcome these and other factors Microsoft has introduced built-in MDM for Office 365. Similarly to Intune, it can help organizations secure and manage their users' mobile devices such as iPhones, iPads, Androids or Windows phones by providing the following capabilities:
  • Device management. We can set and manage security policies such as encryption, device-level pin lock or jailbreak detection, amongst many others, to help prevent unauthorized users from accessing corporate email and data on a device when it is lost or stolen;
  • Conditional Access. We can create security policies for devices that connect to Office 365 to ensure email and documents can be accessed only on devices that are managed by our company and are compliant. In the background, this MDM solution leverages Intune and the Azure Active Directory to deliver this capability;
  • Selective wipe. We can easily remove Office 365 data from an employee’s device while leaving their personal data intact.

 

What can built-in MDM for Office 365 do?

As already mentioned, MDM for Office 365 is a “simplified version” of Intune that helps organizations secure and manage their mobile devices used by licensed Office 365 users. We can create MDM policies with settings that can help control access to the organization’s Office 365 email and documents for supported mobile devices and apps. If a device ever gets lost or stolen, we can remotely wipe the device to remove sensitive organizational information.

We can use this MDM solution to secure and manage the following devices:
  • Windows Phone 8.1;
  • iOS 7.1 or later versions;
  • Android 4 or later versions;
  • Windows 8.1 and Windows 8.1 RT (access control for these devices is limited to Exchange ActiveSync);
  • Management of BlackBerry devices is not supported, and organizations should use BlackBerry Business Cloud Services (BBCS) from BlackBerry.
OK, but what exactly can we do? As we will see throughout this article series (more specifically in the Configure Security Policies topic in the next article), we can use MDM to:
  • Wipe a device;
  • Block unsupported devices from accessing email using Exchange ActiveSync;
  • Configure device policies like password requirements and security settings;
  • View list of blocked devices;
  • View what policies have been applied to a device;
  • Unblock noncompliant or unsupported device for a user or group of users;
  • Generate detailed report to see devices that are not compliant.

Important:Something to take into consideration is that users will not be prompted to enroll and will not be blocked or reported for policy violation if they use the mobile browser to access Office 365 SharePoint sites, documents in Office Online, or email in Outlook on the web.

Although this article series focuses on Exchange Online, I have briefly mentioned that MDM can also protect documents in Office 365. The supported apps for the different types of mobile devices in the following table will prompt users to enroll in MDM where there is a new mobile device management policy that applies to a user’s device and the user has not previously enrolled the device. If a user’s device does not comply with a policy, depending on how we set the policy up, a user might be blocked from accessing Office 365 resources in these apps, or they might have access but Office 365 will report a policy violation.

Windows Phone 8.1
iOS 7.1+
Android 4+
Exchange ActiveSync includes native email and third-party apps, like TouchDown, that use Exchange ActiveSync.
  •   Exchange ActiveSync
  •   Exchange Mail
  •   Exchange ActiveSync
  •   Mail
Exchange ActiveSync
Email
Office and OneDrive for Business
  •   No supported apps
  •   Outlook
  •   OneDrive
  •   Word
  •   Excel
  •   PowerPoint
On phones and tablets:
  •   Outlook
  •   OneDrive
  •   Word
  •   Excel
  •   PowerPoint
On phones only:
  •   Office Mobile
Table 1






The following diagram, taken from TechNet, demonstrates the process that happens behind the scenes when a user with a new device signs in to an app that supports access control with MDM. Until the user enrolls the device, he/she is blocked from accessing Office 365 resources in the app.

 Figure 1

In the next sections of this article series we will be looking at how to:
  1. Activate MDM;
  2. Set up MDM;
  3. Configure Security Policies;
  4. Enroll Users;
  5. Manage Devices.
So let’s get started!

 

1: Activate MDM

To manage mobile devices in Office 365, we first need to activate the service in the Office 365 admin center:
  1. Sign in to Office 365;
  2. Go to the admin center;
  3. Select MOBILE DEVICES;
  4. Click on Get started to start the activation process:
 Figure 2

It might take a few minutes for the service to be provisioned. When it completes, we see the new MDM page:
 Figure 3

If you still see the red text shown above, give it a few more minutes, refresh the page and it should disappear.

 

2: Set up MDM

When the service is ready, complete the required steps to finish setup. You may need to click Manage settings on the Mobile Device Management for Office 365 page:
 Figure 4

Before we can use MDM to manage these devices, we need to get an Apple Push Notification service (APNs) certificate. This certificate allows MDM to manage iOS and establish an accredited and encrypted IP connection with the mobile device management authority service (our MDM in this case).
To do this:
  1. In the Set up mobile device management page, click on Set up next to Configure an APNs Certificate for iOS devices:
 Figure 5
  1. Select Download your CSR file:
 Figure 6
  1. Save the Certificate signing request to a file location on your computer:
 Figure 7
  1. Select Next;
  2. Select Apple APNS Portal to open the Apple Push Certificates Portal:
 Figure 8
  1. In the Apple Push Certificates Portal sign in with your company Apple ID to create the APNs certificate. This Apple ID must be used in future to renew the APNs certificate:
 Figure 9
  1. Once you login, click on Create a Certificate:
 Figure 10
  1. Accept the terms and conditions and click Accept;
  2. Upload the APNs certificate request created earlier by using the Browse... button and click Upload:
 Figure 11
  1. Next, download the APNs certificate and save the file locally. This APNs certificate (.pem) file is used to establish a trust relationship between the Apple Push Notification server and MDM authority. Notice that it is only valid for 1 year so we will have to manually renew it every year:
 Figure 12






Note:You should use a company Apple ID associated with an email account that will remain with your organization even if the user who manages the account leaves.
  1. Go back to Office 365 and select Next to get to the upload apns certificate page;
  2. Browse to the APN certificate you downloaded from the Apple Push Certificates Portal:
 Figure 13
  1. Select Finish:
 Figure 14

Once this has been completed successfully you will see a green mark at the top right-hand side of the page:
 Figure 15

Another step that we also have to complete, is to make sure that our DNS is correctly configured for MDM. On the admin portal, go to DOMAINS:
 Figure 16

Select the domain you want to configure and click on Domain settings. From here, we need to select the Mobile Device Management for Office 365 service:
 Figure 17

In the list of DNS records we need to create, notice the two new ones for MDM:
 Figure 18
 
These two DNS CNAME records help users in the organization who sign in on their mobile device with an email address that uses a custom domain to be redirected to enroll in MDM:

TYPE Host Name Points to TTL
CNAMEenterpriseregistration.company_domain.comenterpriseregistration.windows.net3600
CNAMEenterpriseenrollment.company_domain.comenterpriseenrollment.manage.microsoft.com3600
Table 2

Create these two records in your DNS and then click on Okay, I’ve added the records. If they were configured correctly we will get the following message:


 Figure 19

Back on the Set up mobile device management page, on the recommended steps is to Set up multi-factor authentication. This option helps secure the sign in to Office 365 for mobile device enrollment by requiring a second form of authentication. Users are required to acknowledge a phone call, text message or app notification on their mobile device after correctly entering their work account password. They can only enroll their device after this second form of authentication is completed. After users’ devices are enrolled in MDM, users can access Office 365 resources with just their work account.

 

Conclusion

In the first part of this article series we presented the new built-in MDM solution in Office 365, what it can be used for and we started configuring it. In the next part we will create our first security policy.


If you would like to read the other parts in this article series please go to:


Mobile Device Management in Exchange Online (Part 2)

$
0
0
In the previous part of this article series we presented the new built-in Mobile Device Management (MDM) solution in Office 365, what it can be used for and we started configuring it. Now we will create our first security policy.


If you would like to read the other parts in this article series please go to:

3: Configure Security Policies

Before we start enrolling users’ devices, we need to create one or more Security Policies to enforce users to enroll their devices so we can manage them and protect our organizational data. For example, to help prevent data loss if a user loses their device, we can create a policy to lock devices after 5 minutes of inactivity and have devices wiped after 3 sign-in failures.

Please note that the policies and access rules we create in MDM override the Exchange ActiveSync mobile device mailbox policies and device access rules created in the Exchange Admin Center. After a device is enrolled in MDM, any Exchange ActiveSync mobile device mailbox policy or device access rule applied to the device is simply ignored.

If we create a policy to block access based on certain settings being enabled or not, users will be blocked from accessing Office 365 resources when using a supported app. The settings that can block users from accessing Office 365 resources are in the following categories:
  • Security;
  • Encryption;
  • Jail broken;
  • Managed email profile.
Let us say that my device is not compliant because it does not have a password. The following diagram shows what happens when my device is not compliant with a security setting in a mobile device management policy that applies to it. I can sign in to an app that supports access control with MDM (such as the email app) but I am blocked from accessing Office 365 in the app until my device complies with the security setting:






 Figure 1

Before creating our first security policy, let us have a quick look at the settings we can use to help us secure and manage mobile devices.

Security settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Require a password
Prevent simple password
Require an alphanumeric password
Minimum password length
Number of sign-in failures before device is wiped
Minutes of inactivity before device is locked
Password expiration (days)
Remember password history and prevent reuse
Encryption settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Require data encryption on devicesWindows Phone 8.1 is already encrypted and cannot be unencrypted

Jail broken setting
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Device cannot be jail broken or rooted

Managed email profile option
This option can block users from accessing their Office 365 email if they are using a manually created email profile. Users on iOS devices must delete their manually created email profile before they can access their email. After they delete the profile, a new profile will be automatically created on the device.

Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Email profile is managed

Cloud settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Require encrypted backup
Block cloud backup
Block document synchronization
Block photo synchronization

System settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Block screen capture✔ (Samsung Knox only)
Block sending diagnostic data from device

Application settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Block video conferences on device
Block access to application store
Require password when accessing application store

Device capabilities settings
Setting name Windows Phone 8.1 iOS 7.1+ Android 4+
Block connection with removable storage
Block Bluetooth connection

Remote wipe
If a device is lost or stolen, we can remove organizational data and help prevent access to Office 365 resources by performing a wipe from Office 365 admin center>Mobile device management. As we will see later in this article series, we can perform a selective wipe to remove only organizational data or a full wipe to delete all information from a device and restore it to its factory settings.

Let us now start creating our new policy. When creating a new policy, we can set it to allow access and report policy violation where a user's device is not compliant with the policy. This way we can see how many mobile devices would be impacted by the policy without actually blocking them.
  1. In Office 365, go to Compliance Center -> Device management:
 Figure 2
  1. Select Add +;
  2. Enter a Name and Description for the new policy, and select Next:
 Figure 3
  1. Select the requirements you want applied to mobile devices in the organization. Notice the last option to allow the device access to Office 365 and report the violation:
 Figure 4
  1. Select any other configurations you want to apply to mobile devices, and select Next:
 Figure 5
  1. Select Apply it to one or more security groups:
 Figure 6
  1. Select Add ;
  2. Enter a security group name that has members who will test the policy before you deploy it to your organization. The list is empty until we type a security group name, or part of a name, and then click the search icon. Alternatively we can type * and then click the search icon to see a list of all the groups. Select the name, and select Add:
 Figure 7
  1. Select Ok, and then Next.
  2. Review and confirm the details of the new device policy, and select Finish.
 Figure 8
Back in the Mobile device management page, we can see the details of our new security policy including that it is still being created:
 Figure 9
Once it is ready to be used, the Status changes to On:
 Figure 10
To help further secure our information, we can block Exchange ActiveSync app access to Office 365 email for mobile devices that are not supported by MDM. To do this:
  1. In the Compliance Center, go to Device management;
  2. Select Manage organization-wide device access settings:
 Figure 11
  1. Select Block:
 Figure 12
  1. Select Save.
We can also exclude some users from conditional access checks on their mobile devices so they do not have any policies enforced for their supported mobile devices:
  1. In the Compliance Center, go to Device management;
  2. Select Manage organization-wide device access settings:
 Figure 13
  1. Select Add to add the security group that contains users we want to be exclude from being blocked access to Office 365. When a user has been added to this list, they will be able to access Office 365 email when using an unsupported device;
  2. Enter the security group;
  3. Select the name, and select Add.
Figure 14
  1. Select Ok and then Save.
Each user that the policy applies to will have the policy pushed to their device the next time they sign in to Office 365 from their mobile device. If users have not had a policy applied to their mobile device before, then after we deploy the policy, they will get a notification on their device that includes the steps to enroll and activate MDM. Until they complete enrollment, access to email, OneDrive and other services will be restricted. After they complete enrollment using the Company Portal app (which we will see in the next article), they will be able to use the services and the policy will be applied to their device.

When we delete a policy or remove a user from a group to which the policy was deployed to, the policy settings, Office 365 email profile and cached emails may be removed from the user's device:






What's removed Windows Phone 8.1iOS 6+Android 4+
Managed email profiles*
Policy settings
Except for Block sending diagnostic data from device.

*If the policy was deployed with the option require managing email profile selected (as we did above), then the managed email profile and cached emails in that profile will be deleted from the user's device.
Each user that the removed policy applied to will have the policy removed from their device the next time their mobile device checks in with MDM. If we deploy a new policy that applies to these users' devices, they will be prompted to re-enroll in MDM.

Conclusion

In this article we created our first security policy. In the next part we will start enrolling mobile devices.


If you would like to read the other parts in this article series please go to:


Mobile Device Management in Exchange Online (Part 3)

$
0
0
In the previous part of this article series, we created our first security policy. In this final part, it is time to start enrolling mobile devices.


If you would like to read the other parts in this article series please go to:

4: Enroll Users

After we have deployed a mobile device management policy, each licensed Office 365 user in the organization that the device policy applies to will receive an enrollment message the next time they sign into Office 365 from their mobile device. That could be when they try to login to the portal, to an Office app like Word or OneDrive, or create an email profile for example. They must complete the enrollment and activation steps before they can access Office 365 email and documents.

When users enroll their device in Mobile Device Management (MDM) for Office 365, they might be required to set up a password, together with allowing the option for the work organization to wipe the device. A device wipe can be performed, for example, to remove all data from the device if the password is entered incorrectly too many times or if usage terms are broken.

MDM for Office 365 works with most but not all mobile devices. The following are the supported ones at the time of writing this article:
  • iOS 7.1 or later;
  • Android 4 or later;
  • Windows 8.1 (phone or tablet).

 







iPad

Let us look at the example of a user that tries to configure their OneDrive on an iPad:

  
Figure 1

When they try to login, the OneDrive app detects the account is an Office 365 account (and therefore it is OneDrive for Business), and takes the user to the Office 365 portal to complete the sign in process:

Figure 2
 
Once the user types his username, he is asked to enroll the device (because of the policy we created earlier requiring devices to enroll in order to access Office 365 data):

Figure 3

When the user clicks Enroll, he is asked to install the Microsoft Intune Company Portal app:

Figure 4
 
By clicking on the iTunes store link, the user is taken to the Apple store to download the app:

Figure 5
 
Once installed, the user opens the Company Portal app, types his credentials and clicks on Sign in:

Figure 6
 
The app verifies the user credentials and tries to log the user into Intune. Once in, the user is taken through the process of enrolling the device. He clicks on Enroll:

Figure 7

A webpage opens showing the device is being enrolled:

Figure 8
 
The user is then taken to Settings where he needs to install a new (organization’s) Management Profile:

Figure 9
The warning lets the user know what this management profile will allow administrators (MDM) to do on the device:

Figure 10
 
The user clicks on Trust:

Figure 11

And once the process is completed, the user clicks on Done:

Figure 12

If the device’s password does not meet the requirements set by the security policy, the user is prompted to create a device passcode:

Figure 13
 
The user is then taken back to the Company Portal app with a notification stating that the device has been enrolled successfully and that he can shortly access Office 365 data:

Figure 14
 
By clicking on the device, we can see further details around the model, operating system and when the device was last checked for compliance:

Figure 15

As we saw, the entire process is straightforward, not leaving much room for user error, and pretty much identical to when we enrolled a device in Intune in my last article series.

If we chose to manage iOS email profiles with a security profile (which is required so an admin can wipe a device, for example), the next step is to delete any work or school email accounts. MDM for Office 365 will recreate the email account for the user, and then MDM manages the account and a remote device wipe will work.

Android HTC

Let us now go through the same process but for an Android device. In this example, the user configured an email account when MDM was already being enforced. As such, once the user opens the mailbox, only one email from MDM is visible:

Figure 16

This email explains why only this email is visible and exactly what the user needs to do in order to be able to access Office 365:

Figure 17
 
When the user clicks on the Enroll your device link, he/she is taken to a webpage to start the enrollment process:

Figure 18
 
From this webpage, a link guides the user to the Google Play store in order to download the Intune Company Portal app:

Figure 19
 
Once the app is installed, the user needs to sign in to Office 365 with his/hers credentials:

Figure 20
 
Step by step the user is guided through the process of enrolling the device:

Figure 21
 
A detailed list of what MDM can do on the device is displayed that the user has to agree to:

Figure 22
 
After clicking ACTIVATE a digital certificate needs to be installed for MDM to securely communicate with and manage the device:

Figure 23
 
The enrollment process is finally complete:

Figure 24
 
Through the company portal, the user can check the applications made available through the company app store (none in this case):

Figure 25
 
As well as a list of the devices the user has already enrolled:

Figure 26
 
Selecting a device will list additional information regarding the device itself:

Figure 27
 
Now that the device has been enrolled and it is in compliance with the security policy we created, the user is given access to his entire mailbox:

Figure 28

 

5: Manage Devices

Once we have one or more devices enrolled, they will show up in the MDM page:

Figure 29
 
From here we can, for example, perform a full wipe or a selective wipe.

Figure 30
 
If we select selective wipe, the following warning message is displayed:

Figure 31
 
If we select full wipe instead, the following warning message is displayed:

Figure 32
 
If we want to block unsupported devices from accessing Exchange email using Exchange ActiveSync we go to the Compliance Center, select Device management and then click on Manage organization-wide device access settings:

Figure 33
 
In order to unblock noncompliant or unsupported device for a user or group of users, we have several options:
  • Remove the user or users from the security group the policy has been applied to (Office 365 admin center> Groups, and then select group name. Click Edit members);
  • Remove the security group the users are a member of from the device policy (Compliance Center> Device management, and then select the device policy name. Click Edit > Deployment);
  • Unblock all noncompliant devices for a device policy. Go to Compliance Center> Device management, and then select device policy name. Click Edit > Access requirements. Select Allow access and report violation).
We can also generate a report to see how many devices are and are not compliant. To do so, go to Office 365 admin center, click on Mobile Devices and then See device compliance report:

Figure 34
 
We can filter the above report by operating system or by status:


Figure 35

 







Conclusion

The built-in Mobile Device Management solution in Office 365 is a great addition to the Office 365 family as not every organization requires all the features that Intune provides, has the in-house expertise to deploy and manage it, or is able to justify its cost. MDM for Office 365 It is a “simplified version” of Intune that helps organizations secure and manage their mobile devices. We can create MDM policies with settings that can help control access to the organization’s Office 365 email and documents for supported mobile devices and apps. If a device ever gets lost or stolen, we can remotely wipe the device to remove sensitive organizational information.

If you would like to read the other parts in this article series please go to:




VMware vCenter Server 6.0 Deployment Guide

$
0
0



The VMware vCenter Server™ 6.0 release introduces new, simplified deployment models. The components that make up a vCenter Server installation have been grouped into two types: embedded and external.


Embedded refers to a deployment in which all components—this can but does not necessarily include the database—are installed on the same virtual machine. External refers to a deployment in which vCenter Server is installed on one virtual machine and the Platform Services Controller (PSC) is installed on another. The Platform Services Controller is new to vCenter Server 6.0 and comprises VMware vCenter™ Single Sign-On™, licensing, and the VMware Certificate Authority (VMCA).






Embedded installations are recommended for standalone environments in which there is only one vCenter Server system and replication to another Platform Services Controller is not required. If there is a need to replicate with other Platform Services Controllers or there is more than one vCenter Single Sign-On enabled solution, deploying the Platform Services Controller(s) on separate virtual machine(s)—via external deployment—from vCenter Server is required.

This paper defines the services installed as part of each deployment model, recommended deployment models (reference architectures), installation and upgrade instructions for each reference architecture, postdeployment steps, and certificate management in VMware vSphere 6.0.









Improvements to Compliance in Exchange 2016 (Part 1)

$
0
0
In this article series we will explore the improvements made to Exchange 2016 in terms of compliance.


If you would like to read the next part in this article series please go to Improvements to Compliance in Exchange 2016 (Part 2).

Introduction

Email has become a reliable and universal communication medium for workers in organizations of all sizes all over the world. As previously discussed in several other MSExchange.org articles, mailboxes often contain valuable data, so it is crucial for organizations to have policies in place that dictate the fair use of their messaging systems, provide user guidelines for how to act on the policies and, where required, provide details about the types of communication that may not be allowed.

Email lifecycle is also important so organizations can retain emails for the length of time based on business, legal, and regulatory requirements, preserve emails for litigation and investigation purposes, and be prepared to search and provide the required information in eDiscovery requests.

As with Exchange 2013 and, in part 2010, Exchange 2016 includes several messaging policy and compliance features. The following is a high-level overview of these:
  • In-Place Archiving helps administrators regain control of the organization’s messaging data by eliminating the need for personal store (.PST) files and allowing users to store messages in an archive mailbox accessible in Outlook and Outlook on the Web (OWA);
  • In-Place Hold and Litigation Hold: organizations might sometimes be required to preserve electronically stored information, including email that is relevant to an investigation case. Litigation Hold allows administrators to place all items in a mailbox on hold while with In-Place Hold administrators can search and preserve emails matching query parameters. In both cases, emails (and other items such as calendar items) are protected from permanent deletion, modification and tampering and can be preserved indefinitely or for a specified period;
  • In-Place eDiscovery allows administrators to search mailbox data across the Exchange organization, preview search results, and copy search results to a Discovery mailbox or export them to a PST file;
  • Administrator audit logging enables organizations to keep a log of changes made by administrators to the Exchange environment and organization configuration. These might be used as part of change control process or to track changes and access to configuration and recipients for compliance purposes;
  • Mailbox audit logging: mailboxes can contain personal, sensitive and/or high business impact information, so it is important for some organizations to track who logs on to the mailboxes (usually by users other than the mailbox owner) and what actions are taken. Using mailbox audit logging, administrators can log mailbox access by administrators, delegates, and even mailbox owners;
  • Data loss prevention (DLP): Exchange 2016 includes 80 sensitive information types that are ready for administrators to use in DLP policies;
  • Transport rules can be used to look for specific conditions in emails as they pass through the organization and take action on them.






Improvements

All of the topics mentioned above have already been covered extensively at MSExchange.org for either Exchange 2010 and/or 2013. In this article, we will cover the following improvements made in Exchange 2016:

In-Place Hold and eDiscovery for Public Folders: a deficiency with In-Place Hold in Exchange 2010 and 2013 is that only mailboxes can be put on hold. Exchange 2016 has integrated Public Folders (PF) into the In-Place Hold and eDiscovery workflow. This means that administrators can use In-Place eDiscovery to search PFs in the organization and place them on hold. Similar to placing a mailbox on hold, we can use query-based or time-based holds on PFs. At the time of writing this article, we can only search and place a hold on all PFs, but I am sure that in a later release we will be able to choose specific PFs to search and place on hold;

Compliance Search is a new eDiscovery search tool in Exchange 2016 with new and improved scaling and performance capabilities. We can use this tool to search very large numbers of mailboxes in a single search as there is no limit on the number of mailboxes that can be searched, so it is possible to search all mailboxes in the organization in one search independently of how many mailboxes there are. There is also no limit on the number of searches that can run concurrently. The limits in Exchange 2016 in regards to In-Place eDiscovery are the same as in Exchange 2013: we can search up to 10,000 mailboxes in a single search and we can run a maximum of 2 In-Place eDiscovery searches at the same time.

 

In-Place Hold and eDiscovery for Public Folders

As I have mentioned, we can now use In-Place eDiscovery to search for content in PFs and place content in PF on In-Place Hold. Like content in mailboxes, content in PF might be relevant if an organization has to respond to legal requests such as lawsuits or regulatory investigations.

Before we begin, the account we use needs to be a member of the Compliance Management management role group before we can use In-Place Hold and eDiscovery features:

 Figure 1

Before we start, it is important to note the following:
  • We can include mailboxes and PF in the same eDiscovery search. However, when using an In-Place Hold to place content in PFs on hold, if we select the option to search all mailboxes in the organization, we cannot use the search to place a hold on any of the content sources of the search;
  • We can only search or place holds on all PFs in the organization. We cannot select specific PFs to search;
  • Moving PFs to a different PF mailbox does not affect searching or placing holds on PFs that have been moved;
  • PF mailboxes are counted against the source mailbox limit for the eDiscovery search;
  • We cannot delete PFs that are on In-Place Hold. We have to remove the hold before we can delete any PF;
  • Mail-enabling a PF does not impact using In-Place eDiscovery to search or place holds on PFs.

 

Public Folder In-Place Hold and eDiscovery using the EAC

The process of using the Exchange Admin Center to place PFs on Hold is identical to when placing mailboxes on Hold, with just a couple of differences:
  1. In the EAC, go to compliance management and then select in-place eDiscovery & hold:
 Figure 2
  1. Click on the new + icon;
  2. On the Name and description page, type a name for the search, add an optional description, and then click Next:
 Figure 3
  1. On the Mailboxes and Public folders page, under Mailboxes select Don’t search any mailboxes, otherwise we will not be able to enable an In-Place Hold for the search. Under Public folders, click Search all public folders:
 Figure 4
  1. On the Search query page, select Filter based on criteria to specify search criteria, including keywords, start and end dates, sender and recipient addresses, and message types. If we select Include all content, all content in the selected sources will be included in the search results:
 Figure 5
  1. On the In-Place Hold settings page, select the Place content matching the search query in selected      mailboxes on hold to place an In-Place Hold on all PFs in the organization. As to the options for the hold duration select either:
  • Hold indefinitely to place items returned by the search on an indefinite hold. Items on hold will be preserved until we remove PFs from the search or remove the search;
  • Specify number of days to hold items relative to their received date to hold items in PFs for a       specific period. For example, we can use this option if the organization requires that PF content be retained for at least seven years.
 Figure 6
  1. Click Finish to save the search and return an estimate of the total size and number of items that will be returned by the search or placed on hold based on the criteria we specified. Estimates are displayed in the details pane on the In-Place eDiscovery & Hold page. Select a search and then click Refresh to update the information about the search that’s displayed in the details pane:
 Figure 7
  1. Similar to a “normal” eDiscovery, we can also get a preview of the results, although it seems no preview is actually available. While for a normal eDiscovery we can see results per mailbox, with PF we see per PF mailbox (in this case PF1 is the name of one PF mailbox):
Figure 8






Public Folder In-Place Hold and eDiscovery using the Shell

It is easy to achieve the same results using the Exchange Management Shell. Such as with Exchange 2013, we need to use the New-MailboxSearch cmdlet but now with new parameters. This cmdlet creates a mailbox search and either gets an estimate of search results, places search results on In-Place Hold or copies them to a Discovery mailbox. We can also place all contents on hold by not specifying a search query, which accomplishes similar results as Litigation Hold in Exchange 2010. Let us look at a few examples.

Example 1
This example is basically the same as what we did using the EAC: we will be placing in an unlimited hold duration every item in Public Folders that have the work “project x”:

New-MailboxSearch -Name “Project X” -AllSourceMailboxes $False -AllPublicFolderSources $True -SearchQuery “project x” -InPlaceHoldEnabled $True -TargetMailbox “Discovery Search Mailbox”
Start-MailboxSearch “Project X”

Figure 9

Example 2
In this example we only create an estimate search that searches all PFs in the organization for items sent between October 1, 2015 and November 30, 2015 and that contain the phrases “project x” and “funds”. The search does not include any mailboxes:

New-MailboxSearch -Name “Project X Funds (Oct-Nov)” -AllPublicFolderSources $True -AllSourceMailboxes $False -SearchQuery ‘“project x” AND “funds”’ -StartDate “10/01/2015” -EndDate “11/30/2015” -TargetMailbox “Discovery Search Mailbox” -EstimateOnly
Start-MailboxSearch “Project X Funds (Oct-Nov)”

Figure 10

Example 3
This example places all content in all PFs on In-Place Hold, with an unlimited hold duration:
New-MailboxSearch -Name “PF Hold” -AllPublicFolderSources $True -AllSourceMailboxes $False -EstimateOnly -InPlaceHoldEnabled $True
Start-MailboxSearch “PF Hold”

Figure 11

Example 4

This example searches all mailboxes and PFs for any content that contains the words “project x” and that was sent after October 1, 2015. The difference in this example is that we are also searching all mailboxes in the organization.

New-MailboxSearch –Name “All Project X” -AllSourceMailboxes $true -AllPublicFolderSources $True -SearchQuery “project x” -StartDate “10/01/2015” -TargetMailbox “Discovery Search Mailbox”
Start-MailboxSearch “All Project X”

 Figure 12

 

Conclusion

In this article we explored the improvements made to Exchange 2016 in terms of compliance, specifically the In-Place Hold and eDiscovery for Public Folders, a long time due feature. In the next and final part of this article series, we will look at the new Compliance Search feature.

If you would like to read the next part in this article series please go to Improvements to Compliance in Exchange 2016 (Part 2).


 

Improvements to Compliance in Exchange 2016 (Part 2)

$
0
0
In the previous part of this article series, we explored the improvements made to Exchange 2016 in terms of compliance, specifically the In-Place Hold and eDiscovery for Public Folders, a long time due feature. In this final part we will look at the new Compliance Search feature.


If you would like to read the first part in this article series please go to Improvements to Compliance in Exchange 2016 (Part 1).

 

Compliance Search

The new Compliance Search feature in Exchange 2016 allows administrators to search all mailboxes in the organization. Unlike In-Place eDiscovery where we can only search up to 10,000 mailboxes, there are no limits for the number of target mailboxes in a single compliance search.

The reason why I underlined the word “search” is because it is important to note that this is only a search. Using compliance search we cannot place items on hold or export them to another mailbox. So is this useful for anything?

Let us imagine the scenario where we are required to perform an organization-wide search in an environment with 35,000 mailboxes and place items that match a particular search query on hold. With the 10,000 mailbox limit per In-Place eDiscovery search, this might not be straightforward... In this case, we can use the New-ComplianceSearch cmdlet to search all mailboxes, find out which mailboxes contain items that match our search query, and then use the workflow features of In-Place eDiscovery to perform other eDiscovery-related tasks, such as placing those mailboxes/items on hold and exporting the search results.

At the time of writing this article, Compliance Search in Exchange 2016 is only available by using the Exchange Management Shell and the following cmdlets:
  • Get-ComplianceSearch
  • New-ComplianceSearch
  • Remove-ComplianceSearch
  • Set-ComplianceSearch
  • Start-ComplianceSearch
  • Stop-ComplianceSearch
In order to have access to the Compliance Search cmdlets, we must be assigned the Mailbox Search management role or be a member of the Discovery Management role group:

 Figure 1






1. Search all mailboxes using New-ComplianceSearch cmdlet

First of all, we use the New-ComplianceSearch cmdlet to create a compliance search that searches all mailboxes in the organization. Once again, remember that there is no limit for the number of mailboxes for a single compliance search. We specify an appropriate keyword query (or a query for sensitive information types) so that the search returns only those source mailboxes that are relevant to our investigation. If necessary, we refine the search query to narrow the scope of search results and source mailboxes that are returned.

In the following example, we will be searching all mailboxes in the organization for items containing the keyword “project x”. The first cmdlet creates the search and the second one runs it:
New-ComplianceSearch -Name “Project X” -ExchangeLocation All -ContentMatchQuery “Project X”
Start-ComplianceSearch “Project X”

 Figure 2

The New-ComplianceSearch cmdlet, available in on-premises Exchange 2016 and in the cloud-based service, is used to create a compliance search in Exchange 2016 and in the Office 365 Compliance Center.
A compliance search requires at least one location. For example, mailboxes using the ExchangeLocation parameter, or SharePoint sites using the SharePointLocation parameter. The ExchangeLocation parameter specifies a mailbox to include in the compliance search, with the options of:
  • A particular/single mailbox;
  • A distribution group (which will search all mailboxes that are members of the group);
  • All: all mailboxes.
Other useful parameters of this cmdlet are:
  • AllowNotFoundExchangeLocationsEnabled: specifies whether to allow inactive mailboxes in the compliance search;
  • ContentMatchQuery: specifies a content search filter using a text search string or a query that is formatted by using the Keyword Query Language (KQL), such as ‘sent>=10/01/2015 AND sent<=11/30/2015 AND subject:”project x”’;
  • PublicFolderLocation: specifies that we want to include all public folders in the search. We use the value All for this parameter;
Important:When we create a compliance search by using the New-ComplianceSearch cmdlet, a shadow In-Place eDiscovery search is created (but not started) and displayed on the In-Place eDiscovery & Hold page in the EAC. It is also returned by using the Get-MailboxSearch cmdlet. This mailbox search is named ComplianceSearchName-shadow:

 Figure 3

Microsoft recommends that we delete this shadow In-Place eDiscovery search and use the script in Step 3 to create the In-Place eDiscovery search. The functionality of creating a shadow search will be removed in a future Cumulative Update.

 

2. Verify Search Results

Now that we created our first compliance search, it is a good idea to see if any mailboxes contain items matching our criteria and, if yes, how many.

For some strange reason, a compliance search will only return a maximum of 500 source mailboxes that contain search results. If there are more than 500 mailboxes that contain content that matches our search query, only the top 500 mailboxes with the most search results are included in the compliance search that we created in the previous step. So if more than 500 mailboxes contain search results, some of those mailboxes will not be included in the list of source mailboxes... If there are more than 500 source mailboxes, we can create two (or more) compliance searches.

For example, search half of the organization's mailboxes in one compliance search and the other half in another compliance search. However, if this is the case, we might as well create multiple eDiscovery searches... Alternatively, we can also change the search criteria to reduce the number of mailboxes that contain search results (such as specifying a date range or refine the keyword query).

I honestly hope this limit gets removed in a future Cumulative Update as I think it could be a limitation for large organizations.

The following script will display the number of source mailboxes (that contain search results) returned by the compliance search we created in the previous step. Save the following text to a Windows PowerShell script file by using a filename suffix of .ps1, such as a file named SourceMailboxes.ps1:
[CmdletBinding()]
Param (
    [Parameter(Mandatory =$True, Position = 1)]
    [String] $SearchName
)

$search= Get-ComplianceSearch $SearchName
If ($search.Status -ne"Completed") {
      "Please wait until the search finishes."
      break
}

$results=$search.SuccessResults
If (($search.Items -le 0) -or ([String]::IsNullOrWhiteSpace($results))) {
      "The compliance search "+$SearchName+" didn't return any useful results."
      break
}

$mailboxes= @()
$lines=$results-split'[\r\n]+'
ForEach ($linein$lines) {
    If ($line-match'Location: (\S+),.+Item count: (\d+)'-and$matches[2] -gt 0) {
        $mailboxes+=$matches[1]
    }
}

"Number of mailboxes that have search hits: "+$mailboxes.Count
When we run the above script, we can see how source mailboxes contained the search query used in our Search Compliance search:

 Figure 4

What the script does is basically analyze the SuccessResults property of the Compliance Search, which contains all the source mailboxes that contain items matching our search query, the number of items per mailbox that matched that query and their total size:

 Figure 5

 

3. Create In-Place eDiscovery Based on Compliance Search

Now that we know exactly which mailboxes contain the items we are looking for, the next step is to run a script (provided by Microsoft) that will convert the existing Compliance Search to an In-Place eDiscovery search. Here is how the script works:
  • First, it prompts us for the name of the compliance search to convert;
  • Then, it verifies that the compliance search has completed running;
  • It checks if the compliance search actually returns any results, otherwise the In-Place eDiscovery is not created;
  • It saves a list of the source mailboxes from the compliance search that contain search results to a variable;
  • Finally, it creates a new In-Place eDiscovery search, with the following properties (please note that the new search is not automatically started):
    • Name: the name of the new search uses the format: _MBSearch1. If you run the script again and use the same source compliance search, the search will be named _MBSearch2;
    • Source mailboxes: all mailboxes from the compliance search that contain search results are included in the eDiscovery;
    • Search query: the new search uses the same search query from the compliance search;
    • Estimate only search: the new search is marked as an estimate-only search. It will not copy search results to a discovery mailbox after we start it.
Save the following text to a Windows PowerShell script file by using a filename suffix of .ps1, such as a file named eDiscoveryFromComplianceSearch.ps1:
[CmdletBinding()]
Param(
    [Parameter(Mandatory =$True, Position = 1)]
    [string]$SearchName,

    [switch]$original,

    [switch]$restoreOriginal
)

$search= Get-ComplianceSearch $SearchName
If ($search.Status -ne"Completed") {
      "Please wait until the search finishes";
      break;
}

$results=$search.SuccessResults
If (($search.Items -le 0) -or ([string]::IsNullOrWhiteSpace($results))) {
      "The compliance search "+$SearchName+" didn't return any useful results"
      "A mailbox search object wasn't created"
      break;
}

$mailboxes= @()
$lines=$results-split'[\r\n]+'
ForEach ($linein$lines) {
    If ($line-match'Location: (\S+),.+Item count: (\d+)'-and$matches[2] -gt 0) {
        $mailboxes+=$matches[1]
    }
}

$msPrefix=$SearchName+"_MBSearch"
$I= 1
$mbSearches= Get-MailboxSearch
While ($True) {
    $found=$false
    $mbsName="$msPrefix$I"
    ForEach ($mbsin$mbSearches) {
        If ($mbs.Name -eq$mbsName) {
            $found=$true
            break
        }
    }

    If (!$found) {break}
    $I++
}

$query=$search.KeywordQuery
if ([string]::IsNullOrWhiteSpace($query)) {
    $query=$search.ContentMatchQuery;
}

If ([string]::IsNullOrWhiteSpace($query)) {
      New-MailboxSearch "$msPrefix$i" -SourceMailboxes $mailboxes -EstimateOnly;
} Else {
      New-MailboxSearch "$msPrefix$i" -SourceMailboxes $mailboxes -SearchQuery $query -EstimateOnly
}






If the script is successful, a new In-Place eDiscovery search is created with a status of NotStarted:

 Figure 6

 Figure 7

We can run the cmdlet Get-MailboxSearch “Project X_MBSearch1” | FL to display the properties of this particular new search:
 Figure 8

As already mentioned, the previous script creates a new In-Place eDiscovery search but it does not start it. The next step is to start the search so we can get an estimate of the search results:
  1. In the Exchange admin center (EAC), go to Compliance management> In-Place eDiscovery & Hold;
  2. In the list view, select the In-Place eDiscovery search we created;
  3. Click Search > Estimate search results to start the search and return an estimate of the total size and number of items returned by the search:
 Figure 9
  1. The estimates are displayed in the details pane. Click Refresh to update the information displayed in the details pane:
  2.  
 Figure 10
  1. To preview the results after the search is completed, click Preview search results in the details pane:

 Figure 11

Alternatively, we can use the Shell to start the In-Place eDiscovery search by running:
Start-MailboxSearch “Project X_MBSearch1”

After we have created and started the In-Place eDiscovery search, we can use the normal In-Place eDiscovery workflow to perform different eDiscovery actions on the search results, such as placing items on hold or exporting the search results to another mailbox for analysis.

 

Conclusion

In this article series we explored the improvements made to Exchange 2016 in terms of compliance. While the capability of placing Public Folder items on hold is a welcomed and long time due feature, the Compliance Search still seems a bit incomplete and limited in my opinion.

If you would like to read the first part in this article series please go to Improvements to Compliance in Exchange 2016 (Part 1).



Track AppStore Price Drop With CheapCharts App On Your iPhone or iPAD

$
0
0

Why pay regular price for your favorite iPhone and iPad apps, games, or movies? Try CheapCharts app for iPhone to track App Store Sales and iTunes price drop.

CheapCharts is a free app and it monitors your Wishlist, alerts you when the app is on discount. After the app is installed, you can browse through the list of apps and games that are currently on sale. The function of the app is not limited to display lists, you can search for your favorite paid app, add to Wishlist, and Activate push notification. You can check the detailed guide below for more information.

Step #1. Very first thing to do is download and install CheapCharts.

Step #2. As it will be your first time, CheapCharts will ask for your permission to send you push notification, tap on “Activate“.


In case you miss this step, you can enable it anytime from the app settings.






Step #3. Launch the app and tap the menuicon at the top-left portion of the app screen.


Step #4. Inside the menu section, tap on the categorydropdownlist to select from music, movies, games, apps, and books.


Step #5. Now tap on Search and enter the name of app, game, music, movies, or books you are looking for.







Step #6. From the search result, tap on the one that you wish to track.



Step #7. On the next page, tap on Wishlist icon to add it to the tracking list.


Doing so, CheapCharts will send you a push notification as soon as your favorite app or game is on sale or its price changes. The same applies to iTunes store as well; you can get notification of your favorite movie price drop. The price of movies tends to be higher when they are released, but they drop with passing time. I have observed that during holiday seasons, a heap of movies goes on sale and CheapCharts helps to locate each of them.






The best part of the CheapCharts app is that it is completely free and does its job with perfection. The app has surely helped me in saving a bunch of dollars, what about you? Are you still paying regular price for games, apps, and movies? Give CheapCharts app a try.




Exchange Online Identity Models and Authentication Demystified

$
0
0
In this articles series, I will provide you with an insight into the identity models available and the authentication story for Exchange Online.


Exchange Online Identity Models & Authentication Demystified (Part 1)

 

Introduction

In this article series, I will provide you with an insight into the authentication story for Exchange Online. That is, I will go through the fundamentals, which are the available identity models, but I will also explain the authentication methods for the different users/clients/devices. Since the authentication story is going through a significant transformation, I will explain how the authentication is today and what you can expect in the near future.

When it comes to improving the authentication story, the Office 365 Business Group has really listened to the customer feedback received over the last couple of years and although we didn't see many changes for, if you ask me, too long this doesn’t mean nothing has been going on inside Microsoft. Actually a team was put together to only focus on improving the authentication story for Exchange Online users/clients and Office 365 workload Users/clients in general.

Note:
Although a big chunk of the stuff we will cover in this article series will also apply to several of the other Office 365 workloads, our main focus will be on the Exchange Online workload.
Let’s get going. As usual, we have a lot to cover.

 

Starting with the Fundamentals – Identity Models

So as many of us know, the workloads included with the Office 365 Software As a Service (SaaS) offering are really just workloads enabled on an Azure Active Directory (AAD) tenant. This means that provisioned objects (cloud identities or synchronized users) are stored in the AAD tenant and authentication occurs against the respective AAD authentication endpoints. For this reason, one of the very fundamental and important decisions you need to take is around what identity model to use within the organization.

The authentication process differs quite a bit depending on the identity model you decide to use. We have three identity models to choose from, as depicted in the following conceptual diagram.








 Figure 1: Conceptual diagram of the three identity models available

 

Cloud Identities

The first identity model is cloud identities where users are provisioned directly in the AAD/Office 365 tenant using the Office 365 or Azure portal. The portal also supports bulk user provisioning based on a CSV containing up to 250 users. For more advanced provision requirements, you can of course also use the Azure Active Directory PowerShell for the provisioning process.

Figure 2: Users provisioned directly in the tenant

The major benefit of the cloud identity model is that you do not need to make any changes or deploy any new servers in the on-premises infrastructure.
Figure 3: Authentication for “Cloud Identities” model

However, since the cloud identity model means that a new identity will be created for the end users, it also means the end users will be provided with a new set of credentials. For this reason, this identity model is primarily targeted at:
  • Small enterprises that do not already have an on-premises Active Directory. Since the cloud identity model does not require any servers to be deployed on-premises, the enterprises can get up and running quickly.
  • Larger enterprises that want to try Exchange Online and other Office 365 workloads without needing to make significant changes in the on-premises Active Directory. If you go through this scenario, you can later convert to one of the other identity models if required. This is done by matching the cloud user identities with the respective on-premises Active Directory users using SMTP based soft matching.
  • Enterprises with up to 2.000 mailbox users that for one reason or another wish to migrate from on-premise Exchange to Exchange Online using a cut-over migration. The cut-over migration process itself includes provisioning of the users in the tenant. As mentioned, a cut-over migration supports up to 2.000 user mailboxes, but it is possible to circumvent this limit by hiding users from the GAL or if you are dealing with a merger of multiple on-premises Active Directories to a single AAD/Office 365 tenant. If you go through this scenario, you can later convert to one of the other identity models using the same method as in the previous scenario.
If you are dealing with a large enterprise that already relies heavily on Active Directory, you should not go with cloud identities unless you match one of the above scenarios. Introducing an additional set of credentials to your end users is a move in the wrong direction as they not only need to use different passwords and typically also username as most end users in large enterprises still use the SAM account name (domain\alias) for authentication purposes against the on-premises Active Directory. The AAD/Office 365 tenant expects the end user to authenticate with a user principal name (UPN) in the form of “alias@azurelab.dk”.

 

Synchronized Identities with Password Hash Sync Enabled

The second identity model is synchronized identities, where the existing users in the on-premises Active Directory are synchronized to the AAD/Office 365 tenant using a directory synchronization tool. Three Microsoft directory synchronization tools exist today. We have the first one that was released named “DirSync”, which is still fully supported and the one that will be downloaded if you follow the steps in the Office 365 portal.

The second tool is the Azure AD Sync (AADSync), which was released in order to provide a tool that supported multi-forest scenarios and more. Although the AADSync tool is still supported by Microsoft, it is no longer possible to download it as it has been replaced by the third tool released.

The third tool is named Azure AD Connect (AADConnect) and is the recommended directory synchronization tool going forward as this is where the resources will be used. AADConnect supports all the features included in the AADSync tool and more. In addition, the setup wizard includes steps for configuring AD FS servers in your on-premises environment, if you want to go with federated identities.

All the three above mentioned tools support the password hash synchronization option, which is highly recommended to enable in a directory synchronization scenario where AD FS will not be used for federation purposes.
Figure 4: Enabling Password hash synchronization

Since this identity model works by installing directory synchronization tool on a server in your on-premises infrastructure, you must usually deploy a new server for this purpose. I say usually as it is supported to install the tool on a Domain Controller, however I only recommend doing so in a test environment.

If you deal with a very large organization, you may also need to use a dedicated SQL database as the local SQL Express instance that is installed by default “only” supports up to 100.000 synchronized objects (including users, groups and contacts).

 Figure 5: Users synchronized from the on-premises Active Directory

The major benefit of using this identity model over the cloud identities is that users will be provisioned automatically using the directory synchronization tool and will be able to use the same set of credentials as they already use in their on-premises Active Directory resulting in not a “single sign-on” but “same sign-on” scenario where the user object and passwords are managed in the on-premises Active Directory. In a “same sign-on” scenario, the end user will, as mentioned, be able to use his existing credentials but needs to authenticate when accessing an Office 365 workload.

Figure 6: Authentication flow for the “Synchronized Identities with Password Hash Sync enabled” model

When authenticated, a cookie will be generated so the user only needs to authenticate the first time he accesses an Office 365 workload during a workday. The cookie will then usually be kept alive. However, this of course depends on the specific user patterns within the organization.

It is also worth mentioning that the user cannot use his SAM account name to access Office 365 workloads, but instead needs to use his user principal name (UPN), which means that the end user may see this as being provided with a new username as he will typically use his SAM account name for Active Directory based authentication.

Unlike user attributes on an on-premises Active Directory object, which in case of a change are being synchronized every third hour by the synchronization tool, the password of a user is checked every second minute and synchronized in case a password change has occurred.

Moreover, it’s important to note that the end user passwords will not be stored in the AAD/Office 365 tenant. It will be a hash of a hash of the on-premises Active Directory password that will be stored there and the password itself cannot be retrieved through the hash of the hash of the password by a malicious user.
Synchronized identities with password sync enabled is primarily targeted at:
  • Small and larger enterprises that already have an on-premises Active Directory and want end users to be provisioned automatically and also manage users in the on-premises Active Directory as well as allowing end users to use their existing Active Directory password (via same sign-on method) to access Office 365 workloads. All this without the need to make major changes in the on-premises infrastructure as in only deploying a single server on-premises.
  • Larger enterprises that want to trial Exchange Online and other Office 365 workloads without needing to make significant changes in the on-premises Active Directory. If you go through this scenario, you can later convert to the federated identities model if required. This is done by matching the cloud user identities with the respective on-premises Active Directory users using hard matching via the “ImmutableID” or SMTP based soft matching.
This concludes part 1 of this multi-part article in which I provide you with an insight into the identity models available and the authentication story for users/clients connecting to the Exchange Online workload and Office 365 workloads in general.

 

Exchange Online Identity Models & Authentication Demystified (Part 2)

In this part2 I will provide you with an insight into the third identity model, which is federated identities.

 

Introduction

In part 1 of this article series revolving around the available identity models and the authentication story for Exchange Online, I provided you with an insight into the two of the three identity models (cloud identities and synched users with password hash sync enabled) that are supported with AAD/Office 365. I also explained which types of scenarios were the primary targets for each identity model.

In this part 2, we will continue where we left off in part 1.

Let’s get going. As usual, we have a lot to cover.

Federated Identities

The third and last identity model is what we refer to as the “Federated Identities” model. Just like with the “Synchronized Identities with Password Hash enabled” model, this model requires that we synchronize our on-premises Active Directory users to the AAD/Office 365 tenant using one of the supported directory synchronization tools (preferably AADConnect). But the similarities end here. Because although the synchronization aspects are identical, the authentication parts are very different.

Unlike with the “Synchronized Identities with Password Hash enabled” model, where a hash of the hash of the password is synchronized together with the user object to the AAD/Office 365 tenant, the Federated Identities model uses Active Directory Federation Service (AD FS) technology to establish a federation trust between the tenant and the on-premises Active Directory.

Note:You can combine “Federated Identities” with “Synchronized Identities with Password Hash enabled” model. More specifically, you can use the “Synchronized Identities with Password Hash enabled” model as a backup (failover) for “Federated Identities” model. This means that in case your AD FS farm or even your Active Directory is unavailable for a longer period of time, you can convert the domain(s) in the AAD/Office 365 tenant from federated domain(s) to managed domains and thereby allow users to authenticate against Azure Active Directory and be granted access the respective Office 365 workload(s). For the glory details on how this works in detail, see this TechNet Wiki article.

Although it’s generally recommend to choose the least complex identity model, larger organizations that have one or more Active Directory forests and often also a complex on-premises infrastructure in many cases wants to keep the authentication mechanisms on-premises in order to have more control and options available when it comes to granular end user access management. In addition, nowadays there’s also a good portion of organizations that already have an AD FS farm in place for other federation purposes and see it as a natural step to also use this solution for AAD/Office 365 federation purposes as well.

Note:Although the focus of this article is on Active Directory as the identity provider, Microsoft also support the use of third party SAML 2.0 based identity providers to implement single sign-on (read more here). Shibboleth based Identity Providers are also supported, however only a limited set of clients are supported in such a scenario (read more here).

Another reason to go with “Federated Identities” model over the “Synchronized Identities with Password Hash enabled” model is in order to provide the end users with a true “single sign-on” solution instead of a “same sign-on” solution. True “single sign-on” does not hold true for all client version scenarios though (more on this later in this article series). However, what’s attractive to the organizations is that it’s the end users Active Directory credentials that are used to authenticate against Azure Active Directory.

Figure 1: When user access the AAD/Office 365 logon page being redirected to the on-premises federation service

 Figure 2:Web Application Proxy Logon page

With the “Federated Identities” model, when a user tries to access an Office 365 workload, he will get an SAML security token from AD FS, which is handed to Azure AD as proof for being allowed to access the respective workload as shown in the following conceptual diagram. When it comes to Exchange Online, this flow depends on the client type and client version though as Exchange Online is a little special when it comes to authentication. We will talk a lot more about this later in the article series.


 Figure 3: Federated Identities authentication flow

As already mentioned, going with the “Federated Identities” model makes sense for organizations that want more control and options available when it comes to granular end user access management, but you should bear in mind this model requires at least four servers on-premises (two ADFS servers on the internal network and two WAP servers in the perimeter network).

Although a single server AD FS and a single WAP server is sufficient as authentication endpoint for several thousand users (of course depending on user concurrency etc.) in AAD/Office 365 you would want to deploy a highly available federation farm. The reason for this is because if the federation service becomes unavailable, your end users will not be able to authenticate against AAD and for this reason also not be able to access any of the Office 365 workloads unless you initiate a failover to password hash sync, which depending on your specific topology can take several hours.

Some of the more important reasons why you want to go with the “Federate Identities” model are listed below:
  • The organization already has an AD FS farm in place and wishes to use this for AAD/Office 365 federation purposes.
  • The organization already has an existing smart card or multi-factor authentication (MFA) solution and do not want to (or are not yet ready to) switch to the MFA solution provided by an Azure AD (required Azure AD Premium subscription).
  • The organization has a security policy stating that a hash of a hash of the on-premises password must not be synchronized to the AAD/Office 365 tenant.
  • The organization wants to leverage the AD FS extranet lockout feature to protect users on the corporate network from AD account lockouts and brute force password guessing attacks. The Office 365 account lockout policy is 10 unsuccessful attempts and after that the end user is forced through a CAPTHA dialog as part of the logon.
  • The organization wants to have a true single sign-on solution and not a same sign-on solution. Bear in mind though that true SSO is not possible for rich clients (such as the desktop Outlook client) that use basic authentication. For Outlook 2013 and later, this can be solved by enabling modern authentication (more on this later in this article series).
  • The organization wishes to control at what time the end users are allowed to access Office 365 workloads using logon hours. Note: Personally, I have never encountered a customer with this requirement.
  • The organization wish to use client access policies to control which clients may access Office 365 based on location (i.e. block Outlook Anywhere from an external network).
  • The organization wants a user account that is being disabled in the Active Directory to be “immediately” reflected for AAD/Office 365 access. It will not be immediately, but quicker than what is the case for the “Synchronized Identities with Password Hash enabled” model.
  • The organization wants to use AD FS based conditional access (workplace join, group membership, device registration, certificate based access etc.).
  • The organization wants to enable password expiry notifications for end users (will be shown in the Office 365 portal).
  • The organization want to make use of custom claim rules for more detailed audit control.
  • The organization wants to provide the end users with a transparent login experience for web based access to Office 365 using smart links.
  • The organization wants detailed information for sign-in attempts (auditing), which will be logged in the Windows event log on the AD FS servers.
  • The organization cannot change/use the UPN as required and instead wants to use alternate login IDs.
This concludes part 2 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

Exchange Online Identity Models & Authentication Demystified (Part 3)

In this part 3 we will switch focus to the Exchange Online authentication side of things. We will dive into how Exchange clients authenticate up until today in the different identity scenarios.

Introduction

In part 2 of this article series revolving around the available identity models and the authentication story for Exchange Online, I provided you with an insight into the third identity model, which is federated identities.
In this part 3, we will continue where we left off in part 2.
Let’s get going. As usual, we have a lot to cover.

Exchange Online Client Authentication – The Past & Today

So as we discussed in the previous two parts of this article series, you can choose between three different identity models. Cloud Identities, Synchronized Identities with Password Hash enabled and Federated Identities. Depending on the model chosen, when you access the Exchange Online workload, you will need to:
  • Authenticate with your cloud credentials (UPN and password) when the workload is accessed
  • Authenticate with your cloud credentials (UPN and password), that match the on-premises AD credentials (aka “Same Sign-On”)
  • Authenticate automatically using on-premises AD credentials, when domain-joined and domain-connected (aka “Single Sign-On”)
However, when it comes to the “Federated Identities” model, depending on the client as well as the version of a client used to access the Exchange Online workload, the above does not necessarily match the reality. As you know, we can access our mailbox using several different clients. We have the Outlook Desktop client, Outlook on the Web (OotW), the Outlook app for iOS and Android, ActiveSync based clients, IMAP/POP clients, SMTP clients and clients based on the Exchange Web Services (EWS) protocol such as Outlook for Mac.
When it comes to the different clients accessing the Exchange Online workload in an “Federated Identities” model, they use different endpoints for authentication. We have the following endpoints for Exchange client authentication:

 

Passive Federation (WS-Fed Passive Profiles)

This endpoint is used by web clients or by all clients that use the new modern authentication method. For now, we will focus on non-modern authentication, so the only Exchange Online client using this endpoint is Outlook on the Web (OotW). A passive profile client that is domain-joined and located on internal network authenticates directly with the AD FS (STS) endpoint on-premises.

More specifically, when the web client connects to “outlook.office365.com” either by redirection from the on-premises Exchange OotW URL in a hybrid deployment scenario or by selecting the Outlook app title in the Office Portal, Exchange Online redirects the web client to the authentication endpoint in Azure Active Directory (login.microsoftonline.com).

Figure 1: Web Client redirected from login.microsoftonline.com to on-premises AD FS farm

The Azure AD authentication endpoint will detect the UPN domain is federated and do another redirection to the internal AD FS endpoint on-premises (in my case “fs.azurelab.dk”), where AD FS will require the client to authenticate.

Once authenticated, AD FS will retrieve the necessary claims related information from Active Directory and provide the web client with a token holding the claims about the user. The client will present the token to Azure AD and after successful authentication, the web client will be redirected back to “outlook.office365.com” and access the mailbox via OotW.

I have tried to explain this flow visually in the below conceptual diagram (Figure 2).

Figure 2: Authentication Flow for Domain-joined Passive Profile Clients on internal network

In case the client was located on an external network, the same steps would apply with the only difference of having the redirection to “fs.azurelab.dk” go through the Web Application Proxy (WAP) servers to the internal AD FS farm to which the external DNS record for “fs.azurelab.dk” would resolve. Since the user is not authenticated, he will need to authenticate via the sign-in page on the WAP servers. Otherwise all the steps apply.

 Figure 3: WAP Sign-in Page

Since both internal and external client will always hit “login.microsoftonline.com”, it is possible to have the client remember the UPN of the respective user (Figure 4), so that is doesn’t have to enter it each time he is required to authenticate.
 Figure 4: UPN remembered in the web client

 

Basic Authentication (Basic Auth Profiles)

This endpoint is used by non-browser based clients or non-modern authentication enabled clients that authenticate using basic authentication. Clients such as the Outlook Desktop client, IMAP/POP clients, Exchange ActiveSync (EAS) based clients, Exchange Web Services (EWS) based clients and TLS secured SMTP sessions use basic authentication. Basic authentication based clients have in common that Exchange Online does the authentication with AD FS on behalf of the client also known as proxy authentication.

More specifically, the client sends the Basic authentication credentials to Exchange Online over SSL/TLS (outlook.office3365.com) and then Exchange Online sends the authentication credentials to Azure AD using something called proxy authentication (proxy auth). Azure AD returns the respective endpoint for the on-premises AD FS farm (in my case “fs.azurelab.dk”) to Exchange Online. Note though that Exchange Online connects to the end point through the WAP servers and not directly.

The internal AD FS servers then authenticate with Active Directory and is provided with a logon token containing the necessary user claims. The AD FS servers send this token to Exchange Online, which again sends it to Azure AD. Azure AD returns it to Exchange Online in a state where it can be used to authenticate the client.

I have tried to explain this flow visually in the below conceptual diagram (Figure 5).

 Figure 5: Authentication Flow for Basic Authentication based Clients

Although this article series is about Exchange Online specific authentication, it its worth mentioning there is a third endpoint known as the Active Federation (WS-Trust Active Profiles) endpoint, which is used by so called rich/MEX clients. This is Office applications (including Skype for Business), but of course except the Outlook desktop client, which we covered above. These clients use the Microsoft Online Services Sign-In Assistant (SIA) assistant if Office 2010 or the built-in SIA DLL files if using Office 2013, to provide the end user with a good SSO experience. Unlike Basic authentication, these clients authenticate directly with AD FS as in they do now use the WAP servers.

 

A Closer Look at the AD FS Connection Endpoints On-Premises

Let’s take a closer look at the authentication endpoints, that web (browser-based) clients, Rich/MEX Client profiles and Exchange Online (when a Basic authentication client is used) are redirected to on-premises in a federated identity scenario. To do so, we will connect to our AAD/Office 365 tenant using the Azure Active Directory PowerShell module and run the following command:
Get-MsolFederationProperty –DomainName “Insert federated domain” | fl

In my lab environment, they look like those shown in Figure 6.

Figure 6: Federation Property settings in Exchange Online tenant

The AD FS (STS) endpoints in Figure 6 are used as follows:
  • ActiveClientSignInUrl: https://fs.azurelab.dk/adfs/services/trust/2005/usernamemixed is used
    by Basic Authentication based clients
  • FederationMetadataUrl: https://fs.azurelab.dk/adfs/services/trust/mex is used by Rich/MEX clients
  • PassiveClientSignInUrl: https://fs.azurelab.dk/adfs/ls/ is used by web (browser-based) clients and clients with modern authentication enabled (more on this later).
As you can see from the above, we need a more standardized model for the authentication flow, which all of us agree is quite complex today. The authentication flow is of course a little less complicated for non-federated scenarios, but without question, there is a need to have a more standardized approach going forward. And as I mentioned in the introductory of the first article, this is where the dedicated Office client authentication team that was established almost two years ago comes into the picture. Beginning with the next part in this article series, we will take a look at what they have up their sleeve.

This concludes part 3 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

Exchange Online Identity Models & Authentication Demystified (Part 4)

In this part 4 we will switch focus to the Exchange Online authentication as it was in the past up until now. We will go through the two major pain points that customers had to deal with up until recently.

Introduction

In part 3 of this article series revolving around the available identity models and the authentication story for Exchange Online, I provided you with an insight into the third identity model, which is federated identities.
Let’s get going. As usual, we have a lot to cover.

Authentication Story for Exchange Online Clients Up Until Today

As explained in the previous part of this article series, the authentication story for Office 365 clients had room for improvement. More specifically, it makes sense to introduce a more standardized authentication model, where all Office 365 clients use the same authentication method and endpoint. Doing so would also have a direct impact on the authentication experience seen from the end user’s perspective.

In the following we will go through what can be considered the two most frustrating Exchange Online client authentication pain points that exist for Enterprise customers up until today.

 

Credentials Must Be Stored on the Outlook Desktop Client Machine

Back since September 2007, where the Microsoft Business Productivity Online Standard Suite (aka BPOS) was announced, the Exchange Online workload has only had support for basic authentication when it comes to clients like the Outlook Desktop client, IMAP/POP clients, Exchange ActiveSync (EAS) clients, Exchange Web Services (EWS), and TLS secured SMTP clients.

Sure, we have without doubt come a long way since the “Microsoft Online Services Sign In” client that were installed on the end user’s client machine in order to configure Outlook (and other Office application) profiles and to authenticate the end user’s BPOS account in order to simulate an SSO experience but Enterprise customers still suffers, when it comes to basic authentication based clients.

 Figure 1: MSOL Sign-In assistant


With the launch of the first version of Office 365 (also referred to as wave 14 which were based on 2010 versions of the respective workloads) back in October 2011, the situation for Office clients was improved further with the introduction of the Microsoft Online Services Sign-in Assistant (or in short MOS SIA). The MOS SIA was a stand-alone package, which basically consisted of dynamic link library files (DLLs) and a Windows service (see more details here), that improved the login experience for Office 2010 clients.

The MOS SIA was installed automatically on the client machine, if the Office 365 Desktop Setup tool was used. However, since Office 365 Desktop Setup tool required local administrator permissions on the client machine, most organizations deployed the MOS SIA package using their software deployment solution like SCCM.
 Figure 2: Microsoft Online Services Sign-in Assistant Stand-alone package installed

On February 27, 2013, the second wave of Office 365 (also referred to as wave 15 which was based on 2013 versions of the respective workloads and the one that is in use as of this writing) was launched. Around the same time, Office 2013 was made generally available. With Office 2013, a MOS SIA is baked into the product removing the need to install the stand-alone MOS SIA package. However, the sign-in experience for Exchange Online clients were not improved as Exchange Online (now running Exchange 2013) still only supported basic authentication for the aforementioned non-browser based clients.

You see, despite the improvements made over time since the inception of Microsoft cloud services, because of the basic authentication requirement, the credentials have to be presented to Exchange Online, as in, they must be entered every time the Outlook Desktop client is launched or be saved in the Windows credential manager on the client. Refer back to the previous article in this series for the details around the proxy authentication flow that is the reason behind this requirement.

Figure 3: End user challenged for credentials in Outlook Desktop client

Since the credentials are stored client-side, it means that when the password expires or is changed for other reasons, the end user will need to enter it again and in order to avoid constant prompting ensure the updated password is saved to the credential manager.

 Figure 4: Credential Manager on Windows 10 Client

 

Lack of Real Multi-Factor Authentication for Basic Authentication Clients

Multi-Factor Authentication (MFA) was made available to end users back on February 10, 2014. Although the MFA feature is based on Microsoft Azure, the feature is included in the covered Office 365 plans at no additional cost.There is also another more feature rich MFA solution available, but that one requires an Azure AD Premium subscription or the Enterprise Mobility Suite (EMS). You can find a comparison of the MFA editions here.

Note:Although MFA wasn’t made available to end users before in February, 2014, it has been available to Office 365 administrative users since June 2013.

The MFA feature included with Office 365 includes support for mobile app, phone call and SMS as a second factor based authentication and has worked very well for browser based access to the Office 365 workloads, which in our case is Outlook on the Web (OotW) access to a mailbox.






Figure 5: MFA Enabled for End User accessing his mailbox using Outlook on the App (OotW)

However, the situation was far from ideal for rich clients, which in our case is the basic authentication based Exchange Online clients mentioned earlier since they, until recently, were not supported by any of the MFA options. Instead we needed to use so called App passwords for this client type.

An App password is a new randomly generated password that is created when MFA is enabled for an end user. It has nothing do to with MFA, but is merely just a new password that had to be used for basic authentication based clients. So in addition to the end users existing password, she now had to use the App password for Outlook on her desktop client, any mobile devices using the ActiveSync protocol and the other clients mentioned earlier.

Figure 6: With MFA enabled, Basic Authentication based Clients use App Passwords

The App password can only be seen at the initial creation, so if the end user needs to set up a new basic authentication device or client later on, he needs to generate one more App password for this purpose now having three passwords in use. Yes, you see where this is going right? A lot of extra calls to the service desk and a confused end user wasting time messing around with App passwords.

As you can see in Figure 7, an App password is not something the end user will be able to remember as it is a complete random set of letters and not something he can relate to, like often is the case with passwords generated by the end user themself. This is of course good for security, but not for the end user. I fear some end users could come up with the “bright” idea of storing this password in an unencrypted fashion somewhere on their device or client, so they do not need to create a new one when/if required.


Figure 7: An example of an App Password

Although App passwords were only meant to be a temporary thing until modern authentication saw the day of light, it was a painful temporary period.

Good thing is, the Office 365 modern authentication team (formerly known as the Office 2013 modern authentication), that were established back in the beginning of 2014 were busy working on a new authentication story for Office 365 clients.

This concludes part 4 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

Exchange Online Identity Models & Authentication Demystified (Part 5)

In this article we will take a closer look at what modern authentication consists of and how the authentication flow looks like for ADAL enabled Outlook clients.

 

Introduction

In part 4 of this article series revolving around the available identity models and the authentication story for Exchange Online, our focus was on the Exchange Online authentication story as it was in the past up until now. We talked about the two major pain points seen from the end user/client perspective.
Let’s get going.

 

Modern Authentication, ADAL and OAuth – What is it?

Over the last couple of years, the respective teams at Microsoft have worked on moving their cloud services (including the Office 365 workloads) to an OAuth based authentication model. For those that are not familiar with OAuth, let me give you a short explanation. OAuth (Open Authentication) is an open authorization standard that was born back in November 2006, so it is by no means a new standard.

OAuth is used by most of the largest and popular service providers both in the consumer and enterprise space nowadays. More specifically service providers like Amazon, Facebook, LinkedIn, Google, Instagram, Foursquare, Twitter, DropBox and PayPal use OAuth and most of them have done so for many years. Actually, several of them used OAuth based authentication from the day they were born. Yammer which was acquired by Microsoft also used OAuth based authentication and still does this today.

As you can see OAuth is the authorization standard when it comes to cloud services and it was therefore a natural move for Microsoft to start moving their cloud services to this standard as well. And so they did and as of today most of the Microsoft cloud services including the browser based Office 365 workloads use OAuth today. Even things like Exchange hybrid configurations and Exchange Web Services (EWS) can utilize OAuth today.

Since OAuth is an authentication model mostly used for web based clients and services, Microsoft had to come up with a plan for utilizing this standard for rich/active clients like the Outlook Desktop client so they could fulfill the goal of ending up with a single authentication model used by all Office 365 clients and services irrespective of the devices used.

The Azure Active Directory team at Microsoft created the so called Azure AD Authentication Library (ADAL) that assists developers in enabling client application to authenticate users to Azure Active Directory (AAD) or on-premises Active Directory (AD) using OAuth based authentication.

When it comes to Office applications accessing Office 365 workloads, the Modern Authentication team naturally decided to use ADAL to facilitate sign in with Azure AD for Office client applications going forward. ADAL replaces the Microsoft Online Sign-in Assistant (SIA), that we talked about in the previous article, and when it comes to supported Office versions, Office 2013 and later is supported. For Office 2016, ADAL is included with the RTM build and for Office 2013, it is included in March 2015. Office 2013 also requires you to enable a registry key to be set in order to facilitate ADAL based authentication. Also, for the Exchange Online workload, you must ensure the tenant has OAuth based authentication support enabled (more on this in the next article).

By enabling ADAL for Office client applications, they will use an in-application browser control to render the Azure AD sign in experience in the same fashion as browser-based Office 365 clients like the Outlook on the Web (OotW). ADAL based OAuth authentication works for federated as well as non-federated scenarios.

With ADAL enabled in the Office client, we no longer rely on using basic authentication for the Outlook client and because of this, we also no longer need to store the credentials of the user on the client device, which is a huge step forward that eliminates one of the major pain points we talked about in the previous article. It also means that Exchange Online no longer needs to send the authentication credentials to Azure AD using proxy authentication (proxy auth) as we now use the WS-Fed passive profiles instead of the WS-Trust Active Profiles.

 

Modern Authentication (OAuth) Client Tokens Explained

When we enable ADAL for an Office client (aka modern authentication), we use OAuth based authentication as I also mentioned earlier. OAuth uses access and refresh tokens to allow access to Office 365 workloads using Azure Active Directory. In the OAuth world, two tokens are provided to the client when it has authenticated successfully against Azure AD. An access token is a JSON Web Token (JWT) which is valid for 1 hour and a refresh token which is valid for 14 days.

If the tokens are active, which they will be if Office 365 workloads are accessed frequently, which usually is the case (especially for the Outlook desktop client), the refresh token can be valid for up to 90 days. So with frequent use of Office 365 workloads, the end user would only need to authenticate every third month as the access token will be kept alive by the refresh token. However, bear in mind the refresh token on the client can be invalidated. There are a few things that can invalidate a refresh token, the most common being the end user password being changed after the refresh token has been issued.

The same access and refresh tokens are used for federated and non-federated scenarios and should not be confused with SAML tokens, which are the ones end users are provided with from the identity provider (AD FS). And bear in mind, the life time values for access and refresh tokens cannot be changed. You do have more options at your disposal for federated scenarios though as you can leverage the features in AD FS 3.0.
If an end user does not have valid tokens on the client, he will be prompted for credentials as shown in Figure 1.

Figure 1: ADAL enabled Outlook Client prompted for credentials

The above login page is from the AD FS servers in a federated identities model. If you have a non-federated identity model, you will see the login page from Azure AD.

For general information around session timeouts for Office 365 clients other than ADAL enabled clients, see this piece of documentation on the Office 365 Support site.

 

Exchange Authentication Flow for Modern Authentication Clients

In a Federated Identities model where AD FS is used for federation and where ADAL is enabled on the Office client, the authentication flow will, as already mentioned, be identical to the flow for browser-based clients in a federated identities model as depicted in Figure 2.

Figure 2: Authentication Flow for ADAL enabled Outlook Client

However, the involved components and mechanisms differ a little, so let me explain what happens under the hood. The Outlook desktop client is launched and will try to connect to “outlook.office365.com”.

Exchange Online redirects the ADAL enabled Outlook client to the authentication endpoint in Azure Active Directory (login.microsoftonline.com). The Outlook client will use the ADAL browser control to reach out to Azure Active Directory. The Azure AD authentication endpoint will detect the UPN domain is federated and do another redirection to the internal AD FS endpoint on-premises (in my case “fs.azurelab.dk”), where AD FS will require the client to authenticate.

Once authenticated, AD FS will retrieve the necessary claims related information from Active Directory and provide the ADAL enabled Outlook client with a SAML token holding the claims about the user. The client will present the token to Azure AD and after successful authentication, the client will be provided with a JWT token, that the Outlook client can use with Exchange Online on behalf of the user. The major benefit here is that the Outlook client, unlike when basic authentication is used, never handles the user’s credentials as such.
For domain-joined clients located on the internal network, you should rarely see a prompt for credentials, when you open an ADAL enabled Outlook client. For external ADAL enabled Outlook clients, it depends on how frequently the end user access Exchange Online as explained in the “Modern Authentication (OAuth) Client Tokens Explained“ section.

So as you can see, we now have a single authentication flow for all clients accessing Office 365 workloads and unlike when basic authentication is used, the authentication will be more transparent to end the user as it does not involve using the credentials manager to store credentials on the client.
 
This concludes part 5 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

Exchange Online Identity Models & Authentication Demystified (Part 6)

In this article we will enable modern authentication for our Exchange Online tenant and then connect to a mailbox using an Outlook desktop client that has ADAL enabled.

Introduction

In part 5 of this article series revolving around the available identity models and the authentication story for Exchange Online, our focus was on the Exchange Online authentication story as it was up until now. We took a closer look at what modern authentication consists of and how the authentication flow looks like for ADAL enabled Outlook clients.

Let’s get going.

Enabling ADAL Client Support at the Tenant Level

So as discussed previously in this article series, most of the Office 365 clients have already been automatically moved to the modern authentication model in an automatic fashion. However, in order to utilize modern authentication for ADAL based clients like the Outlook desktop client, one or two things (depending on the version of the respective Outlook client) must be performed. The first thing is to ensure modern authentication support is enabled in the Exchange Online tenant.

In order to enable this, we need to connect to Exchange Online using PowerShell and set the parameter “Oauth2ClientProfileEnabled” to “true”. This parameter lives under the “OrganizationConfig” noun. Let’s first verify whether it is enabled or disabled for our Exchange Online tenant. We can do so with the following command:

Get-OrganizationConfig | fl *Oauth*


 Figure 1: Verifying the configuration state of the OAuth2ClientProfileEnabled parameter

As you can see in my case it is set to false. So we need to enable it using the following command:
Set-OrganizationConfig –OAuth2ClientProfileEnabled $true

 Figure 2: Setting OAuth2ClientProfileEnabled to “True”

Note:
It is not possible to enable modern authentication for ADAL based clients in Exchange Online using the UI. However, I was told some time ago that this will be possible via a simple knob sometime in the future.
I have been asked quite a few times whether enabling ”OAuth2ClientProfileEnabled” will affect Outlook 2013 desktop clients that currently use basic authentication based authentication. The answer is no, this will not affect these clients as long as the required registry key (more on this key later) has not been set on the client machine.

However, bear in mind that it would affect Outlook 2016 desktop clients as they will try to use modern authentication by default. I am mentioning this as organizations usually want to take changes like this one through a test run on a set of selected pilot users prior to enabling it for everyone in the organization. So if you use Office 2016 in your organization, you would want to disable modern authentication using the relevant registry key (more on this this key in the next section).

Important:The expectation from the Office 365 team is that customers will use the Outlook desktop 2016 in its default authentication mode, which as mentioned is modern authentication. If you disable ADAL in the Outlook 2016 desktop client in order to use the old basic authentication method while modern authentication is enabled in the Exchange Online tenant, you can run into IDCRL related bugs. Hopefully these will be fixed in the near future, but needless to say, thorough testing is key.

 

Enabling ADAL for Modern Authentication Clients

Ok so with the tenant side of things prepared, let us switch to the client side. So as I already mentioned, the only Outlook desktop versions that support modern authentication through the use of the ADAL component is Outlook 2013 and Outlook 2016.

For Outlook 2013, you must have the March 2015 update applied. With that said, you should of course always strive after using the latest cumulative updates available for the client. Outlook 2013 also requires a registry key to be set on the client machine. The following registry keys should be set for the Outlook 2013 desktop client:

 
Registry KeyTypeValue
HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Identity\EnableADALREG_DWORD1
HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Identity\VersionREG_DWORD1
Table 1: Enabling ADAL for an Outlook 2013 Desktop Client

Outlook 2016 supports modern authentication via the ADAL component out of the box. So no need to set any registry keys when in a pure Outlook 2016 environment. However as mentioned in the previous section, you may want to disable modern authentication for all users except the pilot users for a period of time. To disable modern authentication in the Outlook 2016 desktop client, you need to use the following registry key:


Figure 3: Disabling ADAL in the Outlook 2016 Desktop Client

When ADAL is disabled, we get the “good” old basic authentication as shown in Figure 4.
 Figure 4: ADAL Disabled in Outlook 2016 – Basic Authentication Prompt

If you use Windows 10 based client devices with Outlook 2016 clients that have modern authentication disabled per above, bear in mind you may have issues with the autodiscover service hanging on search for your mail server settings when setting up a profile. To fix this, you need to add the following registry key:

Registry KeyTypeValue
HKCU\SOFTWARE\Microsoft\Exchange\MSOAuthDisabledREG_DWORD1
Table 2: Disabling MSO Authentication for an Outlook 2016 Desktop Client

As you can see, the Outlook 2016 desktop client was clearly developed and tested with modern authentication in mind.

 

Using an Outlook Desktop Client after enabling Modern Authentication

Let us try to launch an Outlook desktop client, in this case Outlook 2016, but will be the same experience for Outlook 2013, to see how the experience is from the end user side. Instead of the old Outlook credentials dialog box, the end user will now see the modern login screen.

Depending on the identity model used in your organization and whether end users are using a domain-joined client or not, the experience will differ. For the “Cloud Identities” and the “Synchronized Identities with Password Hash Sync Enabled”, the user will be prompted for credentials the first time they launch Outlook. But remember, it will only be the first time as the logon and refresh tokens will come into effect from there. So unless the client is not used for longer periods, the logon token will be refreshed using the refresh token in a transparent fashion meaning that the end user will not be prompted for authentication.
 Figure 5: End User Prompted for authentication in a non-federated scenario

If you use a “Federated Identities” model and the client is domain-joined, the end user will get a transparent login experience similar to the browser based Outlook on the Web client (OotW). If the client is not domain-joined, he will be presented with the AD FS login page as shown in Figure 5.

 Figure 6: End User Prompted for authentication in a Federated scenario

This concludes part 6 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

Exchange Online Identity Models & Authentication Demystified (Part 7)


In this article we will look at the new multi-factor authentication (MFA) options that can be utilized by ADAL enabled Outlook desktop clients.

Introduction

In part 6 of this article series revolving around the available identity models and the authentication story for Exchange Online, we enabled modern authentication for our Exchange Online tenant and connected to a mailbox using an Outlook desktop client that had ADAL enabled.

In this part 7, we will continue where we left off in part 6.

The Definition of Multi-Factor Authentication

As we mentioned back in part 4 of this multi-part article, the multi factor authentication (MFA) story for basic authentication based authentication clients such as the Outlook desktop client was very poor as it relied on so called “app passwords”, which really did not have much to do with MFA whatsoever.

So what is the definition of multi-factor authentication? Well, it really lies in the words. It is a control access method enforced in order for an end user to access a solution, system, network or service. In addition to the end user’s credentials, that usually consists of a username and password and an extra factor or should we say piece of evidence such as something the end users know, have or are is required in order to gain access. In short, it’s an extra layer (factor) of security, which is extra important for services such as Office 365 that are directly exposed to the Internet.

When it comes to Office 365, the “app passwords” feature that basic authentication clients could utilize was just a new password that the end user needed to use to authenticate using a basic authentication client. IT was not an extra password that had to be used, but a password that simply replaced the old password for these clients.

Back in the days when it was companies such as RSA that ruled this market, the end user was often provided with a USB dongle (hardware token), which in RSA lingo was referred to as SecurID. Naturally, this has shifted towards software tokens, mobile device apps and for larger organizations smartcards (physical or virtual).

Fortunately, modern authentication improves the MFA story significantly. As a matter of fact, we now have a true MFA story for all Exchange Online clients.

 

Office 365 Multi-Factor Authentication Versions

When it comes to MFA, we have three versions to choose between:
  • Multi-Factor Authentication for Office 365 This is the version that can be used with the Office 365 workloads without any additional charges. It comes with an Office 365 subscription by default.
  • Multi-Factor Authentication for Azure Administrators This is the same subset of MFA capabilities as the previous one but for Azure Administrators specifically. This one is also free of charge and can be utilized by Azure administrators in general but also Office 365 Global Administrators, which of course is strongly recommended as these accounts have pretty powerful permissions.
  • Azure Multi-Factor Authentication Lastly, we have the Azure Multi-Factor Authentication which offers a richer set of features and configuration options plus includes advanced reporting and support for a range of on-premises and cloud based applications. It is important to note this requires Azure Active Directory Premium (ADDP).
A comparison chart that lists the three MFA versions and included features for each can be found here.
In this article our focus will be on the free MFA version included with an Office 365 subscription. I will cover the MFA version included with AADP in another article series.

 

Enabling Multi-Factor Authentication for an End User

Okay so as you know, we enabled modern authentication on the tenant level in our previous article and connected to an Exchange Online mailbox using an Outlook 2016 desktop client, which means that we did not have to set any registry keys on the client machine.

In the following, we will enable MFA for the respective mailbox user, which just requires a couple of clicks.
Launch the Office 365 Portal and click “Active Users” and then “Set up” to the right of “Set Multi-factor authentication requirements” as shown in Figure 1 below.








Figure 1: Click Set up under Active Users in the Office 365 Portal

This will take us to multi-factor authentication user management section in the Azure Active Directory portal.

Figure 2: Multi-factor authentication user management section in the Azure Active Directory portal

In order to enable MFA for a user tick him or her and then click “Enable” under “quick steps”. The dialogue box in Figure 3 will appear. Click “enable multi-factor auth”.

Figure 3: Enable multi-factor authentication

We will now be told the update was completed successfully and can click “close”.

Figure 4: Updates completed successfully page

We have now enable MFA for a user. However, before we move on to test MFA from the client, let’s click on the “service settings” tab on the “multi-factor authentication” page.

Here we can specify whether a user is allowed to create an app password for non-browser app purposes. We also have an option to suspend multi-factor authentication for remembered devices, which is a pretty neat feature used to specify after how many days a remembered device should be forced to re-authenticate.

 Figure 5: Multi-factor authentication service settings

 

End User MFA Configuration Options

After MFA has been enabled for the user, the first time he logs on again he will be presented with the page shown in Figure 6. Because MFA has been enabled, he needs to set up his account. More specifically, specify which second factor he wishes to use to complete authentication.

 Figure 6: End user prompted to complete MFA set up

Clicking “Set it up now” will take the user to the page shown in Figure 7. Here he can specify the second factor authentication method.

The default is “Authentication phone”, which will call or send a text message to the mobile number specified. If the calling method is selected, the user then needs to press hashtag (#) and he will be authenticated and taken to the respective workload. If text message is selected, he will need to enter the code received on the login page.

Figure 7: Authentication phone The second method is “Office phone”, which can be used to specify a good old Office phone for those of you who still have one. You can even specify the extension. Note you should not use a Lync phone.

Figure 8: Office phone method

The last method is “Mobile app”, which makes it possible to use the Azure authentication app. We can receive a notification or use a verification code.

What I personally like about this method is you can use finger touch authentication in the app.

Figure 9: Mobile app method

After having chosen the second factor authentication method, the user will be taken to the page shown in Figure 11. As you can see, he will be provided with an app password he can use for clients that do not support ADAL.

 Figure 10: Generated app password for clients not supporting ADAL

 

Testing MFA from a Client Machine

Ok let’s switch to a device with the Outlook desktop client installed. First, I will show you what an end user should expect when setting up a new Outlook profile. If not connected to the domain, the user will get the login page shown in Figure 11 which is the login page on a Web Application Proxy (WAP) server.

 Figure 11: WAP server login page

After the user has specified UPN and password, he will be redirected to the “login.microsoftonline.com” login page for Office 365/AAD as shown in Figure 12. In this example the default MFS authentication method has been selected so the user will need to answer the call and press hashtag (#).

Figure 12: User is called on his mobile phone for the second factor authentication

If the user was domain joined and domain connected, he would not be taken to the WAP Login page, but directly to the login page shown in Figure 13.

If the end user already had an Outlook profile created and MFA is enabled, he will be prompted in a similar fashion depending on whether he is on an external network or domain joined and domain connected. If on an external network, he will need to enter his credentials on a WAP server as shown in Figure 13.

Figure 13: Prompted for credentials on a WAP server

Now the use will be called on his mobile device.

Figure 14: End user called on his mobile phone

And just like that, the user is connected to his mailbox in Exchange Online.

Now remember from here the logon and refresh token behavior I discussed earlier will kick in, which means that subsequent launches of the Outlook desktop client won’t prompt for any credentials if the client is used in a frequent manner.

 Figure 15: Connected to his Mailbox in Exchange Online

This concludes part 7 of this multi-part article in which I provide you with an insight into the new Modern Authentication story and how it affects clients connecting to Exchange Online.

To Be Continued.






 

Remote Exchange Monitoring and Reporting using Email (Part 2)

$
0
0
In this final part, we will develop a similar script to that of part 1 but that uses Exchange Web Services (EWS) instead, further expanding the script’s capabilities.


If you would like to read the first part in this articile series please go to Remote Exchange Monitoring and Reporting using Email (Part 1).

Introduction

In the first part of this article series, we developed a basic script to gather information about our Exchange infrastructure in situations where we would normally not be able to. However, using Message Tracking Logs we are a bit limited as we cannot look into the message body or attachments, only its subject. In this final part, we will develop a similar script but that uses Exchange Web Services (EWS) instead, further expanding the script’s capabilities.

Exchange Web Services

This second script will rely on Exchange Web Services (EWS) so it can be run from any non-Exchange machine as long as it has the Microsoft Exchange Web Services Managed API 2.2 installed. Similar to the first script, this one will look out for any emails arriving at a particular mailbox named monitoring. If it finds any, it will get the subject of the email, run it in the Exchange Management Shell (EMS) and compose a new email to the original sender with the output of the script/cmdlet.

For security reasons, the script will only run Get-* cmdlets, so no settings can be changed using this process. Obviously this can easily be changed to allow us to make changes to our Exchange environment remotely. However, I am certain the Security policies for most organizations would not allow this...

Additionally, we will only process emails that are sent from a particular sender (nuno@outlook.com in this case) to avoid any rogue users or hackers to gain unauthorized information about our environment.
While the first script searched the Message Tracking Logs every 15 minutes in search for new emails between these two users, this script will go through the monitoring mailbox’s Inbox folder, search for any of these emails, process them and then delete them.

First, we start by defining the parameters this script will use. We can specify the monitoring mailbox (in this case monitoring@nunomota.pt) and the allowed sender (nuno@outlook.com). Depending on which mailbox you chose to read emails from, ensure you have the right permissions to access it!
Param (
       [Parameter(Position = 0, Mandatory =$False)]
       [String] $Mailbox="monitoring@nunomota.pt",

       [Parameter(Position = 1, Mandatory =$False)]
       [String] $Sender=nuno@outlook.com
)

Next, if we are not running this script from an Exchange server, we need to load the Exchange Web Services Managed API DLL (do not forget to update the path if you install it on a different location/folder):
$dllPath="C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
[Void] [Reflection.Assembly]::LoadFile($dllPath)

Then we create a new object as an Exchange service and configure it to use AutoDiscover to find out how to connect to our monitoring mailbox. Here we are using Exchange2013_SP1 but it also works with Exchange 2016 RTM:
$service=New-ObjectMicrosoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013_SP1)
$service.AutodiscoverUrl($Mailbox)

After this our $service object will look like this (some properties have not been included for shortness):
Url                          : https://mail.nunomota.pt/ews/exchange.asmx
TimeZone                     : (UTC) Dublin, Edinburgh, Lisbon, London
UnifiedMessaging             : Microsoft.Exchange.WebServices.Data.UnifiedMessaging
EnableScpLookup              : True
TraceEnablePrettyPrinting    : True
SendClientLatencies          : True
TraceEnabled                 : False
TraceFlags                   : All
TraceListener                : Microsoft.Exchange.WebServices.Data.EwsTraceListener
Credentials                  :
UseDefaultCredentials        : True
Timeout                      : 100000
PreAuthenticate              : False
AcceptGzipEncoding           : True
RequestedServerVersion       : Exchange2013_SP1
UserAgent                    : ExchangeServicesClient/15.01.0225.042
KeepAlive                    : True

We then create another object and use a constructor to link a folder ID to a well-known folder. The WellKnownFolderName property is applicable for clients that target Exchange and gets one of the common folder names such as Inbox, Contacts, DeletedItems, Outbox, MsgFolderRoot, PublicFoldersRoot, RecoverableItemsPurges, and many, many others. We also bind our service created earlier to this folder:
$rfRootFolderID=New-ObjectMicrosoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox, $Mailbox)
$rfRootFolder= [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, $rfRootFolderID)

After this bind, our $rfRootFolder variable contains the following information (again, some properties have not been included for shortness) where we can see, for example, how many subfolders the Inbox has, how many emails (10) out of which 2 are unread, what permissions we have on this folder, and more:
Id                          : AQMkADQzNGZhZDc3AC1lNzgzLTRmODItOWQzMC1iODBiNTdlYTYx
ChildFolderCount            : 0
DisplayName                 : Inbox
FolderClass                 : IPF.Note
TotalCount                  : 10
EffectiveRights             : CreateAssociated, CreateContents, CreateHierarchy, Delete, Modify, Read, ViewPrivateItems
UnreadCount                 : 2

Next we define how many items we will be getting on each pass. As per the property above, we already know this folder only has 10 items, but to generalize and keep the script simple to understand, let us get 100 emails at a time:
$ivItemView=  New-ObjectMicrosoft.Exchange.WebServices.Data.ItemView(100)

By default, when using EWS to read email properties, some properties are not returned such as the email body. Also, any internal sender will be displayed as:
/O=NUNOMOTA/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=NUNO
Instead of nuno@nunomota.pt for example. To overcome this, we need to load what is known as FirstClassProperties for the emails we will be processing.

The set of first-class properties and elements that are returned by the EWS Managed API EmailMessage.Bind method and the EWS GetItem operation is slightly different than the set of first-class properties and elements that is returned by the EWS Managed API ExchangeService.FindItems method and the EWS FindItem operation which I will be using in this script.

The first-class properties returned by the FindItems method and FindItem operation are a subset of the properties returned by the Bind method and GetItem operation. Luckily for us, the Sender and From properties are amongst them.
$psPropSet=New-ObjectMicrosoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)

Now we are ready to start analyzing emails that are present in the Inbox folder. So, first we get the first 100 emails (as per the $ivItemView defined earlier) and load the FirstClassProperties for each one of them:
Do {
       $fiItems=$service.FindItems($rfRootFolder.Id, $ivItemView)
       [Void] $service.LoadPropertiesForItems($fiItems, $psPropSet)

Next, we go through every one of those emails and check if the sender is the one we specified in the script’s parameters at the beginning. If it is, we call the same runCmdlet function and pass it the email’s subject (which is the cmdlet we want to run):
       ForEach ($emailin$fiItems.Items) {
              If ($email.Sender.Address -eq$Sender) {
                     runCmdlet$email.Subject

The runCmdlet function is identical to the one used in the first script, so I will not cover it again.

Once the function runs the cmdlet and sends the email to the original sender, we delete the email so the next time the script goes through the Inbox folder, it does not process the same email again. The next method will move the email to the Deleted Items folder as we can see from DeleteMode. The possible methods are: MoveToDeletedItems, SoftDelete or HardDelete.
$email.Delete([Microsoft.Exchange.WebServices.Data.DeleteMode]::MoveToDeletedItems)

In case there are more than 100 items in the Inbox, we need to get the next 100 and process them:
$ivItemView.Offset +=$fiItems.Items.Count

The Do statement terminates when there are no more items available in the Inbox folder to be processed:
} While($fiItems.MoreAvailable -eq$True)

The final complete script looks like this:
Param (
       [Parameter(Position = 0, Mandatory =$False)]
       [String] $Mailbox="monitoring@nunomota.pt",

       [Parameter(Position = 1, Mandatory =$False)]
       [String] $Sender="nuno@outlook.com"
)

FunctionrunCmdlet ([String] $cmdlet) {
       If ($cmdlet-match"set-") {
              $output="Cmdlet not allowed!"
       } Else {
              Try {
                     $output=Invoke-Expression$cmdlet-ErrorActionStop-ErrorVariableErr
              } Catch {
                     Write-Verbose"Error running cmdlet!"
                     $output=$Err
              }
       }

       If ($output) {
       Write-Verbose"Composing response"
              $reportBody="
                          
                          
                           Monitoring Report

                          

                          
                          

Monitoring Exchange Report


                          

$((Get-Date).ToString())


                          
"


              $output | Out-FileRemoteMonitoring.txt
              $reportBody+="$cmdlet
"

              $reportBody+= [String]::Join("
"
, (Get-ContentRemoteMonitoring.txt))
              $reportBody+="
"
              Send-MailMessage-From$Mailbox-To$Sender-Subject"Monitoring Result - $(Get-Date -f ""yyyyMMdd hh:mm"")"-Body$reportBody-BodyAsHTML-SMTPservermail.nunomota.pt-AttachmentsRemoteMonitoring.txt
              $reportBody=$null
       }
}

$dllPath="C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
[Void] [Reflection.Assembly]::LoadFile($dllPath)
$service=New-ObjectMicrosoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013_SP1)
$service.AutodiscoverUrl($Mailbox)

$rfRootFolderID=New-ObjectMicrosoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox, $Mailbox)
$rfRootFolder= [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, $rfRootFolderID)

#Define ItemView to retrive just 1000 Items 
$ivItemView=  New-ObjectMicrosoft.Exchange.WebServices.Data.ItemView(1000)
$fiItems=$null

#Define the properties to get - needed to get email sender for example
$psPropSet=New-ObjectMicrosoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)

Do {
       $fiItems=$service.FindItems($rfRootFolder.Id, $ivItemView)
       [Void] $service.LoadPropertiesForItems($fiItems, $psPropSet)

       ForEach ($emailin$fiItems.Items) {
              If ($email.Sender.Address -eq$Sender) {
                     runCmdlet$email.Subject
                     $email.Delete([Microsoft.Exchange.WebServices.Data.DeleteMode]::MoveToDeletedItems) #SoftDelete, HardDelete
              }
       }

       $ivItemView.Offset +=$fiItems.Items.Count
} While($fiItems.MoreAvailable -eq$True)

In this script we only use the email’s subject to specify which cmdlets to run, which can be somewhat limited. We can update the script so that instead of looking in the email’s subject, it looks in the body instead. This allows us to run more complex scripts if we want to.

The easiest way to do so is to get the email’s body and save it in a .ps1 script file, run it, capture its output and send that output back to the sender. However, most emails will be sent and received in HTML format, which makes them hard to read from a script perspective with all those HTML tags. To ensure all we get is the text itself, we can tell the script to read every email in Text format instead of HTML. We do so by updating our PropertySet and specify that we want the  

BodyType as Text:
$psPropSet=New-ObjectMicrosoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$psPropset.RequestedBodyType = [Microsoft.Exchange.WebServices.Data.BodyType]::Text

Now, when we process an email, the $email.Body variable will contain the email’s body in text format.

 

Conclusion

In this two-part article series we developed two scripts to monitor and report on Exchange remotely using emails. In the first part, we developed a basic script that uses Message Tracking Logs, which can be somewhat limited if we want to run complex cmdlets or even full scripts. In this final part, we developed a similar script but that uses EWS instead, further expanding the script’s capabilities.


Bypass iCloud Activation Lock iOS 8.1.3 / iOS 9 / 9.1 / 9.2

$
0
0
Steps to bypass iCloud Activation lock: First change the DNS server in your WIFI settings as 78.109.17.60 or use other IP address.


Steps to bypass iCloud Activation lock:

  1. First change the DNS server in your WIFI settings as 78.109.17.60 or use other IP address.
  2. Now take your locked idevice and move to the last activation step and pick the 'Activation Help' option that is going to boot you through the ritual site. Now you have the interesting options like playing games, watching videos, internet, etc.

     




     

    Steps To Completely Bypass iCloud Activation

  3. Move over the 'Applications' option and tap the 'Crash Test 1'. This is going to reprising your stuff.
  4. Move over to the WiFi settings and hit the 'i' and pick 'Manual' option over the 'http proxy' zone.
  5. No list thirty distinct emoji icons to the 'Server' and type '8888' over the 'Port' zone.
  6. Now hit back and then next, and move over the slide to unlock. Then hit the language options. Don't just click; rather click with an effort for some minutes so that it can be booted over the display.
  7. As the home screen becomes available, you can now open three options, Phone, Newsstand and Facetime.
  8. It is here to mention that now you have to put again a little more effort by holding Power and Home button each time you open and application to restart the product and facilitate the process.
  9. Now go through Facetime where you can have the mail of the last user to whom you can contact through mail and enquire whether the device be taken of the iCloud. If you are not finding the mail, then continue the process and go through the Phone application to witness the contact number of the concerned person.

How to Migrate DNS servers from Linux to Windows (Part 1)

$
0
0
This is the first article of a two-part series on migrating BIND name servers running Linux to Windows Server DNS servers. In this article, I am going to walk you through the steps to migrate off a Linux box for DNS and migrate services to a Windows Server 2012 R2 computer.
I am doing this currently for one of my customers who is hosting their DNS on an out of date Red Hat Linux server. We are then using a third party to manage the DNS traffic and our master server provides zone updates to those machines and does not serve any public traffic.


Introduction

A properly functioning Domain Name Services (DNS) infrastructure is essential for Active Directory environments. The simplest way of course to set up DNS name servers with Active Directory is to install and configure the DNS Server role on your Windows Server domain controllers. For various reasons however, some organizations already have deployed or may choose to deploy Linux name servers running the Berkeley Internet Name Daemon (BIND) implementation of DNS.

Linux BIND servers are lightweight and fast name servers that are easy to manage if you have basic knowledge of Linux administration, and provided they're running modern versions of BIND they're also interoperable with Active Directory domain controllers. In larger organizations there may also be political reasons for keeping your existing BIND servers instead of migrating them to Windows Server DNS. For example, the administrators of your current DNS infrastructure may be unwilling to relinquish their control over DNS to Active Directory admins. And when two companies merge or an acquisition occurs, existing cultures of Linux and Windows Server administration may clash.

 

Preparing the Linux box

On the Linux box we need to ensure that zone transfers to the new Windows boxes are allowed.
Edit the named.conf file, which in this server’s case is located in /etc/named. For each of the domains that we wish to migrate to the new server we should check that there is a line, which is written like this example:
allow-transfer { 192.168.1.8; };







 Figure 1: Step 1 of migrating a Linux BIND name server to a Windows Server DNS server.

This grants permission to this DNS server to allow a zone transfer to another box. Any current secondary servers will need to be here and we need to add the IP of our server. Once we have added the IP address of our new Windows Server 2012 R2 server for each domain, we are ready to move on to the next step of preparing the Windows Server.

 

Preparing the Windows Server

Install Windows, name the box and give it an IP address. The IP you give it should match what you configured in Linux for the allow transfer.

Next add the DNS Server role to the server, once it is added, open the DNS console.

Figure 2: Step 2 of migrating a Linux BIND name server to a Windows Server DNS server.

Right-click on Forward Lookup Zones and then add the first domain. In my first example I am using carttan.ca:

Figure 3: Step 3 of migrating a Linux BIND name server to a Windows Server DNS server.

Click Next:
Figure 4: Step 4 of migrating a Linux BIND name server to a Windows Server DNS server.

Click on Secondary Zone and click Next:

Figure 5: Step 5 of migrating a Linux BIND name server to a Windows Server DNS server.

Enter in the DNS name for the zone you are creating. Then click Next:

Figure 6: Step 6 of migrating a Linux BIND name server to a Windows Server DNS server.

Enter in the IP Address of the Master DNS server, press enter and then when it goes green, click Next. If it doesn’t go green, then there is an issue and check the Linux server:

Figure 7: Step 7 of migrating a Linux BIND name server to a Windows Server DNS server.

Click Finish to close the wizard and return to the DNS Manager console:


Figure 8: Step 8 of migrating a Linux BIND name server to a Windows Server DNS server.

Check that the records are coming across properly.
Repeat these steps for each and every domain that needs to be migrated.

Promoting the Windows Server to Primary Master for the DNS Zone

Right click on the Zone and go to properties to convert from Secondary to Master Server:
Figure 9: Step 9 of migrating a Linux BIND name server to a Windows Server DNS server.

Click on Change:


Figure 10: Step 10 of migrating a Linux BIND name server to a Windows Server DNS server.

Click on Primary Zone and click OK.
Next click on the Zone Transfers tab:


Figure 11: Step 11 of migrating a Linux BIND name server to a Windows Server DNS server.

Click on Allow Zone Transfers and click on Only To The Following Servers. Click Edit and enter the information for the servers you want to be secondary servers. These will be the servers you direct internet traffic to. These could be secondary servers hosted anywhere. I have also configured my firewall to allow DNS traffic to these servers only.

Next we will configure the Start of Authority record. We need to change the primary server. Here we will use one of our external responding servers as our primary. Also set the Responsible person and be sure to increment the serial number once you are complete with the changes:

Figure 12: Step 12 of migrating a Linux BIND name server to a Windows Server DNS server.

 

Setting up the Secondary DNS Servers

Install Windows, name the box and give it an IP address.

Next add the DNS Server role to the server, once it is added, open the DNS console. This should be familiar as these are the steps we’ve already completed with setting up the master DNS server:

Figure 13: Step 13 of migrating a Linux BIND name server to a Windows Server DNS server.

Right-click on Forward Lookup Zones and then add the first domain. Again, in my example, I am using carttan.ca:

Figure 14: Step 14 of migrating a Linux BIND name server to a Windows Server DNS server.

Click Next:






Figure 15: Step 15 of migrating a Linux BIND name server to a Windows Server DNS server.

Click on Secondary Zone and click Next. The steps to follow are identical to what we first completed when we setup the first Windows Server prior to making it a master server.

Check that the records are coming across properly. Repeat these steps for each domain that needs to be migrated.

Create a new record for your external DNS servers. These need to be addresses that are externally routable (which I have not used in my example here), next add them into your DNS servers in the Name Servers tab removing the one server that is listed for internal. In my example I only have one server showing up now:

Figure 16: Step 16 of migrating a Linux BIND name server to a Windows Server DNS server.

As you can see in the above example, there is no mention of ns1.carttan.ca which is the master server for these domains. Next let’s turn off DNS resolution for any domain which we do not host. Right click on the name of the server and go to the advanced tab. Check Disable recursion:

Figure 17: Step 17 of migrating a Linux BIND name server to a Windows Server DNS server.

The final steps to complete are changing your internet registration files so that the DNS servers are pointed to the new external servers.

 

Conclusion

In the second article of this two-part series we'll examine some other issues associated with migrating DNS from BIND to Windows Server and will provide some additional resources on the topic.


How to Migrate from Exchange 2010 to Exchange 2016 (Part 1)

$
0
0

In this multi-part article we will migrate from Exchange 2010 to Exchange 2016. In this series we will walk through the steps required to implement Exchange 2016 into your current Exchange 2010 organization and migrate mailboxes across.


If you would like to read the other parts in this article series please go to:

 

Introduction

The latest version of Exchange Server brings the latest cloud-based developments and reliability improvements to on-premises Exchange. In this series we will walk through the steps required to implement Exchange 2016 into your current Exchange 2010 organization and migrate mailboxes across.

 

Planning for Deployment

In this short series we’ll be focusing on the implementation and migration steps to move from Exchange 2010 to Exchange 2016, rather than implementing features like Database Availability Groups or configuring load balancing. Therefore, we’ll focus on a smaller organization with a relatively simple deployment.

Before you begin it’s important to understand that a key architectural change has been made in Exchange 2016. Exchange 2010 had a number of separate roles; Client Access, Hub Transport, Mailbox and Unified Messaging.

In Exchange 2016 only a single role is used, the Mailbox role. This contains all necessary components required.

Our example organization is Goodman Industries, who have a single Exchange 2010 multi-role server and will migrate over to a single Exchange 2016 mailbox server.








Figure 1: An overview of our topology

In the example above, you’ll see our source server EX1401 running Exchange 2010. Our target server will be EX1601. In a larger organization this would most likely be highly available, so we’d have multiple domain controllers (rather than just AD01) and use Database Availability Groups on the source and target.

 

Naming and Services

Our first step is to define names used by clients to access Exchange. Co-existence with Exchange 2010, 2013 and 2016 allows sharing of the same HTTPS names for Autodiscover, OWA, ActiveSync and other services, making it easy to transition across and reduce the risk of implementing co-existence.

Old Exchange 2010 NamespacesNew Exchange 2016 Namespaces
mail.goodmanindustries.com
autodiscover.goodmanindustries.com
mail.goodmanindustries.com
autodiscover.goodmanindustries.com
Table 1

 

Exchange Server Sizing

The environment we’ll be implementing Exchange 2016 on is virtualised, running Hyper-V in our example.

CPUsCoresSPECint_rate2006   scoreHost RAMDisks   Available
2 x Intel Xeon12367256GB24 x 4TB 3.5” 7.2K RPM SAS (RAID 10)
Table 2

We have also collected statistics from the existing environment:

Number of mailboxesAverage Message SizeAverage ReceivedAverage SentAverage Mailbox Size
15075KB30151GB
Table 3

To calculate the requirements, we’ll use version 7.8 or higher of the Exchange Server Role Requirements Calculator. This supports both Exchange 2013 and Exchange 2016, so be sure to select the correct version when using the tool.

When sizing the solution two important factors will form design constraints:
  • The solution will not have high availability and instead will use Hyper-V for high availability.
  • The Exchange 2016 environment will provide quota limits of 5GB per user.
  • We’ll configure the maximum number of databases to be 5.
  • We’ll use a VSS-based backup solution rather than Exchange Native Protection – simply because it’s a non-HA simple environment.
Our output from the role requirements calculator results in the following server specification:

HostnameVirtual CPURAMOS DiskPage file DiskPhysical disks requiredDatabase virtual disksLog virtual disksRestore LUN
EX16011 x vCPU16GB100GB20GB4 x 4TB5 x 291GB5 x 5GB1 x 213GB
Table 4

The Virtual CPU specifies how many CPU cores should be assigned to the Virtual Machine used, as does the RAM. The OS disk will hold both Operating System Exchange install and transport databases.
The Physical Disks represents how many of the available physical disks are needed to actually support the deployment and meet requirements for performance and space. In the virtual environment, these will be presented as virtual disks and will be used for database and log files respectively.

You'll note that we're still splitting databases and logs. For an implementation making use of Exchange Native Protection we wouldn't look to do this, but for an implementation in a virtual environment that takes advantage of backups this is still required. We've also included an additional virtual disk to use as a restore LUN.

Splitting Databases from logs ensure that in the scenario of a log disk filling up, databases will not be corrupted. We also ensure that losing or the corruption of a virtual disk doesn't result in a full restore of Exchange.

 

Updating the environment

 

Updating Exchange Server 2010

The minimum supported patch level for Exchange Server 2010 is Service Pack three with Update Rollup 11.
Exchange 2010 Service Pack 3 is available here.

Exchange 2010 SP3 Update Rollup 11 is available here. Install it, or a newer version if it is available.

 

Directory Service Requirements

The last few versions of Exchange had reasonably light requirements on AD functional levels. Now Windows 2003 R2 has finally went out of support the minimum Forest Functional Level and Domain Functional Level has been changed from 2003 and above. The minimum support FFL/DFL is now a minimum of Windows 2008 or above.

 

Updating Outlook Clients

Exchange 2016 supports Outlook 2010 and above on Windows, and on the Mac Outlook 2011 and higher. Outlook 2007 is no longer supported, but may work.

All versions of Outlook 2016 and Outlook 2013 are supported. Outlook 2010 is supported with the April 2015 update (KB2965295).

Update clients to the minimum supported version required before implementing Exchange 2016. Newer versions of Outlook will work with Exchange 2010 without issue.

 

Preparing the server for Exchange 2016

Exchange 2016 supports Windows 2012 and Windows 2012 R2. In our series we'll use Windows 2012 R2.
We'll be using physical disks to support Exchange 2016 and then creating virtual disks atop our Hyper-V environment. In Hyper-V, our new VM looks like this:

Figure 2: Hyper-V Configuration for our Virtual Machine

We'll then proceed and install Windows Server 2012 R2 on the virtual machine used for Exchange 2016, then configure it with correct network settings, install the latest Windows updates and join it to our domain.

 

Storage Overview

Exchange Server 2016 supports NTFS and ReFS for Exchange databases and log files, and supports NTFS for operating system and Exchange binaries.

ReFS is recommended, with data integrity features switched off; therefore, we’ll format all Exchange database and log disks using this filesystem.

In addition to making sure we're using the recommended filesystem, we will create mount points to represent the disks and their purpose:

DiskMount Point
Page fileE:
Database 1C:\ExchangeDatabases\DB01
Database 2C:\ExchangeDatabases\DB02
Database 3C:\ExchangeDatabases\DB03
Database 4C:\ExchangeDatabases\DB04
Database 1 LogC:\ExchangeDatabases\DB01_Log
Database 2 LogC:\ExchangeDatabases\DB02_Log
Database 3 LogC:\ExchangeDatabases\DB03_Log
Database 4 LogC:\ExchangeDatabases\DB04_Log
Restore LUNC:\ExchangeDatabases\Restore
Table 5

 

Initializing Disks

We will then bring storage online, initialize and then format and mount the storage. Launch Disk Management by right-clicking the Start Button:

Figure 3: Opening Disk Management

Within Server Manager, navigate to Disk Management. We will see in the upper panel the system disk, C: and the System Reserved Partition. These also display in the lower page, contained as partitions within the primary disk.

All newly added disks will typically be shown as offline. We'll need to first change each of these disks to an online state before we prepare them. This is accomplished by right clicking each disk and simply choosing online. Perform this step, as shown below, across all new disks before proceeding:

Figure 4: Using Disk Management to bring a disk online

After bringing the disks online, we will now select one of the disks, right click and choose Initialize Disk:








Figure 5: Initializing disks for Exchange use

This will allow us to initialize all new disks in a single operation. We'll ensure all disks are selected (in our case all 12 additional disks), then select GPT (GUID Partition Table), which is recommended for Exchange and supports disk sizes over 2TB, should they be required:

 Figure 6: Selecting the GPT partition type

 

Summary

In part one of this series we have planned our simple deployment, ensured our Exchange environment and clients are up to date and started the preparation of the virtual machine for Exchange 2016. In the next part of this series, we will complete the virtual machine configuration and install Exchange 2016.


If you would like to read the other parts in this article series please go to:
 
 
Viewing all 880 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>