Microsoft Hyper-V Server 2012をインストールしてGUI管理ができるCorefig 1.1.1を導入したのですが一部動作しない部分がありましたので修正しました
Corefig for Windows Server 2012 Core and Hyper-V Server 2012
http://corefig.codeplex.com/
- Start_Corefig.wsf
- Services.ps1
取り敢えず開始プログラムとサービス管理プログラムです。
すべての機能を確認していないので他にも修正が必要な部分があるかもしれません
- Start_Corefig.wsf
- Services.ps1
このプログラムはCorefigが動作する上で必要な機能が有効なのかチェックして有効になっていなければ確認メッセージを表示します
また、PowerShellの実行権限を”RemoteSigned”に設定していて、私の環境では動作しないので”Bypass”に設定するように変更しました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
; html-script: false ]*** D:/Corefig/Org/Start_Corefig.wsf Wed May 08 15:45:50 2013 --- D:/Corefig/New/Start_Corefig.wsf Wed May 08 15:44:54 2013 *************** *** 133,139 **** IsSpecificWindowsFeatureEnabled = False If IsEmpty(DISMContents) Then Call(GetAllWindowsFeatures) Set FeatureNameRegEx = New RegExp ! FeatureNameRegEx.Pattern = "\b" + FeatureName + "\b[ \t]*\|[ \t]*Enabled" If FeatureNameRegEx.Test(DISMContents) Then IsSpecificWindowsFeatureEnabled = True End If --- 133,139 ---- IsSpecificWindowsFeatureEnabled = False If IsEmpty(DISMContents) Then Call(GetAllWindowsFeatures) Set FeatureNameRegEx = New RegExp ! FeatureNameRegEx.Pattern = "\b" + FeatureName + "\b[ \t]*\|[ \t]*有効" If FeatureNameRegEx.Test(DISMContents) Then IsSpecificWindowsFeatureEnabled = True End If *************** *** 323,329 **** End If ' On Error Resume Next ! WshShell.RegWrite"HKLM\Software\Microsoft\Powershell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy", "RemoteSigned", "REG_SZ" On Error goto 0 ' WshShell.CurrentDirectory = GlobalFolderPath --- 323,329 ---- End If ' On Error Resume Next ! WshShell.RegWrite"HKLM\Software\Microsoft\Powershell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy", "Bypass", "REG_SZ" On Error goto 0 ' WshShell.CurrentDirectory = GlobalFolderPath |
またCorefig.ps1が起動するとWindowsスタートアップ時にCorefigが自動起動するようにレジストリ設定が行われます。
[□Load at windows startup]にデフォルトでチェックが入っていて次回からStart_Corefig.wsf自動起動してきます
サービス管理を起動したところサービス一覧に何も表示されなくてエラーになっていました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
このオブジェクトにプロパティ 'Service_name' が見つかりません。プロパティが存在し、設定可能なことを確認してください。 発生場所 C:\corefig\services.ps1:205 文字:49 + $GatherServices | ? { $row = $table.NewRow() ; $row.Service_name = $_.Name ; $r ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : PropertyNotFound このオブジェクトにプロパティ 'Status' が見つかりません。プロパティが存在し、設定可能なことを確認してください。 発生場所 C:\corefig\services.ps1:205 文字:79 + $GatherServices | ? { $row = $table.NewRow() ; $row.Service_name = $_.Name ; $r ... + ~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : PropertyNotFound このオブジェクトにプロパティ 'Service_Description' が見つかりません。プロパティが存在し、設定可能なことを確認してくださ い。 発生場所 C:\corefig\services.ps1:205 文字:105 + ... = $_.Status ; $row.Service_Description = $_.Displayname ; $table.Rows.Add($row) ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : PropertyNotFound null 値の式ではメソッドを呼び出せません。 発生場所 C:\corefig\services.ps1:205 文字:149 + ... .Displayname ; $table.Rows.Add($row) } + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull |
エラーメッセージを解析すると1行目に気になるメッセージが表示されていました
1 2 3 4 5 6 7 8 |
<font color=red>New-Object : 引数 '・' を受け入れる位置指定パラメーターが見つかりません。</font> 発生場所 C:\Corefig\Services.ps1:190 文字:11 + $table = New-Object system.Data.DataTable ・$TableName ・ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [New-Object]、ParameterBindi ngException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell .Commands.NewObjectCommand |
何か制御文字が入っているようでしたので、$TableNameの前後の文字を削除しました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
; html-script: false ]*** D:/Corefig/Org/Services.ps1 Sun May 05 19:35:00 2013 --- D:/Corefig/New/Services.ps1 Tue May 07 13:53:29 2013 *************** *** 187,193 **** { $TableName = "OS Services" ! $table = New-Object system.Data.DataTable ・$TableName ・ $col1 = New-Object system.Data.DataColumn Service_Name $col2 = New-Object system.Data.DataColumn Status --- 187,193 ---- { $TableName = "OS Services" ! $table = New-Object system.Data.DataTable $TableName $col1 = New-Object system.Data.DataColumn Service_Name $col2 = New-Object system.Data.DataColumn Status |
まだ修正が必要かもしれませんが、取り敢えず目立ったエラーは無くなりました