Questa è una delle mie funzioni che ho in un modulo:
Function Get-DatabaseUser
{
[CmdletBinding()]
Param()
Write-Verbose 'Getting database...'
$Database = Get-Database
Write-Debug('Value of $Database: {0}' -f $Database)
if($Database -eq $null)
{
$ErrorRecord = New-ErrorRecord "Database could not be accessed." NullReferenceException 'DatabaseInaccessible' ObjectNotFound
$PSCmdlet.ThrowTerminatingError($ErrorRecord)
}
Write-Verbose 'Refreshing user list...'
$Database.Users.Refresh()
Write-Verbose 'Getting user list...'
$Users = $Database.Users |
Where-Object { $_.LoginType -eq 'WindowsUser' } |
Select-Object -Property Name, Login
Write-Debug("Number of users: {0}" -f $Users.Count)
Write-Verbose 'Writing user list to output...'
Write-Output($Users)
}
C'è qualche motivo per mantenere le dichiarazioni Write-Debug
nel mio codice di produzione, o queste dichiarazioni potrebbero essere sostituite con Write-Verbose
? Ad esempio, sostituendo
Write-Debug("Number of users: {0}" -f $Users.Count)
con
Write-Verbose '3 users found.'
Non sono sicuro dei componenti interni di PowerShell e se Write-Debug genera un sovraccarico significativo, ma mi sto ancora chiedendo se questo abbia un posto in uno script usato in produzione o puramente per le versioni di debug dei miei script / moduli .