تثبيت ملف cab بالاسم المحدد من المسار المحدد
الوصف
يوضح هذا المثال كيف يمكنك استخدام WindowsPackageCab
القيم التي يوفرها المستخدم للمورد لضمان تثبيت حزمة.
يجب تحديد اسم الحزمة مع المعلمة Name ، التي تعين خاصية Name للمورد.
يجب تحديد المسار إلى الملف الذي .cab
يمكن تثبيت الحزمة منه باستخدام المعلمة SourcePath ، والتي تعين خاصية SourcePath للمورد.
يجب تحديد المسار إلى ملف سجل باستخدام المعلمة LogPath ، والتي تعين خاصية LogPath للمورد.
مع تعيين Ensure إلى Present
، يتم تعيين خاصية Name إلى القيمة التي يوفرها المستخدم من المعلمة Name ، وتعيين SourcePath إلى القيمة التي يوفرها المستخدم من المعلمة SourcePath ، يقوم المورد بتثبيت الحزمة المسماة من الملف المحدد .cab
إذا لم تكن مثبتة بالفعل.
مع تعيين LogPath إلى القيمة التي يوفرها المستخدم من المعلمة LogPath ، يكتب المورد السجلات لتثبيت الحزمة إلى هذا الملف بدلا من %WINDIR%\Logs\Dism\dism.log
.
مع Invoke-DscResource
يوضح هذا البرنامج النصي كيفية استخدام WindowsPackageCab
المورد مع Invoke-DscResource
cmdlet لضمان تثبيت حزمة محددة من قبل المستخدم.
[CmdletBinding()]
param(
[Parameter (Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name,
[Parameter (Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$SourcePath,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$LogPath
)
begin {
$SharedParameters = @{
Name = 'WindowsPackageCab'
ModuleName = 'PSDscResource'
Properties = @{
Name = $Name
Ensure = 'Present'
SourcePath = $SourcePath
LogPath = $LogPath
}
}
$NonGetProperties = @(
'Ensure'
'SourcePath'
'LogPath'
)
}
process {
$TestResult = Invoke-DscResource -Method Test @SharedParameters
if ($TestResult.InDesiredState) {
$QueryParameters = $SharedParameters.Clone()
foreach ($Property in $NonGetProperties) {
$QueryParameters.Properties.Remove($Property)
}
Invoke-DscResource -Method Get @QueryParameters
} else {
Invoke-DscResource -Method Set @SharedParameters
}
}
مع تكوين
توضح هذه القصاصة البرمجية كيفية تعريف Configuration
مع كتلة WindowsPackageCab
موارد لضمان تثبيت حزمة محددة من قبل المستخدم.
هام
هناك قيود في تكوين الجهاز تمنع مورد DSC من استخدام أي أوامر cmdlets PowerShell غير مضمنة في PowerShell نفسه أو في وحدة نمطية في معرض PowerShell. يتم توفير هذا المثال لأغراض توضيحية، ولكن نظرا لأن مورد DSC يستخدم cmdlets من الوحدة النمطية DISM، والتي يتم شحنها كأحد وحدات Windows النمطية، فلن يعمل في تكوين الجهاز.
Configuration Install {
param(
[Parameter (Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name,
[Parameter (Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$SourcePath,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$LogPath
)
Import-DscResource -ModuleName 'PSDscResources'
Node Localhost {
WindowsPackageCab ExampleWindowsPackageCab {
Name = $Name
Ensure = 'Present'
SourcePath = $SourcePath
LogPath = $LogPath
}
}
}
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