2017-09-07 1 views
0

J'essaie d'obtenir un dernier rapport de temps de démarrage et mon script continue à répéter la même sortie 8 fois, je suis sûr que c'est une erreur de syntaxe. Voici ce que j'ai:Get-CimInstance répète la sortie plusieurs fois

$ServerName = (Get-Content -Path 
D:\Users\Admin.sa\Desktop\Computerlist.txt) 

##### Script Starts Here ###### 

foreach ($Server in $ServerName) {Get-CimInstance -Cn $Servername -ClassName 
win32_operatingsystem | select csname,lastbootuptime} 

Format-Table -AutoSize 

Répondre

1

je crois que la question est à l'intérieur de votre boucle for. Essayez:

$ServerName = (Get-Content -Path "D:\Users\Admin.sa\Desktop\Computerlist.txt") 

##### Script Starts Here ###### 

foreach ($Server in $ServerName) {Get-CimInstance -Cn $Server -ClassName win32_operatingsystem | select csname,lastbootuptime} 

Format-Table -AutoSize 
0

Donc, votre problème est que lorsque vous faites la boucle, vous utilisez la mauvaise variable. Rappelez-vous lorsque vous utilisez la boucle for, vous devez utiliser le $Server PAS le $ServerName

donc:

$ServerName = (Get-Content -Path 
D:\Users\Admin.sa\Desktop\Computerlist.txt) 

##### Script Starts Here ###### 

foreach ($Server in $ServerName) {Get-CimInstance -Cn $Server -ClassName 
win32_operatingsystem | select csname,lastbootuptime} 

Format-Table -AutoSize 
+0

ceci est la réponse exacte je l'ai écrit ci-dessus il y a une heure. – ShanayL

+0

lol, nous l'avons probablement écrit en même temps, mais ne vous inquiétez pas, j'ai voté le vôtre, une fois que je l'ai vu. – Alex