IT PowerShell

PowerShellで特殊文字の$を検索し置換する

更新日:

やりたかったことは

Windowsのローカルグループのメンバー一覧を出力すること

です。

Windowsのローカルグループの中に$が含まれていてPowerShellでnet localgroup ”グループ名”を実行した際に

システム エラー 1376 が発生しました。

となり対象グループのメンバーが取得できなかったのでその解決方法です。

 

PowerShellでは$が特殊文字のためエスケープシーケンスである

「`」バッククォート(Shift+@)を付ける必要があるのですが

今回は$を`$で置換するという方法を取りました。

ソースの該当箇所は以下のような感じです。

 

if($groupName.IndexOf('$')){
$groupName = $groupName.replace("`$","``$")
}

 

メモ

1行目のindexOfでグループ名に$が含まれているかチェック
含まれていたら2行目のreplaceで$を`$に置換して変数に代入
# replaceの()内は("検索文字列","置換文字列")

 

 

-IT, PowerShell

Copyright© Live Free , 2018 All Rights Reserved.