2016-10-04 82 views
1

我有一個腳本,將從服務器上安裝VLC。當我運行腳本時會發生什麼,我的文本文件中的每個計算機名稱都將啓動安裝過程,然後您將點擊「next next next」(基本上)。安裝VLC自動安裝,沒有擊中旁邊

我很好奇我如何爲任何軟件編寫這些腳本來安裝,而不是提示所有這些「下一個」,只是自行安裝。這可能嗎?

# Run As Administrator 

Function Get-FileName{ 
[CmdletBinding()] 
Param(
    [String]$Filter = "|*.*", 
    [String]$InitialDirectory = "C:\") 

    [void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") 
    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog 
    $OpenFileDialog.initialDirectory = $InitialDirectory 
    $OpenFileDialog.filter = $Filter 
    [void]$OpenFileDialog.ShowDialog() 
    $OpenFileDialog.filename 
} 

$file = Get-FileName -InitialDirectory $env:USERPROFILE\Desktop -Filter "Text files (*.txt)|*.txt|All files (*.*)|*.*" 
ForEach ($item in (Get-Content $file)) { 
    $sitem = $item.Split("|") 
    $computer = $sitem[0].Trim() 
    $user = $sitem[1].Trim() 

    $filepath = Test-Path -Path "\\$computer\c$\Program Files (x86)\VideoLAN\VLC\" 
    If ($filepath -eq $false) { 
    Get-Service remoteregistry -ComputerName $computer | Start-Service 

    Copy-Item -Path "\\server\Unsupported Software\VLC MediaPlayer" -Destination "\\$computer\c$\windows\temp\" -Container -Recurse -Force 

    $InstallString = '"C:\windows\temp\VLC MediaPlayer\vlc-2.2.1-win32.exe"' 
    ([WMICLASS]"\\$computer\ROOT\CIMV2:Win32_Process").Create($InstallString) 

    "$computer" + "-" + "$(Get-Date)" | Out-File -FilePath "\\server\Unsupported Software\VLC MediaPlayer\RemoteInstallfile.txt" -Append 

    } Else { 
     "$computer" + "_Already_Had_Software_" + "$(Get-Date)" | Out-File -FilePath "\\server\Unsupported Software\VLC MediaPlayer\RemoteInstallfile.txt" -Append 
    } 
} 

回答

2

按照documentation,你可以使用命令行開關安裝VLC,如:

vlc-2.0.1-win32.exe /L=1033 /S 

哪裏/S可能是靜默安裝開關。

+0

所以是每一個應用程序的不同呢?或者這是否涵蓋大部分應用程序 –

+0

你也知道在我的腳本中我會添加這個嗎? –

+0

當然,這對每個應用程序都可能有所不同,但大多數應用程序都提供了這種無聲安裝。但是,您必須檢查每個應用程序的命令行安裝語法。你可能必須將它添加到你的'$ InstallString'變量 –