1

このステートメントは失敗します。

runas /noprofile /env /savecred /user:"Eve" setx path "%path%;D:\Program Files (x86)\metapad36" /M

notepadを変数にロードし、そのnotepad変数を に渡すことにより、 と連携しますrunas

しかしsetx、エラー メッセージは表示されません。コンソールに のヘルプ ファイルが表示されますrunas

どんな助けにも感謝します。

どうも!

アップデート:

これは機能します:

>set myvar=notepad
>echo "%myvar%"
"notepad"

そして、これは機能します:

runas /noprofile /env /savecred /user:Adam "%myvar%"

これはうまくいくようです。「%path%」の値を展開しますが、これで問題ありません。一部のコメントは、runas に渡すコマンドで元の % 変数が必要であると想定していますが、実際の値に展開しても問題ありません。

>set myvar=setx path "%path%;D:\Program Files (x86)\metapad36" /M
>echo "%myvar%"
"setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M"

しかし、これは失敗します:

>runas /noprofile /env /savecred /user:Adam "%myvar%"

アップデート2:

パラメータに存在しないユーザー名を指定してこれを実行すると/user、パスワードの入力を求められます。しかし、実際の管理者ユーザー名で (管理者以外のコマンド プロンプトで) 実行すると、パスワードの入力を求められません。代わりに、不明なウィンドウが点滅して消え、システム パスは変更されません。

>runas /noprofile /env /savecred /user:"Eve" "setx path \"%path%;D:\Program Files (x86)\metapad36\" /M"
Attempting to start setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M as user "DESKTOP-AB0HSLD\Eve" ...
Enter the password for Eve:

>runas /noprofile /env /savecred /user:"Adam" "setx path \"%path%;D:\Program Files (x86)\metapad36\" /M"
Attempting to start setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M as user "DESKTOP-AB0HSLD\Adam" ...

このコードをバッチファイルに入れて実行しました。まだ画面が点滅し、上記と同じ「試行中」の出力が表示されます。

まだかなり混乱しています...

4

1 に答える 1