お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
言語::PowerShell

InterfaceDescriptionの取り方(Get-NetAdapterだけでは見切れる)

Get-NetAdapter | Format-List -Property Name,InterfaceDescription

Shell Scriptとは思想が違うためif ('Up' -eq ($adaptor | Format-List -Property status))では上手くいかない

while ($true) {
    $adaptor=Get-NetAdapter -InterfaceDescription "Intel(R) Ethernet Connection XXX" -ErrorAction SilentlyContinue
    if ($adaptor -eq $null) {
        Write-Host 'イーサネット3のStatus: UPを待機しています...'
        Start-Sleep -Seconds 5
    } else if ('Up' -eq $adaptor.status) {
        Write-Host 'イーサネット3の疎通が確認できたため、Hogeを起動します...'
        Start-Process -FilePath 'C:/path/to/Hoge.exe'
        break
    } else {
        Write-Host 'イーサネット3のStatus: UPを待機しています...'
        Start-Sleep -Seconds 5
    }
}

runasでは上手く出来ないっぽいのでPowerShellを呼んで実行する。管理者実行したいコマンドを分けたい時に活用できる。

確認環境

Env Ver
Windows 11 Pro 22621.1413

サンプルコード

powershell start-process <ここにコマンド> -verb runas

備考

PowerShellのリファレンスに沿って書くなら大文字小文字を書き分ける方がより正しいが、基本的に大文字と小文字を区別しないため、どっちでも動く。

powershell Start-Process <ここにコマンド> -Verb runAs