やりたかったことは
Windowsのローカルグループのメンバー一覧を出力すること
です。
Windowsのローカルグループの中に$が含まれていてPowerShellでnet localgroup ”グループ名”を実行した際に
システム エラー 1376 が発生しました。
となり対象グループのメンバーが取得できなかったのでその解決方法です。
PowerShellでは$が特殊文字のためエスケープシーケンスである
「`」バッククォート(Shift+@)を付ける必要があるのですが
今回は$を`$で置換するという方法を取りました。
ソースの該当箇所は以下のような感じです。
if($groupName.IndexOf('$')){
$groupName = $groupName.replace("`$","``$")
}
メモ
1行目のindexOfでグループ名に$が含まれているかチェック
含まれていたら2行目のreplaceで$を`$に置換して変数に代入
# replaceの()内は("検索文字列","置換文字列")