2013-12-20 4 views
0

Что я могу добавить, чтобы начать с самого начала после его завершения?Loop script по завершении

mode con: cols=35 lines=5 
$tag1 = "" 
while (-not ($tag1)) { 
    $tag1 = Read-Host 'Enter tag # or Q to quit' 
} 

    mode con: cols=80 lines=46 

    cls 

    sc.exe \\$tag1 start RemoteRegistry; 

    cls 

    start-sleep -seconds 2 

    cls 

    $OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1; 
    $OSInfo | Format-Table -Property @{Name="OS Name";Expression={$_.Caption}} -AutoSize; 
    $OSInfo | Format-Table -Property @{Name="System Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}} -AutoSize; 
    $OSInfo | Format-Table -Property @{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}} -AutoSize; 

    "`n" 

    "Current Date & Time: $(Get-Date -Format G)"; 

    "`n" 

    Get-WmiObject win32_computersystem -Computer $tag1 | Format-Table -Property @{Name="Username";Expression={$_.username}} -Autosize; 

    Get-EventLog system -computername $tag1 -InstanceId 2147489657 -Newest 10 | format-table EventID,TimeWritten,MachineName -AutoSize; 
+0

положить его в петлю – user1336827

+0

Не знаете как, именно поэтому я прошу. – Aaron

+0

Ты хочешь, чтобы он продолжал начисто навсегда? – user1336827

ответ

2

вы, возможно, придется проверить синтаксис на «$ тега! =„Q“», но в основном это должно продолжать спрашивать тегов, пока Q не будет введен.

mode con: cols=35 lines=5 
while ($tag -ne "Q"){ 
$tag1 = "" 
while (-not ($tag1)) { 
$tag1 = Read-Host 'Enter tag # or Q to quit' 
} 
if($tag1 -eq "Q"){break} 
mode con: cols=80 lines=46 

cls 

sc.exe \\$tag1 start RemoteRegistry; 

cls 

start-sleep -seconds 2 

cls 

$OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1; 
$OSInfo | Format-Table -Property @{Name="OS Name";Expression={$_.Caption}} -AutoSize; 
$OSInfo | Format-Table -Property @{Name="System Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}} -AutoSize; 
$OSInfo | Format-Table -Property @{Name="OS Install Date";Expression={$_.ConvertToDateTime($_.InstallDate)}} -AutoSize; 

"`n" 

"Current Date & Time: $(Get-Date -Format G)"; 

"`n" 

Get-WmiObject win32_computersystem -Computer $tag1 | Format-Table -Property @{Name="Username";Expression={$_.username}} -Autosize; 

Get-EventLog system -computername $tag1 -InstanceId 2147489657 -Newest 10 | format-table EventID,TimeWritten,MachineName -AutoSize; 
} 
+1

обновил его, я думаю, -не должно работать. – user1336827

+0

Он продолжает зацикливать одну и ту же переменную, а не запрашивать новую, и ввод q или Q для выхода не работает. – Aaron

+0

попробуйте сейчас, переместите $ tag = "" внутри первого в то время как – user1336827