[解決済み] Powershellで予期しないトークンエラーが発生する
2022-03-14 18:21:48
質問
Windowsサーバーのローカルセキュリティポリシーを変更するスクリプトを作成しています。PowerShellプロンプトでこれらのコマンドを単独で実行すると、問題なく動作します。しかし、スクリプトを実行すると、次のようなメッセージが表示されます。
"Unexpected token 'PasswordComplexity' in expression or statement."
というエラーが発生します。
この問題は、スクリプトが
secedit
コマンドを使用するため
get-content
の行には、編集するファイルがありません。
なぜ
secedit
は実行されないのですか?という質問に対して
secedit
コマンドの外側で
if
ステートメントを使用しても、同じ結果が得られます。
if ($win_ver -match "Server"){
#export current secuirty policy
secedit /export /cfg c:\new.cfg
start-sleep -s 10
#Disable Password Complexity
((get-content c:\new.cfg) -replace (‘PasswordComplexity = 1′, ‘PasswordComplexity = 0′)) | Out-File c:\new.cfg
#Disable password expiration
((get-content c:\new.cfg) -replace (‘MaximumPasswordAge = 42′, ‘MaximumPasswordAge = -1′)) | Out-File c:\new.cfg
#disable minmum password length
((get-content c:\new.cfg) -replace (‘MinimumPasswordLength = 6′, ‘MinimumPasswordLength = 1′)) | Out-File c:\new.cfg
#import new security settings
secedit /configure /db $env:windir\security\new.sdb /cfg c:\new.cfg /areas SECURITYPOLICY
}
解決方法は?
PowerShell の文字列リテラルは、シングルクォートで囲む必要があります。
'...'
:
'string'
またはダブルクォート
"..."
:
"string"
このように
‘
と
′
の文字が無効であるため、置き換える必要があります。
((get-content c:\new.cfg) -replace ('PasswordComplexity = 1', 'PasswordComplexity = 0')) | Out-File c:\new.cfg
また、シングルクォートで囲まれた文字列リテラルは、変数を展開しないことに注意してください。 つまり、これです。
$var = 123
Write-Host "My number: $var"
が出力されます。
My number: 123
一方、これは
$var = 123
Write-Host 'My number: $var'
が出力されます。
My number: $var
関連
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] 現在のPowerShellスクリプトの場所を特定する最良の方法は何ですか?
-
[解決済み] PowerShellでコマンドライン引数を処理する方法
-
[解決済み] PowerShellでスクリプトを終了させる
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み】PowerShellで、ファイルに関数を定義して、PowerShellのコマンドラインから呼び出すにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
What-ifのためのPowershellエラー処理
-
PowerShell 4.0の新コマンドを簡単に紹介します。
-
PowerShellでWin-Serverのパフォーマンスを詳細に監視する方法
-
PowerShellパイプラインチュートリアル(パイプラインの例)
-
Powershellスクリプトの4種類の実行権限についてご紹介します。
-
PowerShellで管理者権限でアプリケーションを起動する方法
-
PowerShellで現在実行中のスクリプトのパスを取得する方法
-
PowerShell正規表現(Regex)の右から左へのマッチング方式のコード例
-
システム上の停止可能な全サービスを取得するPowershell
-
バッチ処理ではなくPowerShellを使おう!