2016-10-04 8 views
1

サーバからVLCをインストールするスクリプトがあります。スクリプトを実行すると、テキストファイル内のすべてのコンピュータ名がインストールプロセスを開始し、「次の次へ」(基本的に)を押します。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をインストールするには、コマンドラインスイッチを使用することができます。

/Sはおそらく サイレントインストールするためのスイッチである
vlc-2.0.1-win32.exe /L=1033 /S 

+0

したがって、すべてのアプリケーションは異なるでしょうか?それとも、これはほとんどのアプリケーションをカバーしていますか? –

+0

また、私のスクリプトのどこにこれを追加するのか知っていますか? –

+0

もちろん、これはアプリケーションごとに異なる場合がありますが、ほとんどのアプリケーションはそのようなサイレントインストールを提供します。ただし、各アプリケーションのコマンドラインインストール構文を確認する必要があります。 '$ InstallString'変数にこれを追加する必要があるかもしれません –

関連する問題