2016-10-29 8 views
1

私はその後、..パラメータを持つPowerShell関数?

Connect-AD -mod 'ActiveDirectory' -cmd 'Get-ADUser,New-ADUser' 

しかし、私は、私は保つ何をすべきかなし母校でこれを呼び出そう

function Connect-AD 
{ 
    Param($mod,$cmd) 
    Write-Host "$mod $cmd" 
    Write-Host "`tConnecting to AD: $DC`n" 
    $ADSession = New-PSsession -ComputerName $DC -Credential $MyCredential 
    Invoke-Command -Command {Import-Module ('$mod') -Cmdlet ('$cmd')} -Session $ADSession 
    Import-PSSession -Session $ADSession -Module ('$mod') -Prefix r | Out-Null 
} 

..私は把握することはできませんPOSHスクリプトが実行されていない持っています

モジュールディレクトリに有効なモジュールファイルが見つからなかったため、指定されたモジュール '$ mod'がロードされませんでした。

関数内のWrite-Hostは、パラメータを正しく出力するので、それほど遠くにあります。ただし、Invoke-CommandまたはImport-PSSessionに渡されていませんか?

私はパラメータなどをエスケープするさまざまな方法を試しましたが、運はありません。

正しくは何をしていませんか?誰でも私を助けることができる?ありがとう。

答えて

7

単一引用符付き文字列は変数を補間しません。'$mod'はリテラル文字列 "dollar m o d"です。

また、コマンド{}が別のコンピュータで実行されているため、パラメータをInvoke-Commandに渡す際に同様の質問をすべて読む必要があります。コンピュータ上の変数$modがどのようなものかをどのように知っていますか?

Passing string $variable to invoke-command scriptblock parameter -name

Powershell: How to pass parameter with invoke-command and -filepath remotely?

Invoke-Command -Command {param($mod, $cmd) Import-Module $mod -Cmdlet $cmd} -Session $ADSession -ArgumentList $mod,$cmd 

ヘルプリンク(利用可能な場合)のようなもの:

関連する問題