命令行部署SharePoint2016離線前提條件和添加服務器的Feature

前言

  1. Sp2016的軟件環境要求以下:
  2. 服務器場中的數據庫服務器的最低要求:

如下各項之一: ios

  • Microsoft SQL Server 2014 Service Pack 1 (SP1) 的 64 位版本
  • Microsoft SQL Server 2016 RTM
  • Windows Server 2012 R2 Standard 或 Datacenter 的 64 位版本

注意: git

  • 不支持 SQL Server Express
  • Sql server 2014不包含Powerview 和 PowerPivot 外接程序,若是須要這2個BI要求,請務必安裝Sql Server2016 RTM
  1. 瀏覽器

  1. 安裝注意事項

命令行PS腳本和SP2016前置離線包放在C盤根目錄下。以下圖 github

 

注: redis

SP2016前置條件的安裝powershell(sp2016InstallPrerequisiteFiles.ps1)腳本須要修改以下路徑: sql

注意: shell

一、路徑根據本身的實際狀況來修改,以上離線包爲中文環境的離線包,其餘的語言包請自行下載各自的離線包,同時注意離線包的命名跟命令行寫的一致性。附帶下載地址: 數據庫

附帶下載這些離線包的PS1腳本(Download-SP2016-Prereqs.ps1): windows

 

二、我這個測試安裝環境是windows server 2016+sql server 2016 瀏覽器

  • 若是是windows server 2012 R2,還須要按照以下順序安裝以下KB補丁包,順序以下:
    • 首先安裝:Windows8.1-KB2919442-x64.msu
    • 其次安裝:Windows8.1-KB2919355-x64.msu(這個安裝過程比較常,由於包有600多M,請耐心等待安裝完成)
    • 最後安裝:Windows8.1-KB2999226-x64.msu
  • 若是數據庫是sql server 2014還須要打上補丁SP1包:SQLServer2014SP1-KB3058865-x64-CHS.exe

 

命令行添加服務角色和功能

  1. 打開powershell運行命令,以管理員身份運行以下圖(windows server2016爲例)

  2. 運行添加服務器的角色和功能腳本:sp2016EnableWindowsFeatures.ps1,以下圖

    若是出現以下表示添加角色和功能成功,以下圖 服務器

命令行安裝SP2016的離線包

如何上找到PS1腳本所在的位置,進行安裝就能夠,注意前置條件所在的文件夾以及前置命令行所在的盤符,好比:虛擬光驅

腳本爲:sp2016InstallPrerequisiteFiles.ps1

重啓繼續安裝離線包命令行

腳本爲:sp2016InstallPrerequisiteFilesContinue.ps1,注意前置命令行所在的位置以下圖:

 

附帶命令行:sp2016EnableWindowsFeatures.ps1

