PowerShell module Invoke-Command

Multi tool use
I created a PowerShell module with function userToBla
:
function userToBla
{
[CmdletBinding()]
[Alias()]
[OutputType([int])]
Param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
$User
)
Begin
{
$username = "testtest"
$password = "XXXXXXXXX"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$serverCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
}
Process
{
Invoke-Command -Credential $serverCredential -ComputerName server1 -ArgumentList $user, $targetAddress -ScriptBlock {
param ($email,
$temail)
Import-Module ActiveDirectory
Get-ADUser -filter {(mail -eq $email)} | Set-ADUser -Replace @{postalCode = ($temail)}
$status = $movestatus.status
}
End
{
}
}
When I import the module and run userToBla -user test
the invoke-command
will not execute on server1 (it looks like its trying to execute the scriptblock on the local system):
Import-Module : The specified module 'ActiveDirectory' was not loaded because no valid module file was found in any module directory.
Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program.
-Credential : The term '-Credential' is not recognized as the name of a cmdlet, function, script file, or operable program.
If I run the invoke-command
from the PowerShell console it works without any problems.
powershell
add a comment |
I created a PowerShell module with function userToBla
:
function userToBla
{
[CmdletBinding()]
[Alias()]
[OutputType([int])]
Param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
$User
)
Begin
{
$username = "testtest"
$password = "XXXXXXXXX"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$serverCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
}
Process
{
Invoke-Command -Credential $serverCredential -ComputerName server1 -ArgumentList $user, $targetAddress -ScriptBlock {
param ($email,
$temail)
Import-Module ActiveDirectory
Get-ADUser -filter {(mail -eq $email)} | Set-ADUser -Replace @{postalCode = ($temail)}
$status = $movestatus.status
}
End
{
}
}
When I import the module and run userToBla -user test
the invoke-command
will not execute on server1 (it looks like its trying to execute the scriptblock on the local system):
Import-Module : The specified module 'ActiveDirectory' was not loaded because no valid module file was found in any module directory.
Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program.
-Credential : The term '-Credential' is not recognized as the name of a cmdlet, function, script file, or operable program.
If I run the invoke-command
from the PowerShell console it works without any problems.
powershell
1
TheInvoke-Command
call isn't the one that's failing. TheImport-Module
is.
– Thomas Stringer
Aug 24 '15 at 13:36
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your$serverCredential
set?
– Luke
Aug 24 '15 at 13:43
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
1
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16
add a comment |
I created a PowerShell module with function userToBla
:
function userToBla
{
[CmdletBinding()]
[Alias()]
[OutputType([int])]
Param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
$User
)
Begin
{
$username = "testtest"
$password = "XXXXXXXXX"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$serverCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
}
Process
{
Invoke-Command -Credential $serverCredential -ComputerName server1 -ArgumentList $user, $targetAddress -ScriptBlock {
param ($email,
$temail)
Import-Module ActiveDirectory
Get-ADUser -filter {(mail -eq $email)} | Set-ADUser -Replace @{postalCode = ($temail)}
$status = $movestatus.status
}
End
{
}
}
When I import the module and run userToBla -user test
the invoke-command
will not execute on server1 (it looks like its trying to execute the scriptblock on the local system):
Import-Module : The specified module 'ActiveDirectory' was not loaded because no valid module file was found in any module directory.
Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program.
-Credential : The term '-Credential' is not recognized as the name of a cmdlet, function, script file, or operable program.
If I run the invoke-command
from the PowerShell console it works without any problems.
powershell
I created a PowerShell module with function userToBla
:
function userToBla
{
[CmdletBinding()]
[Alias()]
[OutputType([int])]
Param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
$User
)
Begin
{
$username = "testtest"
$password = "XXXXXXXXX"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$serverCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
}
Process
{
Invoke-Command -Credential $serverCredential -ComputerName server1 -ArgumentList $user, $targetAddress -ScriptBlock {
param ($email,
$temail)
Import-Module ActiveDirectory
Get-ADUser -filter {(mail -eq $email)} | Set-ADUser -Replace @{postalCode = ($temail)}
$status = $movestatus.status
}
End
{
}
}
When I import the module and run userToBla -user test
the invoke-command
will not execute on server1 (it looks like its trying to execute the scriptblock on the local system):
Import-Module : The specified module 'ActiveDirectory' was not loaded because no valid module file was found in any module directory.
Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable program.
-Credential : The term '-Credential' is not recognized as the name of a cmdlet, function, script file, or operable program.
If I run the invoke-command
from the PowerShell console it works without any problems.
powershell
powershell
edited Dec 30 '18 at 0:18


Peter Mortensen
13.6k1984111
13.6k1984111
asked Aug 24 '15 at 12:52
abc123abc123
112
112
1
TheInvoke-Command
call isn't the one that's failing. TheImport-Module
is.
– Thomas Stringer
Aug 24 '15 at 13:36
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your$serverCredential
set?
– Luke
Aug 24 '15 at 13:43
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
1
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16
add a comment |
1
TheInvoke-Command
call isn't the one that's failing. TheImport-Module
is.
– Thomas Stringer
Aug 24 '15 at 13:36
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your$serverCredential
set?
– Luke
Aug 24 '15 at 13:43
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
1
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16
1
1
The
Invoke-Command
call isn't the one that's failing. The Import-Module
is.– Thomas Stringer
Aug 24 '15 at 13:36
The
Invoke-Command
call isn't the one that's failing. The Import-Module
is.– Thomas Stringer
Aug 24 '15 at 13:36
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your
$serverCredential
set?– Luke
Aug 24 '15 at 13:43
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your
$serverCredential
set?– Luke
Aug 24 '15 at 13:43
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
1
1
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32182829%2fpowershell-module-invoke-command%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32182829%2fpowershell-module-invoke-command%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
YPP6UYDtfqWZPH6qwWA0 aE9i5k2AA5y,A qKMvpaIyeM bDFNP
1
The
Invoke-Command
call isn't the one that's failing. TheImport-Module
is.– Thomas Stringer
Aug 24 '15 at 13:36
I agree do you have the Active Directory module installed on the server you are trying to Invoke? also where is your
$serverCredential
set?– Luke
Aug 24 '15 at 13:43
thanks for the comments. ActiveDirectory module is installed on the server (running only the invoke-command works). I forgot to add $serverCredential code
– abc123
Aug 24 '15 at 13:48
1
Usually this happens because the powershell being invoked is not 64bit. Most of the server modules are not available in a 32bit shell.
– Eris
Aug 24 '15 at 16:16