使用PowerShell禁用Installshield的Next按钮

问题描述 投票:0回答:1

我有一个使用PowerShell自定义操作的Installshield项目。在我的一个对话框中,我要求用户输入用户名和密码,然后我验证凭据(使用powershell),我只想在凭据正确的情况下启用Next按钮。

这可以通过powershell动作项来实现吗?我使用PowerShell的原因是我根本不懂InstallScript。

到目前为止,这是我的powershell脚本:

    Function Test-UserCredential { 
    Param($username, $password) 
    Add-Type -AssemblyName System.DirectoryServices.AccountManagement 
    $ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername 
    $opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind 
    $pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct 
    $Result = $pc.ValidateCredentials($username, $password).ToString() 
    $Result 
} 

$comp_username = Get-Property -Name COMPUTER_USERNAME

$comp_password = Get-Property -Name COMPUTER_PASSWORD

$result = Test-UserCredential -username $comp_username -password $comp_password

if ($result)
{
#Enable "Next" button
}

else
{
#Disable "Next" button
}

谢谢。

powershell installshield
1个回答
2
投票

你需要做三件事。

  1. 选择一个属性来跟踪是否应启用“下一步”按钮,并从PowerShell中设置该属性。通常,您将在下一步中将其设置为“1”或“”(空字符串)。
  2. 在对话框编辑器中创建控制条件,启用和禁用引用属性作为条件的“下一步”按钮。
  3. 在PowerShell操作完成后,单独触发UI进行更新。不幸的是,UI在所有属性更改后都没有评估控制条件;只有在它改变了它认为相关的属性之后才会这样做。因此,最简单的方法是添加一个Set Property控件事件来设置属性。

请注意,为了清楚步骤3的相关性,将其拆分为两个单独的属性可能很有用;在powershell中设置一个,在Set Property控件事件中将其反映到另一个中,并具有读取后者的控制条件。

© www.soinside.com 2019 - 2024. All rights reserved.