Mini Kabibi Habibi
# Copyright � 2008, Microsoft Corporation. All rights reserved.
function SyncInvoke([string]$executable = $(throw "No executable is specified"), [string]$arguments, [bool]$isHidden = $false)
{
[int]$timeOut = 60000
[System.Diagnostics.ProcessStartInfo]$startInfo = New-Object System.Diagnostics.ProcessStartInfo
$startInfo.FileName = $executable
$startInfo.Arguments = $arguments
$startInfo.UseShellExecute = $true
if($isHidden)
{
$startInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden
}
else
{
$startInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Normal
}
[bool]$result = $false
[System.Diagnostics.Process]$process = $null
try
{
$process = [System.Diagnostics.Process]::Start($startInfo)
$result = $process.waitforexit($timeOut)
}
finally
{
if(-not $process.HasExited)
{
$process.Kill()
}
}
return $result
}