# ===================================================================================
# 編制人:忘憂草
# 編制時間:2016-11-07
# 編制做用:添加windows server 2012或2016服務器角色和功能
# 備註:爲安裝sharepoint2016作前置準備條件
# ===================================================================================
#設置windows server 2012的服務器角色和功能
function getServer2012Features {
    $windows2012R2Features = @(
        "Application-Server",
        "AS-NET-Framework",
        "AS-TCP-Port-Sharing",
        "AS-Web-Support",
        "AS-WAS-Support",
        "AS-HTTP-Activation",
        "AS-Named-Pipes",
        "AS-TCP-Activation",
        "FileAndStorage-Services",
        "Storage-Services",
        "Web-Server",
        "Web-WebServer",
        "Web-Common-Http",
        "Web-Default-Doc",
        "Web-Dir-Browsing",
        "Web-Http-Errors",
        "Web-Static-Content",
        "Web-Http-Redirect",
        "Web-Health",
        "Web-Http-Logging",
        "Web-Log-Libraries",
        "Web-Request-Monitor",
        "Web-Http-Tracing",
        "Web-Performance",
        "Web-Stat-Compression",
        "Web-Dyn-Compression",
        "Web-Security",
        "Web-Filtering",
        "Web-Basic-Auth",
        "Web-Client-Auth",
        "Web-Digest-Auth",
        "Web-Cert-Auth",
        "Web-IP-Security",
        "Web-Url-Auth",
        "Web-Windows-Auth",
        "Web-App-Dev",
        "Web-Net-Ext",
        "Web-Net-Ext45",
        "Web-Asp-Net",
        "Web-Asp-Net45",
        "Web-ISAPI-Ext",
        "Web-ISAPI-Filter",
        "Web-Mgmt-Tools",
        "Web-Mgmt-Console",
        "Web-Mgmt-Compat",
        "Web-Metabase",
        "Web-Lgcy-Mgmt-Console",
        "Web-Lgcy-Scripting",
        "Web-WMI",
        "Web-Scripting-Tools",
        "NET-Framework-Features",
        "NET-Framework-Core",
        "NET-HTTP-Activation",
        "NET-Non-HTTP-Activ",
        "NET-Framework-45-Features",
        "NET-Framework-45-Core",
        "NET-Framework-45-ASPNET",
        "NET-WCF-Services45",
        "NET-WCF-HTTP-Activation45",
        "NET-WCF-Pipe-Activation45",
        "NET-WCF-TCP-Activation45",
        "NET-WCF-TCP-PortSharing45",
        "Server-Media-Foundation",
        "FS-SMB1",
        "User-Interfaces-Infra",
        "Server-Gui-Mgmt-Infra",
        "Server-Gui-Shell",
        "Windows-Identity-Foundation",
        "PowerShellRoot",
        "PowerShell",
        "PowerShell-V2",
        "PowerShell-ISE",
        "WAS",
        "WAS-Process-Model",
        "WAS-NET-Environment",
        "WAS-Config-APIs",
        "WoW64-Support",
        "XPS-Viewer"
    )
    return $windows2012R2Features
}


#設置windows server 2016的服務器角色和功能
function getServer2016Features {
    $windows2016Features = @(                    
        "FileAndStorage-Services",    
        "File-Services",              
        "FS-FileServer",              
        "Storage-Services",           
        "Web-Server",                 
        "Web-WebServer",              
        "Web-Common-Http",            
        "Web-Default-Doc",            
        "Web-Dir-Browsing",           
        "Web-Http-Errors",            
        "Web-Static-Content",         
        "Web-Health",                 
        "Web-Http-Logging",           
        "Web-Log-Libraries",          
        "Web-Request-Monitor",        
        "Web-Http-Tracing",           
        "Web-Performance",            
        "Web-Stat-Compression",       
        "Web-Dyn-Compression",        
        "Web-Security",               
        "Web-Filtering",              
        "Web-Basic-Auth",             
        "Web-Digest-Auth",            
        "Web-Windows-Auth",           
        "Web-App-Dev",                
        "Web-Net-Ext",                
        "Web-Net-Ext45",              
        "Web-Asp-Net",                
        "Web-Asp-Net45",              
        "Web-ISAPI-Ext",              
        "Web-ISAPI-Filter",           
        "Web-Mgmt-Tools",             
        "Web-Mgmt-Console",           
        "Web-Mgmt-Compat",            
        "Web-Metabase",               
        "Web-Lgcy-Scripting",         
        "Web-WMI",                    
        "NET-Framework-Features",     
        "NET-Framework-Core",         
        "NET-HTTP-Activation",        
        "NET-Non-HTTP-Activ",         
        "NET-Framework-45-Features",  
        "NET-Framework-45-Core",      
        "NET-Framework-45-ASPNET",    
        "NET-WCF-Services45",         
        "NET-WCF-HTTP-Activation45",  
        "NET-WCF-Pipe-Activation45",  
        "NET-WCF-TCP-PortSharing45",  
        "FS-SMB1",                    
        "Windows-Defender-Features",  
        "Windows-Defender",           
        "Windows-Defender-Gui",       
        "Windows-Identity-Foundation",
        "PowerShellRoot",             
        "PowerShell",                 
        "PowerShell-V2",              
        "PowerShell-ISE",             
        "WAS",                        
        "WAS-Process-Model",          
        "WAS-NET-Environment",        
        "WAS-Config-APIs",            
        "WoW64-Support",              
        "XPS-Viewer"
    )
    return $windows2016Features                         
}
#設置服務器環境
function setEnvironment {
    #判斷操做系統版本
    $serverOS = ([environment]::OSVersion.Version)
    # Server 2016 
    if (($serverOS.Major -eq "10") -and ($serverOS.Build -eq "14393")) {
        $windowsFeatures = @()
        $windowsFeatures = getServer2016Features
        $OS = (Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_OperatingSystem).Caption
        Write-Host("Adding features for $OS...")
    }
   
    # Server 2012R2
    if (($serverOS.Major -eq "6")) {
        $windowsFeatures = @()
        $windowsFeatures = getServer2012Features
        $OS = (Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_OperatingSystem).Caption
        Write-Host("Adding features for $OS...")
    }
    #若是安裝.NET3.5須要制定 –Source <your source path>  example: 「D:\sources\sxs」.
    $restart = Add-WindowsFeature (foreach{$windowsFeatures}) 
    #若是成功
    if ($restart.Success -eq "True") {
        #提示信息成功
        Write-Host("Added feature $OS is OK...") -ForegroundColor Green
        #列表出成功的Feature信息
        Get-WindowsFeature $windowsFeatures
    }
    #若是錯誤
    if ($restart.Success -eq "False") {
        #提示信息成功
        Write-Host("Added feature $OS is Error...") -ForegroundColor Red
        #列表出成功的Feature信息
        Get-WindowsFeature $windowsFeatures
    }
    #判斷是否重啓
    if ($restart.RestartNeeded -ne "No") {
        restartComputer
    }
}
#重啓計算機
function restartComputer {
    for ($i = 10; $i -gt 0; $i--) {
        Write-Host("$env:COMPUTERNAME will reboot in $i seconds")
        Start-Sleep -Seconds 1
    }
    Restart-Computer -Force
}
#導入服務管理
Import-Module ServerManager
#執行
setEnvironment

