IIS マネージャーを呼び出す単純なエイリアス「iis」を作成するつもりでしたが、これは「C:\Windows\System32\inetsrv\InetMgr.exe」です。
set-alias iis "OpenIIS.ps1"
そして私が持っているOpenIIS.ps1で
$item = "C:\Windows\system32\inetsrv\InetMgr.exe"
invoke-item -path $item
これはうまくいきません。私が得るエラーは「システムは指定されたファイルを見つけることができません」です
実際、inetsrv で Get-ChildItem を実行するだけでは、InetMgr.exe は表示されません (-Force スイッチとの違いはありません)。
Get-ChildItem C:\Windows\system32\inetsrv\*.exe -force
明らかに、エクスプローラーで表示でき、cmd を使用して起動できますが、Powershell では起動できないようです。また、Powershell は管理者として実行されています。
何が起こっている?
回避策として、ファイルへのリンクを作成し、Powershell からそのリンクを呼び出してみました。「NotSpecified」Win32Exception が発生するようになりました。
私はもともと 64 ビットの Powershell を使用していましたが、x86 Powershell でも同じ結果が得られました (両方とも管理者として実行)。