9

そのため、変更するアクセス権がない update-name という名前のコマンドレットがあります。

update-name (コマンドレットと同じ名前) という名前の関数を作成しました。同じ名前の関数からコマンドレットを呼び出すにはどうすればよいですか?

私はいくつかのことを試しましたが、どれもうまくいかないようです。

function update-name {
param([string] something)
  #call cmdlet update-name here
}

関数だけの場合は、次の方法があります。

$unBackup = 'DefaultUpdateName'
if(!(Test-Path Function:\$unBackup)) {
    Rename-Item Function:\Update-Name $unBackup
}

function update-name {
  & $unName
}

残念ながら、それが CmdLet の場合は機能しません。

4

3 に答える 3

13

コマンドレットのモジュール名を指定して、名前を明確にします。

PS> Get-Command Start-Process | Format-Table ModuleName

ModuleName
----------
Microsoft.PowerShell.Management

PS> Microsoft.PowerShell.Management\Start-Process Notepad
于 2011-04-05T19:26:56.450 に答える
6

これでもうまくいきます - Keith Dahlby に感謝します! http://twitter.com/dahlbyk/status/55341994817503232

$unName=Get-Command 'Update-Name' -CommandType Cmdlet;

function update-name {
  & $unName
}
于 2011-04-05T19:38:12.780 に答える
1
于 2011-04-05T18:57:57.947 に答える