J'essaie d'extraire les détails de la balise OperatingHours de tous les Azure VirtualMachines et de Azure SqlDatabases. Voici la possibilité pour appID dans une ressource et les valeurs que je dois imprimer en sortie en conséquence:Répertoriez toutes les ressources azur avec des variables et des variables à l'aide de PowerShell
- Si étiquette OperatingHours lui-même est présent dans aucune ressource puis « Tag pas présent »
- si tag OperatingHours est présent mais contient une chaîne vide ou vide puis affiche "NULL/EMPTY"
- si la balise OperatingHours est présente avec une autre valeur, puis affichez cette valeur.
Dois-je m'occuper de l'option (2) séparément ou est-ce comme si j'imprimais une valeur normale des heures de fonctionnement?
Après de longs efforts que j'ai créé script suivant:
$ErrorOccured = $false
$resources = Get-AzureRmResource |
Where-Object {($_.ResourceType -eq "Microsoft.Compute/virtualMachines") -or ($_.ResourceType -eq "Microsoft.Sql/servers/databases")} |
foreach {
new-object psobject -Property @{
ResourceName = $_.ResourceName;
ResourceType = $_.ResourceType;
OperatingHours= try {
$ErrorActionPreference = 'SilentlyContinue';
($_ | select -expand Tags).OperatingHours; }
catch {
$ErrorOccured = $true ; }
if ($ErrorOccured)
{ "Tag not present" }
else {
($_ | select -expand Tags).OperatingHours;
$ErrorOccured = $false };}
}
$resources | Format-Table
Lors de l'exécution de ce script, je reçois l'erreur suivante:
At line:13 char:58
+ }
+ ~
The hash literal was incomplete.
At line:20 char:2
+ }
+ ~
Unexpected token '}' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : IncompleteHashLiteral
Si je remplace la déclaration OperatingHours avec le code suivant alors le script fonctionne avec succès. Mais ce faisant, je ne suis pas en mesure de satisfaire l'option (1) mentionnée ci-dessus.
Operating Hours = if (!($_ | select -expand Tags).OperatingHours)
{"Tag not present"}
else {($_ | select -expand Tags).OperatingHours} ;
S'il vous plaît me conseiller sur la façon de corriger cela et obtenir la sortie requise.
Merci