In PowerShell v3, Restart-Computer now has a number of useful new parameters. For example, you can restart a remote machine and wait for the reboot process to finish.
-Wait: Halts the script until the machine has rebooted
-Timeout: Seconds to wait for the machine to restart
-For: Considers the computer to have restarted when the specified resources are available. Valid values: WMI, WinRM, and PowerShell.
-Delay: Interval in seconds used to query the remote computer to determine its availability specified by -For.