Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek, [System.Management.Automation.Cmdlet] doğrudan başka bir ikili cmdlet'in içinden türetilen bir ikili cmdlet'in nasıl çağrıldığını gösterir. Bu, çağrılan cmdlet'in işlevselliğini geliştirmekte olduğunuz ikili cmdlet'e eklemenize olanak tanır. Bu örnekte, yerel bilgisayarda çalışan işlemleri almak için Get-Process cmdlet'i çağrılır.
Get-Process cmdlet'ine yapılan çağrı aşağıdaki komutla eşdeğerdir. Bu komut, adları "a" ile "t" arasında başlayan tüm işlemleri alır.
Get-Process -Name [a-t]*
Önemli
Yalnızca doğrudan System.Management.Automation.Cmdlet sınıfından türetilen cmdlet'leri çağırabilirsiniz. System.Management.Automation.PSCmdlet sınıfından türetilen bir cmdlet'i çağıramazsınız. Örnek için bkz. PSCmdlet'in içinden PSCmdlet'i çağırma.
Cmdlet'in içinden bir cmdlet çağırmak için
Çağrılacak cmdlet'i tanımlayan derlemeye başvurulmasını ve uygun
usingdeyiminin eklendiğinden emin olun. Bu örnekte, aşağıdaki ad alanları eklenir.using System.Diagnostics; using System.Management.Automation; // PowerShell assembly. using Microsoft.PowerShell.Commands; // PowerShell cmdlets assembly you want to call.cmdlet'in giriş işleme yönteminde çağrılacak cmdlet'in yeni bir örneğini oluşturun. Bu örnekte, Microsoft.PowerShell.Commands.GetProcessCommand türünde bir nesne, cmdlet çağrıldığında kullanılan bağımsız değişkenleri içeren dizeyle birlikte oluşturulur.
GetProcessCommand gp = new GetProcessCommand(); gp.Name = new string[] { "[a-t]*" };Get-Processcmdlet'ini çağırmak için System.Management.Automation.Cmdlet.Invoke* yöntemini çağırın.foreach (Process p in gp.Invoke<Process>()) { Console.WriteLine(p.ToString()); } }
Örnek
Bu örnekte, Get-Process cmdlet'i bir cmdlet'in System.Management.Automation.Cmdlet.BeginProcessing yönteminden çağrılır.
using System;
using System.Diagnostics;
using System.Management.Automation; // PowerShell assembly.
using Microsoft.PowerShell.Commands; // PowerShell cmdlets assembly you want to call.
namespace SendGreeting
{
// Declare the class as a cmdlet and specify an
// appropriate verb and noun for the cmdlet name.
[Cmdlet(VerbsCommunications.Send, "GreetingInvoke")]
public class SendGreetingInvokeCommand : Cmdlet
{
// Declare the parameters for the cmdlet.
[Parameter(Mandatory = true)]
public string Name { get; set; }
// Override the BeginProcessing method to invoke
// the Get-Process cmdlet.
protected override void BeginProcessing()
{
GetProcessCommand gp = new GetProcessCommand();
gp.Name = new string[] { "[a-t]*" };
foreach (Process p in gp.Invoke<Process>())
{
WriteVerbose(p.ToString());
}
}
// Override the ProcessRecord method to process
// the supplied user name and write out a
// greeting to the user by calling the WriteObject
// method.
protected override void ProcessRecord()
{
WriteObject("Hello " + Name + "!");
}
}
}
Ayrıca Bkz.
PowerShell