命令行:sp2016InstallPrerequisiteFiles.ps1

# ===================================================================================
# 編制人:忘憂草
# 編制時間:2016-11-07
# 編制做用:安裝sharepoint2016的離線安裝包
# 備註:爲安裝sharepoint2016作前置準備條件
# ===================================================================================
Import-Module Servermanager
#sharepoint2016的先決條件prerequisiteinstaller.exe所在的盤符(虛擬機通常是指虛擬光驅)
$sp2016Location = "D:\"  # Change to folder location of SharePoint prerequisiteinstaller.exe file
#sharepoint先決條件的離線包所在的文件夾位置
$sp2016preReqPath = "C:\SharePoint2016Prerequisite"


#對路徑進行處理
$sp2016preReqPath = $sp2016preReqPath.TrimEnd('\')
$sp2016Location = $sp2016Location.TrimEnd('\')
#命令行所在位置
$preLoc = $sp2016Location + "\prerequisiteinstaller.exe" 

#endregion

function installSP2016Files($prepath,$path) { 
           
    $arguments = @(
                    "/DotNetFx:`"$path\NDP46-KB3045557-x86-x64-AllOS-ENU.exe`"",#安裝 Microsoft .NET Framework 4.6
                    #"/MSIPCClient:`"$path\setup_msipc_x64.exe`"",#安裝 Microsoft Information Protection and Control 客戶端
                    "/WCFDataServices56:`"$path\WcfDataServices56.exe`"" ,#安裝 Microsoft WCF Data Services 5.6
                    "/SQLNCli:`"$path\sqlncli.msi`"",#安裝 Microsoft SQL Server 2012 SP1 Native Client
                    "/ODBC:`"$path\msodbcsql.msi`"",#安裝 Microsoft ODBC Driver 11 for SQL Server
                    "/Sync:`"$path\Synchronization.msi`"",#安裝 Microsoft Sync Framework Runtime SP1 v1.0 (x64)。
                    "/AppFabric:`"$path\WindowsServerAppFabricSetup_x64.exe`"" ,#安裝 Windows Server AppFabric(AppFabric 必須用 /i CacheClient,CachingService,CacheAdmin /gac 選項來安裝)
                    "/IDFX11:`"$path\microsoftidentityextensions-64.msi`"",# 安裝 Windows Identity Foundation v1.1
                    "/KB3092423:`"$path\AppFabric-KB3092423-x64-CHS.exe`"",#安裝 Microsoft AppFabric 1.1 for Windows Server 累積更新包 7 (KB3092423)
                    "/MSVCRT11:`"$path\vcredist_x64.exe`"",#安裝適用於 Visual Studio 2012 的 Visual C++ 可再發行組件包
                    "/MSVCRT14:`"$path\vc_redist.x64.exe`""#安裝適用於 Visual Studio 2015 的 Visual C++ 可再發行組件包
                    )
    #命令行所在位置
    $setupFile = $prepath + "\prerequisiteinstaller.exe "
    #開始安裝
    Start-Process $setupFile -ArgumentList $arguments -Verbose -Wait
    #重啓計算機倒數     
    for ($i = 10; $i -gt 0; $i--) {
        Write-Host("$env:COMPUTERNAME will reboot in $i seconds")
        #Start-Sleep -Seconds 1 
    }          
    #重啓計算機    
    #Restart-Computer -Force          
} 
#檢查路徑是否存在
function checkPath($path) {
        # Check if destination path exists 
        If (!(Get-ChildItem -Path $path -ErrorAction -0).Exists) { 
            Write-Host("$path does not exist. Please validate the location and try agian.")
            exit
        }
}

#region Functions
   #檢查sharepoint先決條件的離線包是否存在
   checkPath -path $sp2016preReqPath
   #檢查命令行是否存在
   checkPath -path $preLoc
   #開始執行安裝
   installSP2016Files -prepath $sp2016Location -path $sp2016preReqPath
#endregion

命令行:Download-SP2016-Prereqs.ps1

# Download SharePoint 2016 Prerequisites
# 1.0
# 16 March 2016
#
# (c) Intellem, Inc. - DO NOT DISTRIBUTE WITHOUT PERMISSION.
# FOR DEMONSTRATION PURPOSES ONLY. USE AT YOUR OWN RISK.
# Please provide feedback to Dan Holme
# dan.holme@intelliem.com
#
# Follow this script at https://github.com/DanHolme/SP2016-Prereq-Downloader
#
# This script downloads SharePoint 2016 prerequisites that can be
# later installed by the SharePoint 2016 Prerequisite installer and
# by addiitonal prerequisite installation scripts.
#
# TESTED ON: Windows Server 2012 R2 
# Should work on Windows Server 2016
#
# VERSION HISTORY
# 1.0      ORIGINAL VERSION
# 1.1      21 March 2016 - Added definition of $Prereqs3Folder
#
# Based on a script by Craig Lussier (http://craiglussier.com) on TechNet
# http://gallery.technet.microsoft.com/office/DownloadInstall-SharePoint-e6df9eb8
# Updated for SharePoint Server 2016
#
# Run PowerShell as Administrator
#

# -------------------
# CONFIGURATION BLOCK

# Configure the folders to which updates and prerequisites are saved.
# These folders must already exist - the script does not create them.

# The top-level folder in the installation folder tree
$RootFolder = "C:\SharePointInstall"

# The folder for prerequisites installed before the Prerequisite Installer
# There are a number of updates to Windows Server 2012 R2 that must be installed
# before SharePoint Server 2016's Prerequisite Installer can be run
$Prereqs1Folder = "$RootFolder\SharePoint_Prerequisites\Windows_Server_2012_R2_Updates"

# The folder for prerequisites used by the Prerequisite Installer
$Prereqs2Folder = "$RootFolder\SharePoint_Prerequisites\PrerequisiteInstaller"

# The folder for updates that are required only in certain scenarios
$Prereqs3Folder = "$RootFolder\SharePoint_Prerequisites\Additional_Updates"

# END CONFIGURATION BLOCK
# -----------------------

# ----------------------------------------------------------------
# Download details
# Do not change unless Microsoft changes the downloads themselves
# ----------------------------------------------------------------

# Specify download url's for SharePoint 2016 prerequisites
$Downloads = @{
            # Microsoft SQL Server 2012 Native Client 64-bit edition – ENU\x64\sqlncli.MSI - http://go.microsoft.com/fwlink/p/?LinkId=239568
            "https://download.microsoft.com/download/F/E/D/FEDB200F-DE2A-46D8-B661-D019DFE9D470/ENU/x64/sqlncli.msi" = "$Prereqs2Folder\sqlncli-2012.msi";
            # Microsoft ODBC Driver 11 for SQL Server http://go.microsoft.com/fwlink/?LinkId=618410
            "https://download.microsoft.com/download/5/7/2/57249A3A-19D6-4901-ACCE-80924ABEB267/1033/amd64/msodbcsql.msi" = "$Prereqs2Folder\msodbcsql.msi";
            # Microsoft Sync Framework Runtime v1.0 SP1 (x64) http://go.microsoft.com/fwlink/?LinkId=618411
            "https://download.microsoft.com/download/E/0/0/E0060D8F-2354-4871-9596-DC78538799CC/Synchronization.msi" = "$Prereqs2Folder\Synchronization.msi"; 
            # Windows Server App Fabric http://go.microsoft.com/fwlink/?LinkId=618412
            "https://download.microsoft.com/download/A/6/7/A678AB47-496B-4907-B3D4-0A2D280A13C0/WindowsServerAppFabricSetup_x64.exe" = "$Prereqs2Folder\WindowsServerAppFabricSetup_x64.exe"; 
            # Windows Identity Foundation (KB974405)
            "http://download.microsoft.com/download/D/7/2/D72FD747-69B6-40B7-875B-C2B40A6B2BDD/Windows6.1-KB974405-x64.msu" = "$Prereqs2Folder\Windows6.1-KB974405-x64.msu"; 
            # Microsoft Identity Extensions
            # http://go.microsoft.com/fwlink/?LinkID=252368
            "http://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/rtm/MicrosoftIdentityExtensions-64.msi" = "$Prereqs2Folder\MicrosoftIdentityExtensions-64.msi";
            # Microsoft Information Protection and Control Client http://go.microsoft.com/fwlink/?LinkID=544913
            # MSI version (does not satisfy Prerequisite Installer): 
            #     http://go.microsoft.com/fwlink/?LinkId=320724
            #     https://download.microsoft.com/download/9/1/D/91DA8796-BE1D-46AF-8489-663AB7811517/setup_msipc_x64.msi
            "http://download.microsoft.com/download/3/C/F/3CF781F5-7D29-4035-9265-C34FF2369FA2/setup_msipc_x64.exe" = "$Prereqs2Folder\setup_msipc_x64.exe";
            # Microsoft WCF Data Services 5.6 required for SharePoint 2013 SP1 http://go.microsoft.com/fwlink/?LinkId=320724
            "https://download.microsoft.com/download/1/C/A/1CAA41C7-88B9-42D6-9E11-3C655656DAB1/WcfDataServices.exe" = "$Prereqs2Folder\WcfDataServices56.exe"; 
            # .NET Framework 4.6 Offline Installer http://go.microsoft.com/fwlink/?LinkId=618401
            "https://download.microsoft.com/download/C/3/A/C3A5200B-D33C-47E9-9D70-2F7C65DAAD94/NDP46-KB3045557-x86-x64-AllOS-ENU.exe" = "$Prereqs2Folder\NDP46-KB3045557-x86-x64-AllOS-ENU.exe";
            # Cumulative Update Package 7 for AppFabric 1.1 for Windows Server https://support.microsoft.com/en-us/kb/3092423
            "https://download.microsoft.com/download/F/1/0/F1093AF6-E797-4CA8-A9F6-FC50024B385C/AppFabric-KB3092423-x64-ENU.exe" = "$Prereqs2Folder\AppFabric-KB3092423-x64-ENU.exe";
            # Visual C++ Redistributable for Visual Studio 2012 Update 4 http://go.microsoft.com/fwlink/?LinkId=327788
            "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe" = "$Prereqs2Folder\vcredist_x64.exe";
            # Visual C++ Redistributable for Visual Studio 2015 http://go.microsoft.com/fwlink/?LinkId=623013
            "http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" = "$Prereqs2Folder\vc_redist.x64.exe"
            # Silverlight http://go.microsoft.com/fwlink/p/?LinkId=166506
            "http://silverlight.dlservice.microsoft.com/download/F/8/C/F8C0EACB-92D0-4722-9B18-965DD2A681E9/30514.00/Silverlight_x64.exe" = "$Prereqs3Folder\Silverlight_x64.exe";
            # Exchange Web Services Managed API, version 1.2 http://go.microsoft.com/fwlink/p/?linkid=238668
            "https://download.microsoft.com/download/7/6/1/7614E07E-BDB8-45DD-B598-952979E4DA29/EwsManagedApi.msi" = "$Prereqs3Folder\EwsManagedApi.msi";
            # Update for Windows 8.1 for x64-based Systems (KB2919442) https://www.microsoft.com/en-us/download/details.aspx?id=42162
            # a prerequisite for the Windows Server 2012 R2 Update
            "https://download.microsoft.com/download/C/F/8/CF821C31-38C7-4C5C-89BB-B283059269AF/Windows8.1-KB2919442-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2919442-x64.msu";
            # Windows Server 2012 R2 Update (KB2919355) https://support.microsoft.com/en-us/kb/2919355
            # Windows Server 2012 R2 clearcompressionflag.exe
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/clearcompressionflag.exe" = "$Prereqs1Folder\clearcompressionflag.exe";
            # Windows Server 2012 R2 Windows8.1-KB2919355-x64.msu 
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2919355-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2919355-x64.msu";
            # Windows Server 2012 R2 Windows8.1-KB2932046-x64.msu
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2932046-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2932046-x64.msu";
            # Windows Server 2012 R2 Windows8.1-KB2934018-x64.msu
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2934018-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2934018-x64.msu";
            # Windows Server 2012 R2 Windows8.1-KB2937592-x64.msu
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2937592-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2937592-x64.msu";
            # Windows Server 2012 R2 Windows8.1-KB2938439-x64.msu
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2938439-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2938439-x64.msu";
            # Windows Server 2012 R2 Windows8.1-KB2959977-x64.msu
            "https://download.microsoft.com/download/2/5/6/256CCCFB-5341-4A8D-A277-8A81B21A1E35/Windows8.1-KB2959977-x64.msu" = "$Prereqs1Folder\Windows8.1-KB2959977-x64.msu";
            } 


# Import Required Modules: BITS is used for file transfer
Import-Module BitsTransfer 

function DownloadFiles() 
{ 

    Write-Host ""
    Write-Host "====================================================================="
    Write-Host "             Downloading SharePoint 2016 Prerequisites" 
    Write-Host "====================================================================="
     
    $ReturnCode = 0 
 
    $Downloads.GetEnumerator() | ForEach { 
        $DownloadURL = $_.get_key()
        $Filespec = $_.get_value()
        # Get the file name based on the portion of the file path after the last slash 
        $FilePath = Split-Path $Filespec
        $FileName = Split-Path $Filespec -Leaf
        Write-Host "DOWNLOADING: $FileName"
        Write-Host "       FROM: $DownloadURL"
        Write-Host "         TO: $FilePath"
        
        Try 
        { 
            # Check if file already exists 
            If (!(Test-Path "$Filespec")) 
            { 
                # Begin download 
                Start-BitsTransfer -Source $DownloadURL -Destination "$Filespec" -DisplayName "Downloading `'$FileName`' to $FilePath" -Priority High -Description "From $DownloadURL..." -ErrorVariable err 
                If ($err) {Throw ""} 
                Write-Host "     STATUS: Downloaded"
                Write-Host
            } 
            Else 
            { 
                Write-Host "     STATUS: Already exists. Skipping." 
                Write-Host
            } 
        } 
        Catch 
        { 
            $ReturnCode = -1
            Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'" 
            Write-Error   $_
            Break 
        } 

    } 
    return $ReturnCode 
} 

$rc = DownloadFiles 

if($rc -ne -1)
{
    Write-Host ""
    Write-Host "DOWNLOADS ARE COMPLETE."
}
相關文章
相關標籤/搜索