私は最もフォローしています MSDNの基本的な例 そしてそれを機能させることができません。構成を次のように定義しました。
Configuration MyWebConfig
{
Param($ComputerName)
Node $ComputerName {
WindowsFeature MyRoleExample
{
Ensure = "Present"
Name = "Web-Server"
}
}
}
C:\Scripts> .\IisWithCompressionConfig.ps1 -ComputerName "localhost" -Outputpath C:\Scripts\localhost
(および他のいくつかのコマンドラインバリアント)を使用してMOFを生成しようとしています。ファイルが出力されず、エラーも報告されません(終了ステータスコードも0です)。 $ComputerName
変数のない(代わりに「localhost」がハードコードされた)バージョンを試しましたが、まだ何もありません。はい、私はこれを高架プロンプトで実行しています。
PowerShell4.0を実行していることを確認しました。
C:\Scripts> $PSVersionTable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34003
BuildVersion 6.3.9600.16394
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
私が欠けているアイデアはありますか?
DSCを使用して、構成定義を現在のセッションにドットソースし、それを呼び出します。
# dot source will load PS1 into current session
. .\IisWithCompressionConfig.ps1
# Then call the config
MyWebConfig -ComputerName "localhost"
構成は関数と非常によく似ています。つまり、MyWebConfig
(ファイル)ではなくIisWithCompressionConfig
(構成)を呼び出します。実際、定義されたDSCはFunction:
PSDriveにあります。 PS1をドットソースする前と後の両方で、次のコマンドを実行してみてください。前は結果が表示されないはずですが、後はFunction:
PSDriveにMyWebConfig
が表示されます。
Get-ChildItem Function:* | Where-Object { $_.CommandType -eq 'Configuration' }
提供されているTechNetの例では、ISEを使用しています。ステップ4では、(ソーシングではなく)現在のPSセッションでMyWebConfig
構成を定義しています。これは、PS1ファイルのドットソーシングと機能的に同等です。ステップ6の直後に、MOFを生成したMyWebConfig
を呼び出します。