Проблема с функцией вызова функции в PowerShell - PullRequest
0 голосов
/ 06 июня 2019

У меня есть две функции:

  1. CreateComputer-Group
  2. CreateCoomputer-Role

После выполнения первой функции GroupCreated в первой функции используется во второй функции для создания роли компьютера. Как я могу убедиться, что выполнение первой функции завершено, а затем выполняется только вторая функция.

Вот код:

$global:usergroup = "TACACS Admins"
$global:computerrole = "123413-NPARC"
$global:zone = "AWS"
$username = "<>"
$password = "<>"
[String[]] $global:HostServers = 'smp001-01','sl1ps01-13-8'
#[String[]] $global:HostServers = $hostServer.Replace("'","").Split(",")

Import-Module ActiveDirectory
Import-Module Centrify.DirectControl.PowerShell

$Password = ConvertTo-SecureString $password -AsPlainText -Force
$global:Cred = New-Object System.Management.Automation.PSCredential($username, $Password)
Set-CdmCredential -Domain test.com -Credential $Cred

function CreateComputer-Group {
    Param($Cred,$zone,$computerrole)
    try {
        New-ADGroup -Path "ou=Role Groups-Computer,ou=Centrify,ou=Operations,dc=qateradatacloud,dc=com" -Name $computerrole -GroupScope Global -GroupCategory Security -Credential $Cred -ErrorAction Stop
    } catch {
        $ErrorMessage = $_.Exception
        return $ErrorMessage
        break
    }
}

function create-computerRole {
    try {
    $ADGroupName = Get-ADGroup -Identity $computerrole
        Write-Host "********** Get Command Outout *********"
        Write-Host $ADGroupName
        Write-Host $CustomerZone
        Write-Host $computerrole

        $global:Hellow = New-CdmComputerRole -Zone $CustomerZone -Name $computerrole -Group $ADGroupName
        Write-Host $Hellow
    } catch {
        $ErrorMessage = $_.Exception
        return $ErrorMessage
    }
}

Не знаю, почему команда New-CdmComputerRole не показывает такого объекта на сервере.

Вот вывод:

   ********** Get Command Outout *********
CN=123413-NPARC,OU=Role Groups-Computer,OU=Centrify,OU=Operations,DC=qateradatacloud,DC=com
CN=AWS,CN=qateradatacloud,CN=Zones,OU=Centrify,OU=Operations,DC=qateradatacloud,DC=com
123413-NPARC

System.DirectoryServices.DirectoryServicesCOMException (0x80072030): There is no such object on the server.

at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.RefreshCache(String[] propertyNames)
at Centrify.DirectControl.Util.AD.DirectoryEntryEx.RefreshCache(DirectoryEntry de, String[] propertyNames)
at Centrify.DirectControl.Util.ActiveDirectory.Session.GetDirectoryEntryCheckOffline(String domainDcIpNetbios, String dn, String[] propertiesToLoad)
at Centrify.DirectControl.Util.ActiveDirectory.Session.GetDirectoryEntry(String domainDcIpNetbios, String dn, String[] propertiesToLoad)
at Centrify.DirectControl.Util.ActiveDirectory.Session.GetDirectoryEntry(String dn, String[] propertiesToLoad)
at Centrify.DirectControl.PowerShell.Types.CdmAdPrincipal.BindDirectoryEntry(Session session)
at Centrify.DirectControl.PowerShell.Types.CdmAdObject.Bind(Session session)
at Centrify.DirectControl.PowerShell.Commands.NewCdmComputerRole.InnerBeginProcessing()
at Centrify.DirectControl.PowerShell.CmdletBase.BeginProcessing()
at System.Management.Automation.Cmdlet.DoBeginProcessing()
at System.Management.Automation.CommandProcessorBase.DoBegin()

1 Ответ

0 голосов
/ 08 июня 2019

Наконец я разделил весь сценарий на два сценария. Один для создания AG-группы, а другой для всех команд Centrify

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...