获取在调用System.Management.Automation.PowerShell.Invoke()之前执行的powershell脚本文本

时间:2017-01-04 16:30:21

标签: c# powershell

有没有办法在C#中获取已执行的powershell脚本的文本。

例如:

using (PowerShell powerShellInstance = PowerShell.Create())
{
    Collection<PSObject> result;

    // psScript object is script text loaded from some .ps1 file
    powerShellInstance.AddScript(psScript);

    //parameters object is list of passed parameters
    powerShellInstance.AddParameters(parameters);

    result = powerShellInstance.Invoke();
}

我们可以在上面的代码中的任何地方获取脚本文本,这样我们就可以复制它并尝试直接在powershell中执行它。

编辑:

我的.ps1脚本文件如下所示:

param($CustomerPrimaryO365Domain, $AdminUsername, $AdminPassword, $Domain)
#####################################################################################################################################################################
function Get-CustomerDomain()
#####################################################################################################################################################################
{
    $O365Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $AdminUsername,(ConvertTo-SecureString -AsPlainText -Force -String $AdminPassword)
    Connect-MsolService -Credential $O365Cred
    $tenID=(Get-MSOLPartnerContract -Domain $CustomerPrimaryO365Domain).tenantId.guid
    Get-MsolDomain -DomainName $Domain -TenantId $tenID

}
Import-Module MSOnline
Get-CustomerDomain

但是当它被执行时,它需要看起来像这样:

#####################################################################################################################################################################
function Get-CustomerDomain()
#####################################################################################################################################################################
{
    $O365Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "MyAdmin@test.test",(ConvertTo-SecureString -AsPlainText -Force -String "testpassword")
    Connect-MsolService -Credential $O365Cred
    $tenID=(Get-MSOLPartnerContract -Domain "mydomain.onmicrosoft.com").tenantId.guid
    Get-MsolDomain -DomainName "testdomain.info" -TenantId $tenID

}
Import-Module MSOnline
Get-CustomerDomain

有没有办法获得&#34;执行&#34;来自powerShellInstance对象的脚本。

0 个答案:

没有答案