web-dev-qa-db-ja.com

Windows2008サーバーにインストールされている機能のリストをエクスポートする

レプリカテスト環境を作成できるように、本番Webサーバーにインストールされる機能を指定するように求められました。

ソリューションへの道をポイントしてクリックすることはできますが、スクリプトを介してこれをどのように実行できるかについて興味があります。 PowershellまたはWMIが頭に浮かびます。レポートには、インストールされているすべての主要なシステム機能がバージョン番号とともに表示されます。理想的には、インストールされているオペレーティングシステムに関する情報も提供されます

2
Keith Bloom

Win32_ServerFeature は、WMIでスクリプトを作成する必要がある場合に探しているものです。これはWindows2008でのみ使用できます。MSDNリンクのVBScriptコードの例を次に示します。

strComputer = "FABRIKAM"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colFeatureList = objWMIService.ExecQuery _
    ("SELECT Name FROM Win32_ServerFeature")

For Each objFeature In colFeatureList
   WScript.Echo objFeature.Name

Next
3
songei2f

Server 2008 R2では、非常に簡単です。

Import-Module ServerManager
Get-WindowsFeature

お役に立てれば

3

Windows 2008 Serverでロールを追加、削除、およびクエリする方法について、MSDNからこのブログ投稿があります。

PowerShellコマンドプロンプトから

servermanagercmd.exe -query roles.xml

ここで完全なブログを参照してください http://blogs.msdn.com/b/patricka/archive/2008/03/05/detecting-what-server-roles-are-installed-on-windows-server-2008。 aspx

1
best

インストールされたWindows機能をエクスポートし、新しいサーバーにインポートするための this リンクをたどりました。

インストールされているすべての役割と機能を取得するには-

Get-WindowsFeature | where{$_.Installed -eq $True} | select displayname,name

すべての役割を.csvファイルにエクスポートして、別のサーバーで使用できるようにします-

Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\scripts\Roles.csv -NoTypeInformation -Verbose

これで、この.csvファイルを使用して、まったく同じ役割と機能を持つ新しいサーバーで使用できます-

Import-Csv C:\scripts\Roles.csv | foreach{Add-WindowsFeature $_.name  }

私はこれをWindowsServer 2012で試しましたが、他のバージョンでも機能するはずです。

0
Yogi

上記の回答はServer2008R2で機能します(Powershell 5以降を実行している限り)が、これをAdd-WindowsFeatureにパイプする(またはDSCスクリプトを生成する)場合はおそらく機能しません。上記のリストには、一部のサブ機能が意図的に無効にされている場合、アプリケーションにとって望ましくない可能性のあるサブ機能が含まれることがあるため、目的の効果が得られます。

上記のスクリプトのこのバージョンは、私が望んでいたものを正確に提供しました。

Get-WindowsFeature | Where-Object { $_.Installed -eq $true -and $_.SubFeatures.Count -eq 0}
0
aolszowka