J'ai actuellement un script qui envoie un ping aux serveurs et vérifie l'état des services en cours d'exécution sur chaque serveur.
J'enregistre la sortie avec Out-File mais PowerShell place des ellipses ou "..." après de longues chaînes. Je ne veux pas que ça fasse ça. Par exemple:
MachineName ServiceName Status StartType
----------- ----------- ------ ---------
SrvGtw01 Test.MyService.... Running
Je veux qu'il affiche le nom complet comme:
MachineName ServiceName Status StartType
----------- ----------- ------ ---------
SrvGtw01 Test.MyServiceName.Here Stopped Disabled
J'ai lu que vous pouvez définir le $FormatEnumerationLimit
variable de préférence à -1
et j'ai essayé mais ça ne marche pas. Je ne sais pas comment je devrais le placer dans mon script.
La variable de préférence $FormatEnumerationLimit
Ne s'applique pas ici, car son but est de déterminer combien d'éléments d'une valeur de collection propriété à afficher (par exemple, $FormatEnumerationLimit = 2; [pscustomobject] @{ prop = 1, 2, 3 }
imprime (au plus) 2 éléments à partir de la valeur de .prop
et indique l'existence de plus avec ...
; par exemple, {1, 2...}
).
Au lieu de cela, vous devez:
(a) assurez-vous que les colonnes individuelles ne tronquent pas leurs valeurs à l'écran:
Format-Table -Autosize
en premier.et (b) assurez-vous que la largeur de sortie globale peut s'adapter à toutes les colonnes:
Dirigez vers Out-File -Width
Avec une valeur suffisamment grande (n'utilisez pas [int]::MaxValue
, Cependant, car chaque ligne de sortie tabulaire est complétée à cette même largeur[1]).
Avertissement:Si vous ne définissez pas -Width
explicitement - comme cela se produirait si vous venez d'utiliser >
, Par exemple - la fenêtre actuelle de la console la largeur de la console est utilisée - quoi que ce soit.
Par exemple:
# Assumes that the objects in $results only contain the properties
# of interest (MachineName, ServiceName, Status, StartType); you
# can also pass an explicit list of output properties to Format-Table, however.
$results | Format-Table -AutoSize | Out-File -Width 512 C:\log.txt -Append
Remarque: Pour prévisualiser la sortie dans la console - ce qui peut impliquer un retour à la ligne - utilisezOut-String -Width 512
À la place.
[1] Dans PowerShell Core , ce remplissage de dernière colonne indésirable a été supprimé, à partir d'au moins la version 6.1.0.