Update-StorageProviderCache

Update-StorageProviderCache

Updates the cache of the service for a particular provider and associated child objects.

Syntax

Parameter Set: ByName
Update-StorageProviderCache [[-Name] <String[]> ] [-AsJob] [-CimSession <CimSession[]> ] [-DiscoveryLevel <DiscoveryLevel> ] [-Manufacturer <String[]> ] [-PassThru] [-RootObject <PSReference> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]

Parameter Set: ByStorageSubSystem
Update-StorageProviderCache [-AsJob] [-CimSession <CimSession[]> ] [-DiscoveryLevel <DiscoveryLevel> ] [-PassThru] [-RootObject <PSReference> ] [-StorageSubSystem <CimInstance> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]

Parameter Set: ByUniqueId
Update-StorageProviderCache [-AsJob] [-CimSession <CimSession[]> ] [-DiscoveryLevel <DiscoveryLevel> ] [-PassThru] [-RootObject <PSReference> ] [-ThrottleLimit <Int32> ] [-UniqueId <String[]> ] [ <CommonParameters>]

Parameter Set: ByURI
Update-StorageProviderCache [-AsJob] [-CimSession <CimSession[]> ] [-DiscoveryLevel <DiscoveryLevel> ] [-Manufacturer <String[]> ] [-PassThru] [-RootObject <PSReference> ] [-ThrottleLimit <Int32> ] [-URI <Uri[]> ] [ <CommonParameters>]

Parameter Set: InputObject (cdxml)
Update-StorageProviderCache -InputObject <CimInstance[]> [-AsJob] [-CimSession <CimSession[]> ] [-DiscoveryLevel <DiscoveryLevel> ] [-PassThru] [-RootObject <PSReference> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]

Detailed Description

The Update-StorageProviderCache cmdlet updates the cache of the service for a particular provider and associated child objects.

Note: Using the Full value for the DiscoveryLevel parameter without using additional parameters to limit the scope to particular storage providers or storage subsystems causes all accessible storage providers to enumerate and report all state information, which can be extremely time intensive in large environments.

Parameters

-AsJob

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-CimSession<CimSession[]>

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Aliases

Session

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-DiscoveryLevel<DiscoveryLevel>

Defines the level (or depth) of discovery that should be performed. Increasing levels are cumulative; the storage providers will discover objects starting from Level0 and continuing to the highest level specified. Acceptable values are:

Full, which discovers all objects on all accessible storage providers. This is the same as a Level3 discovery.

Level0, which discovers storage provider and storage subsystem objects.

Level1, which performs a Level0 discovery and then discovers storage pools, resiliency settings, target ports, target portals, and initiator identifiers.

Level2, which performs a Level1 discovery and then discovers virtual disk and masking set objects.

Level3, which performs a Level2 discovery and then discovers physical disk objects. This is the same as a Full discovery.

All storage providers perform a Level0 or higher level discovery when loaded by Windows.

Aliases

none

Required?

false

Position?

named

Default Value

Level0

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-InputObject<CimInstance[]>

Accepts an MSFT_StorageProvider object from the pipeline as input.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-Manufacturer<String[]>

Specifies the storage provider cache to update by manufacturer name. Enter a manufacturer string, or use wildcard characters to enter a pattern.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

true

-Name<String[]>

Specifies the name of the storage provider cache to update.

Aliases

none

Required?

false

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-PassThru

Specifies that the cmdlet should output an object representing the storage provider it updated. By default, this cmdlet does not generate any output.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-RootObject<PSReference>

Specifies a reference to the object from which you want to begin discovering associated objects. When the DiscoveryLevel parameter is not specified, well-defined actions will be taken depending on the type of object reference specified:

StorageSubsystem: All associated objects will be discovered.

StoragePool: The pool, along with any associated resiliency settings, virtual disks, and physical disks will be discovered.

MaskingSet: The masking set, along with any associated target ports, initiator identifiers, and virtual disks will be discovered.

For all other objects, only the specified object will be discovered or refreshed.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-StorageSubSystem<CimInstance>

Updates all storage subsystems managed by the storage provider associated with the StorageSubsystem object you specify. Enter a StorageSubsytem CIM object, which is exposed by the Get-StorageSubSystem cmdlet.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-ThrottleLimit<Int32>

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-URI<Uri[]>

Specifies the URI of the storage provider whose cache should be updated.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-UniqueId<String[]>

Specifies the ID of the storage provider cache to update. Type one or more IDs, with each ID enclosed in quotes, and multiple IDs separated by commas. The ID persists through restarts.

Aliases

Id

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

  • Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageSubsystem

    You can pipe an MSFT_StorageSubsystem object to the StorageSubsystem parameter to perform the update on the storage provider for the specified subsystem.

  • Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageProvider

    You can pipe an MSFT_StorageProvider object to the InputObject parameter to perform the update on the specified storage provider.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageProvider

    By default the Update-StorageProviderCache cmdlet does not return any objects. If you specify the Passthru parameter, this cmdlet returns an object representing the storage provider it updated.

Notes

  • The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays Windows Management Instrumentation (WMI) objects. The path after the pound sign (#) provides the namespace and class name for the underlying WMI object.

Examples

Example 1: Perform a Full update of all objects

This example performs a Full update of the storage provider cache on all accessible storage providers, rescanning all associated physical disks and reporting the state. This operation can be extremely time intensive in large or enterprise environments; instead use parameters to scope the update.

PS C:\> Update-StorageProviderCache -DiscoveryLevel Full

Example 2: Update PhysicalDisk objects for a particular storage provider

This example uses the StorageSubsystem parameter in association with the Get-StorageSubSystem cmdlet to get a particular storage subsystem and then perform a Level3 update on its associated storage provider, discovering all associated PhysicalDisk objects.

PS C:\> Update-StorageProviderCache -StorageSubSystem (Get-StorageSubSystem -FriendlyName "StorageArray*") -DiscoveryLevel Level3

Example 3: Update all objects for a specific storage pool

This example uses the Name parameter to specify the storage provider to update, and uses the RootObject parameter to specify the specific storage pool for which to update objects. Because RootObject takes PSReference objects as input, you need to prepend the object call with [ref] to get a reference to the object instead of the object itself.

PS C:\> Update-StorageProviderCache -Name "StorageArray" -RootObject ([ref](Get-StoragePool "Storage pool"))

Get-StoragePool