我想通过PowerShell脚本在Windows启动(用户登录后)后立即执行一些特定操作。但是,我不希望通过将我的PowerShell脚本添加到Windows Startup来实现这一点,因为这样我的脚本将在Windows启动过程中运行。因此,某些服务和应用程序可能尚未启动。 我想在启动所有Windows服务时运行脚本,运行Windows Startup部分的所有应用程序,并且HDD没有大量加载。是否可以使用PowerShell检测此类Windows状态?
我会感激任何帮助,因为我的想法已经不多了......
答案 0 :(得分:0)
创建Powershell启动脚本。将其设置为监视系统via Perfmon counters并等待系统空闲。像这样,
$epsilon = 0.2
do { # sleep and loop untill cpu load is low enough
start-sleep -seconds 5
$counter = Get-Counter "\\computer\Process(Idle)\% Processor Time"
} while ($counter.CounterSamples.CookedValue -ge $epsilon)
# The system is now idle enough
# Start the real work after the loop
正确的计数器取决于你所追求的。当前的磁盘队列也可能很有用。
可以使用相同的方法来检查服务状态,运行进程等。