CMDとバッチファイルからrunasコマンドを使用して昇格したアクセス許可を取得したいのですが、自分のPCであり、私が唯一のユーザーなので、PCに管理者パスワードがありません。 runasコマンドを使用しようとするたびに、パスワードを要求され、空白のパスワードは許可されないことが通知されますが、これに対処する方法はありますか?右クリックして[管理者として実行]を選択できることはわかっていますが、それができるオプションがあるとは限らないので、少し面倒です。
コマンドプロンプトについてはあまり経験がないので、なんらかの基本的な間違いを犯しているだけかもしれませんが、完全に無知というわけではありません。
これは自宅の環境なので、この回答については少し緊張しません。何を意味するのかを理解するには、私が言及する方針の注記を読む必要があります。
スタートに移動|走れ。タイプsecpol.msc
を入力してEnterキーを押します。 [ローカルポリシー]、[セキュリティオプション]の順に移動します。 アカウント:ローカルアカウントでの空白のパスワードの使用をコンソールログオンのみに制限するというポリシーを見つけます。無効に設定します。
VBScriptを使用してコマンドを昇格できます。
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "", "", "runas", 1
*.vbs
として保存し、cscript
またはwscript
で起動します
SysInternalの PSexec.exe を使用して強制的に昇格できると思います。
たとえば、これを実行してみてください:psexec \\%computername% -i -h notepad.exe
あなたが発見したように、runasでは、別のユーザーとしてのみ、昇格されたコマンドを実行できません。
昇格が必要とマークされている実行可能ファイルを起動しようとすると、昇格が発生し、UACプロンプトが表示されます。これはCreateProcessの単なるオプションではありません。したがって、cmdの昇格されていないコピーを実行していて、別の通常のコマンドを実行したいが昇格させたい場合は、それを実行できるが昇格のマークが付いている間奏コマンドが必要です。現在のディレクトリと環境変数が昇格した子に継承されないという事実により、複雑になります。
私がハミルトンCシェルに含めたsuコマンド(完全な開示:私は作成者です)には、これを解決するSudoオプションがあり、これは私がどのようにしたかです:suに昇格したコマンドを実行するように要求すると、それ自体のコピーが開始されます昇格のマークが付けられているelevate.exeとして保存されます。昇格後、suを使用して共有メモリを介してハンドシェイクし、昇格境界を越えてコマンドライン引数、現在のディレクトリおよび環境を渡し、elevateはコマンドを実行します。
su
ユーティリティを使用できます。 UACを通じて上昇します。あなたはそれをダウンロードすることができます ここ 。
RunAsコマンドを実行する RunAsSpc に遭遇しましたが、暗号化された状態で読み書きできるため、パスワードが公開されません。
著者は、RunAsSpcを使用してこれらの要件が満たされていると述べています