Secara terprogram memeriksa apakah Fitur Windows Server 2008 diinstal, dan Instal


4

Saya ingin dapat mendeteksi dalam skrip apakah instalasi Windows Server 2008 memiliki fitur Windows tertentu diaktifkan, dan menginstalnya jika perlu. Saya tidak hanya ingin menggunakan pendekatan "cobalah untuk menginstal fitur, bahkan jika sudah diinstal", karena saya harus dapat melakukan langkah-langkah tambahan pada waktu instalasi.

Misalnya, saya tahu saya dapat menginstal Layanan SNMP menggunakan baris perintah:

pkgmgr /iu:SNMP

Yang saya tidak tahu adalah bagaimana memeriksa apakah paket ini telah diinstal, idealnya dari VBScript / WMI, tetapi dari alat baris perintah jika perlu.

Idealnya saya juga ingin menemukan solusi yang tidak melibatkan Powershell, karena saya tidak ingin harus menurunkan hak eksekusi PowerShell yang ditetapkan secara default di instalasi Windows 2008.

Jawaban:


6

Tampaknya bagi saya bahwa Anda dapat melakukan ini dengan mudah dengan skrip PowerShell (dijalankan sebagai administrator).

Berikut ini contoh skrip PowerShell yang ditemukan di internet :

#Powershell Script To Install SNMP Services
Import-Module ServerManager
#Check If SNMP Services Are Already Installed
$check = Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Services"}
If ($check.Installed -ne "True") {
        #Install/Enable SNMP Services
        Add-WindowsFeature SNMP-Services | Out-Null
}

Anda dapat menemukan informasi lebih lanjut tentang menemukan nama fitur di:
Windows Server 2008 R2: Menambahkan Fitur melalui PowerShell

Jika WMIC adalah suatu opsi, lihat artikel ini:
Kiat Server Core Baru
Menggunakan alat Windows Server 2008 Core OCList dan OCSetup CLI baru untuk Menambahkan & Menghapus Peran Server

Jika pemrograman adalah suatu opsi, lihat artikel stackoverflow ini:
Bagaimana saya dapat memeriksa secara program apakah fitur server diinstal pada Windows Server 2008?


Ya, saya sebenarnya menemukan metode ini juga, tapi saya mencoba melakukan ini tanpa Powershell (skrip ini dimaksudkan untuk dijalankan sebagai bagian dari instalasi OS, dan saya tidak ingin mengubah pengaturan keamanan default PowerShell, yang mencegah skrip powershell dieksekusi).
Richard

@ Richard: Lihat hasil edit saya.
harrymc

Opsi pemrograman menggunakan WMI persis seperti yang saya cari - terima kasih. Saya telah melihat kelas WMI, tetapi belum menemukan kelas WMI_ServerFeature
Richard

1

Jawaban yang disarankan sebenarnya dapat disederhanakan sedikit:

$check = get-windowsfeature -name SNMP-Services
if ($check.Installed -ne "True") {
        #Install/Enable SNMP Services
        Add-WindowsFeature SNMP-Services | Out-Null
}

0

Ini adalah perintah PowerShell yang bekerja dengan sempurna. Menginstal Layanan SNMP (SNMP Service + SNMP WMI Provider)

Servermanagercmd –install SNMP-Services
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.