Tegelen hetkel ConfigMgr Secondary saidi automaatse installatsiooniga ja selle käigus tekkis mul vajadus installatsiooni kood kinni püüda. VB skriptis kasutasin ma järgnevat käsku, et kood kinni püüda:
ReturnCode = WshShell.Run (InstallPackage,1, TRUE)
PowerShellis käib asi teisiti ja selles postituses näitan ühte varianti kuidas seda võiks teha. Selleks, et seda installatsiooni koodi kinni püüda tuleb kasutada Start-Process command-letti.
Näide
$Install = Start-Process $File -ArgumentList $Arguments -Wait -PassThru
Selle konkreetse näite puhul on oluline just kaks parameetrit: -Wait ja –PassThru. Kui te eemaldate –Wait, siis ei oodata käsu lõppu ja kui te eemaldate –PassThru, siis teie muutujasse $Install ei salvestata installatsiooni ExitCode omadust (Properties).
Kui te lasete ülal toodud näite käima ja peale tarkvara installatsiooni on teil käsk
Write-Host $Install.ExitCode , siis prinditaks teile ekraanile tagasi tulnud installatsiooni kood. Installatsiooni koodid sõltuvad rakendusest.
Juhtum
Näiteks te soovite installeerida WSUSi (Windows Server Update Services) ja te soovite PowerShelliga installatsiooni kood kinni püüda ja kui installatsioon on edukas, siis soovite teha veel mingit seadistust. WSUSi automaatse installatsiooni kohta leiate rohkem infot nendest kohtadest:
· WSUSi installatsiooni Return Codes - http://technet.microsoft.com/en-us/library/dd939798(WS.10).aspx
· Rohkem infot Start-Process command-leti kohta saate lugeda siit - http://technet.microsoft.com/en-us/library/dd347667.aspx
· WSUSi installatsiooni juhend Technetis - http://technet.microsoft.com/en-us/library/cc720513(WS.10).aspx
Või lasete WSUS installatsiooni paketi käima parameetriga „/?“. Peale seda avaneb teile kõik võimalikud parameetrid mida on võimalik kasutada WSUSi automaatse installatsiooni puhul
Install-Software PowerShelli funktsioon
Function Install-Software
{
PARAM(
$File,
$Arguments
)
$Install = Start-Process $File -ArgumentList $Arguments -Wait -PassThru
If($Install.ExitCode -eq 0){
Write-Host "Installation was OK" -ForegroundColor GREEN
}
Else{
Write-Host "Installation failed $("$Install.ExitCode")" -ForegroundColor RED
}
}
Ja kui te lasete selle funktsiooni järgmiste parameetritega
Install-Software -file "C:\SCCM2007_Auto_Install\WSUS\WSUS30-KB972455-x64.exe" -Arguments '/q CONTENT_DIR="c:\WSUS" DEFAULT_WEBSITE=0 CONTENT_LOCAL=1'
Installeeritakse teile WSUS 3.0 SP2 lokaalselt. Kui te soovite installeerida tarkvara teistesse serveritesse, siis kasutage käsku Invoke-Command ja käivitage install teises serveris.
EDU!