< Back

Start-StorageDiagnosticLog

Wed Jan 30, 2019 6:01 pm

NAME Start-StorageDiagnosticLog



SYNOPSIS

Starts Storage diagnostic logging.





SYNTAX

Start-StorageDiagnosticLog [-StorageSubSystemFriendlyName] <String[]> [-CimSession <CimSession[]>] [-Level {Critical | Error | Warning | Informational |

Verbose}] [-MaxLogSize <UInt64>] [-PassThru] [-ThrottleLimit <Int32>] [<CommonParameters>]



Start-StorageDiagnosticLog [-CimSession <CimSession[]>] [-Level {Critical | Error | Warning | Informational | Verbose}] [-MaxLogSize <UInt64>]

[-PassThru] [-ThrottleLimit <Int32>] -StorageSubSystemUniqueId <String[]> [<CommonParameters>]



Start-StorageDiagnosticLog [-CimSession <CimSession[]>] [-Level {Critical | Error | Warning | Informational | Verbose}] [-MaxLogSize <UInt64>]

[-PassThru] [-ThrottleLimit <Int32>] -StorageSubSystemName <String[]> [<CommonParameters>]



Start-StorageDiagnosticLog [-CimSession <CimSession[]>] [-Level {Critical | Error | Warning | Informational | Verbose}] [-MaxLogSize <UInt64>]

[-PassThru] [-ThrottleLimit <Int32>] [<CommonParameters>]





DESCRIPTION

The Start-StorageDiagnosticLog cmdlet starts Storage diagnostic logging. After you start logging, you can reproduce the issue that you're

troubleshooting or wait for it to reoccur. Use the Stop-StorageDiagnosticLog cmdlet to stop logging. You can use Get-StorageDiagnosticInfo to get the

diagnostic logs.



Start-StorageDiagnosticLog creates an Event Tracing for Windows (ETW) session and subscribes to Storage real-time tracing sources. It uses a small

circular log file located in C:\\Windows\\temp\\storagelogs to capture the data.



Each trace session creates a unique file named diagnosticlog_<timestamp>.etl. Because the file name incorporates a time stamp, you can create multiple

trace sessions without overwriting the previous session.





PARAMETERS

-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.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-Level [<Level>]

Specifies the maximum level of tracing to gather. The acceptable values for this parameter are:



-- Critical

-- Error

-- Warning

-- Informational

-- Verbose



The default value is Informational.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-MaxLogSize [<UInt64>]

Specifies the log size, in bytes. The default size of 200 MB. The log is circular, so when the log is full, older entries are overwritten. You can

use this parameter when you want to record more data or when you want to set a smaller log size to save disk space.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-PassThru [<SwitchParameter>]

Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-StorageSubSystemFriendlyName <String[]>

Specifies the friendly name of the Storage subsystem for which to gather storage diagnostics. It may denote the Storage subsystem of the local

computer (on which the cmdlet is run) or a remote Storage subsystem (standalone or cluster).



Selecting the local subsystem:





-- On a standalone machine, no remote subsystems: All logs are gathered for that computer.



-- On a standalone machine, remote subsystems registered: All logs are gathered for the standalone machine, including the client-side remoting

calls.



-- On a cluster node: All logs for that particular cluster node are gathered, even ones that belong in the cluster subsystem for that node only.

None of the other nodes are logged.







Selecting the cluster subsystem:





-- All logs are gathered for each node in that cluster. This includes and logs or tracing that may correspond to a node's local subsystem.







Selecting a remote subsystem:





-- Tracing and logs are only gathered for the remote endpoint. What logs and tracing are gathered depend on whether it is a cluster or a standalone

machine (see above cases).



-- Tracing and logs for the client-side operations (running on the management node) are not collected. It is expected that if there is a failure, it

is most likely in the remote subsystem.



In order to gather the client-side calls, you must also include the management node's local subsystem.



Required? true

Position? 1

Default value none

Accept pipeline input? true(ByPropertyName)

Accept wildcard characters? false



-StorageSubSystemName <String[]>

Specifies the name of the Storage subsystem for which to gather Storage diagnostics. It may denote the Storage subsystem of the local computer (on

which the cmdlet is run) or a remote Storage subsystem (standalone or cluster).



Selecting the local subsystem:





-- On a standalone machine, no remote subsystems: All logs are gathered for that computer.



-- On a standalone machine, remote subsystems registered: All logs are gathered for the standalone machine, including the client-side remoting

calls.



-- On a cluster node: All logs for that particular cluster node are gathered, even ones that belong in the cluster subsystem for that node only.

None of the other nodes are logged.







Selecting the cluster subsystem:





-- All logs are gathered for each node in that cluster. This includes and logs or tracing that may correspond to a node's local subsystem.







Selecting a remote subsystem:





-- Tracing and logs are only gathered for the remote endpoint. What logs and tracing are gathered depend on whether it is a cluster or a standalone

machine (see above cases).



-- Tracing and logs for the client-side operations (running on the management node) are not collected. It is expected that if there is a failure, it

is most likely in the remote subsystem.



In order to gather the client-side calls, you must also include the management node's local subsystem.



Required? true

Position? named

Default value none

Accept pipeline input? true(ByPropertyName)

Accept wildcard characters? false



-StorageSubSystemUniqueId <String[]>

Specifies the unique ID of the Storage subsystem for which to gather Storage diagnostics. It may denote the Storage subsystem of the local computer

(on which the cmdlet is run) or a remote Storage subsystem (standalone or cluster).



Selecting the local subsystem:





-- On a standalone machine, no remote subsystems: All logs are gathered for that computer.



-- On a standalone machine, remote subsystems registered: All logs are gathered for the standalone machine, including the client-side remoting

calls.



-- On a cluster node: All logs for that particular cluster node are gathered, even ones that belong in the cluster subsystem for that node only.

None of the other nodes are logged.







Selecting the cluster subsystem:





-- All logs are gathered for each node in that cluster. This includes and logs or tracing that may correspond to a node's local subsystem.







Selecting a remote subsystem:





-- Tracing and logs are only gathered for the remote endpoint. What logs and tracing are gathered depend on whether it is a cluster or a standalone

machine (see above cases).



-- Tracing and logs for the client-side operations (running on the management node) are not collected. It is expected that if there is a failure, it

is most likely in the remote subsystem.



In order to gather the client-side calls, you must also include the management node's local subsystem.



Required? true

Position? named

Default value none

Accept pipeline input? true(ByPropertyName)

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.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,

ErrorAction, ErrorVariable, WarningAction, WarningVariable,

OutBuffer, PipelineVariable, and OutVariable. For more information, see

about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).



INPUTS











OUTPUTS











Example 1: Run Storage diagnostics



PS C:\\>Start-StorageDiagnosticLog -StorageSubSystemName "TestCluster.contoso.corp.microsoft.com"

PS C:\\> Stop-StorageDiagnosticLog -StorageSubSystemName "TestCluster.contoso.corp.microsoft.com

PS C:\\> Get-StorageDiagnosticInfo -StorageSubSystemName "TestCluster.contoso.corp.microsoft.com ????????DestinationPath C:\\logs\\techsupport



The first command starts the on-demand Storage diagnostic log session on a cluster subsystem.



The second command stops the diagnostic logs session.



The third command gets the diagnostic files and places them in C:\\logs\\techsupport.







RELATED LINKS

Online Version: http://go.microsoft.com/fwlink/?LinkId=816496

Get-StorageDiagnosticInfo

Stop-StorageDiagnosticLog