2016-10-07 2 views
1

OU = _ est un nom de société privée. Je sais que c'est le redémarrage, c'est seulement pour le test avant qu'il ne passe dans le processus de hutdown réel. J'essaie d'éteindre tous les PC de mon entreprise qui fonctionnent depuis plus de 2 jours. Le script est une sorte de fait, mais il montre une erreur quand il arrive au point:Arrêt du PC distant PowerShell, PC unique

restart-Computer $Computer -Force 

Si je tape au lieu de $ Computer, ComputerList $ le script arrête tous les PC dans cette unité d'organisation, même si elles na pas courir plus de 2 jours. Il ne faut donc qu'un PC pour fonctionner plus de 2 jours pour fermer toute l'entreprise, et ce n'est pas ce que je veux. Comment puis-je dire au script d'éteindre les PC uniquement s'ils ont déjà fonctionné plus de 2 jours?

Répondre

0

Votre $Computer n'est pas défini. Vous devez utiliser:

Restart-Computer $_ -Force 

Mais la meilleure approche serait de recueillir tous les ordinateurs qui devrait redémarrer dans une variable puis les remettre en marche tout à fait. Fonctionnerait beaucoup plus rapidement:

$toBeRestarted = $ComputerList | Where-Object { $ShutdownDate -gt (Get-LastBootUpTime -ComputerName $_) } 
Restart-Computer $toBeRestarted -Force 

Vous pouvez ajouter un peu plus autour de l'exploitation forestière si vous aimez

+0

J'ai résolu le tout à l'heure, je pense que $ Restart-Computer _ -Force cela fonctionne. Je ne l'ai pas testé avec le temps parce que les PC que je veux éteindre ne sont pas en ligne assez longtemps, mais lundi je vais le tester plus à fond. Si cela ne fonctionne pas, je vais essayer votre autre solution, merci. – Gunter