1

Windows 2003 サーバーにインストールされている Windows 機能 (コンポーネント) をチェックするために、大きなバッチ スクリプトを作成しています。サーバーの役割を照会し、cmd シェル内で役割のすべてのサブ機能を表示する方法を理解できないようです。これは、servermanager.exe または WMI を使用するだけで Windows Server 2008 で簡単に実行できますが、Windows 2003 で使用するプログラムまたはコマンドがわかりません。この Windows OS バージョンで。特にWindows 2003ボックスで使用できる同様のユーティリティまたはコマンドを知っている人はいますか? 御時間ありがとうございます。

4

1 に答える 1

-1

この機能を試すことができます

function Get-InstalledComponents($computer = '.') {
    $components_installed   = @();

    $reg_paths  = @('SOFTWARE\Microsoft\Windows\CurrentVersion'`
            + '\Setup\Oc Manager\Subcomponents');
    $reg_paths  += @('SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion'`
            + '\Setup\Oc Manager\Subcomponents');

    $hkey   = 'LocalMachine';
    $reg    = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($hkey, $computer);
    foreach ($reg_path in $reg_paths) {
        $reg_key    = $reg.OpenSubKey($reg_path);
        if ($reg_key -eq $null) {
            continue;
        }
        $names  = $reg_key.GetValueNames();

        foreach ($name in $names) {
            $value  = $reg_key.GetValue($name);
            if ($value -gt 0) {
                $components_installed += @($name);
            }
        }
        $reg_key.close();
    }
    $reg.close();

    if ($components_installed.count -lt 1) {
        trap { ;
        continue } $features = @(get-wmiobject -class 'Win32_ServerFeature' `
                    -computer $computer -erroraction 'Stop');

        foreach ($feature in $features) {
            $components_installed += @($feature.name);
        }
    }       

    return ($components_installed | sort);
}
于 2012-11-12T12:11:19.447 に答える