I'm writing some powershell to talk to the AWS API, in a single module. I have written one function, `Get-CloudFormation`, which returns the status of a CloudFormation. I've written another function, `Delete-CloudFormation`, which after firing off a delete-CF API request, *tries* to start a job which polls the status of the CloudFormation using my `Get-CloudFormation`.

I call `Export-ModuleMember` on `Get-CloudFormation` (but not `Delete-CloudFormation`; that's a private function). `Get-CloudFormation` is defined earlier in the module-file than `Delete-CloudFormation`.

My `Start-Job` call (inside `Delete-CloudFormation`) looks like:

```
$job = Start-Job -Name "CloudFormationWaitForDeleteSuccess" -ScriptBlock {
    $status = ""
    $time = 0
    while($status -ne "DELETE_COMPLETE") {
        Write-Verbose ("Checking CloudFormation status")
        $stack = Get-CloudFormation -accessKey $accessKey -secretKey $secretKey -stackName $stackName
        $status = $stack.Status
        Start-Sleep -seconds 10
        $time += 10
    }
    Write-Host "CloudFormation delete-complete after $time seconds $stackName"
}

```

When `Delete-CloudFormation` runs, I get an exception:

```
The term 'Get-CloudFormation' is not recognized as the name of a cmdlet, 
function, script file, or operable program. Check the spelling of the 
name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo          : ObjectNotFound: (Get-CloudFormation:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

```

Why? And how do I fix it?

I found [7152090](https://stackoverflow.com/questions/7162090/how-do-i-start-a-job-of-a-function-i-just-defined "7162090") which I think is similar, but calling `Start-Job` with `-InitializationScript { Get-CloudFormation }` gives roughly the same error.

If I call Start-Job with `-InitializationScript { Import-Module ".\awsutils.psm1" }` then `.` is my profile's documents directory. Even if I bind a variable to `Get-Location` outside the `Start-Job` and call it like `-InitializationScript { Import-Module "$location\awsutils.psm1" }`.