Probe do PowerShell
O PowerShell Probe executa scripts do PowerShell V2 no host do MID Server.
Os scripts do PowerShell são definidos como parâmetros de probe com o nome do arquivo como o nome do parâmetro. Ele está disponível como um tipo de probe Probe, especificando o PowerShell como o tópico da fila do ECC do probe.
Parâmetros de probe do PowerShell
| Nome do parâmetro | Descrição |
|---|---|
| Fonte | [Obrigatório] O host inicial ao qual se conectar. Padrão: nenhum |
<script name>.ps1 |
[Obrigatório] O nome do arquivo do script do PowerShell a ser executado. Substitua <script name> por um prefixo de nome de arquivo válido. Padrão: nenhum |
powershell_command_parameter_passing |
Especifica se parâmetros de script devem ser passados na linha de comando. Independentemente do valor deste parâmetro, ServiceNow disponibiliza automaticamente todos os parâmetros de script na linha de comando para scripts do PowerShell como variáveis de ambiente. Padrão: falso |
| powershell_param_<script parameter name> | Passa parâmetros adicionais para o script do PowerShell a ser executado. Cada parâmetro aparecerá no script como uma variável de ambiente no formato $env:SNC_<script parameter name>. Parâmetros com este prefixo não são considerados criptografados e são passados para o script inalterados. Certifique-se de selecionar o parâmetro apropriado entre powershell_param_<script parameter name> e powershell_<script parameter name>. O uso do prefixo incorreto resulta em erros na execução do PowerShell, que é passado de volta para a instância na entrada da fila do ECC. Padrão: nenhum |
powershell_<script parameter name> |
Passa parâmetros adicionais para o script do PowerShell a ser executado. Cada parâmetro aparecerá no script como uma variável de ambiente no formato $env:SNC_<script parameter name>. O MID Server presume que qualquer parâmetro com este prefixo está criptografado e tenta descriptografá-lo. Certifique-se de selecionar o parâmetro apropriado entre powershell_param_<script parameter name> e powershell_<script parameter name>. O uso do prefixo incorreto resulta em erros na execução do PowerShell, que é passado de volta para a instância na entrada da fila do ECC Padrão: nenhum |
| depurar | Habilita a saída do log de depuração durante o probe. Padrão: falso |
| credenciais_depurar | Exibe um<credentials_debug> seção na fila do ECC, que pode ajudá-lo a solucionar problemas de credenciais. Se você definir esta propriedade como verdadeira, as informações de solução de problemas de credencial serão enviadas para a fila do ECC, mesmo se as credenciais forem bem-sucedidas. Padrão: falso |
Requisitos de script
Todos os scripts personalizados do PowerShell devem usar variáveis de ambiente para passar qualquer parâmetro de linha de comando não booliano. Substitua os parâmetros não boolianos na parte Param() do script por variáveis de script com o mesmo nome. Defina a variável de script como parte do ambiente com um prefixo SNC_. Portanto, um parâmetro de cadeia de caracteres como este:
Param([string]$paramName)Torna-se uma variável de script como a seguinte:
if(test-path env:\SNC_paramName) {
$paramName = $env:SNC_paramName
}Por exemplo, esta definição de parâmetro do script PSScript.ps1 contém vários parâmetros de cadeia de caracteres que precisam ser redefinidos como variáveis de script:
Param([string]$computer, [string]$script, [string]$user, [string]$password, [boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)Definir os parâmetros não boolianos como variáveis de script resultaria neste tipo de script:
Param([boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)
# Copy the environment variables to the params
if(test-path env:\SNC_computer) {
$computer=$env:SNC_computer
}
if(test-path env:\SNC_script) {
$script=$env:SNC_script
}
if(test-path env:\SNC_user) {
$user=$env:SNC_user
$password=$env:SNC_password
}