web-dev-qa-db-ja.com

コマンドラインからUACをオンにしてProgramFilesにフォルダを作成するにはどうすればよいですか?

これまで、私は常にUACを無効にしてきました。さて、本を読んでそのままにしておきたいと思います。

私のテストケースはmkdir c:\program files\fooを機能させることです。それを実行すると(私のユーザーは管理者です)、Access is denied.を取得します

だから、これが役立つことを願って、runas /user:boom\administrator "mkdir c:\program files\foo"を実行してください。パスワードの入力を求められます。 ENTERを押して、

RUNASエラー:実行できません-mkdir c:\ program files\foo 1327:ログオンに失敗しました:ユーザーアカウントの制限。考えられる理由は、空白のパスワードが許可されていない、ログオン時間の制限、またはポリシーの制限が適用されていることです。

管理者ユーザーのパスワードを設定しようとしています。タスクマネージャーの[ユーザー]タブまたは[ユーザーアカウント]-> [別のアカウントの管理]で検索しましたが、表示されません。

どうすればよいですか?管理者の下でmkdirを実行しようとするのは正しい道ですか? SYSTEMで実行する必要がありますか?

ちなみに、 Sudo for Windows もインストールしようとしましたが、動作させることができず、簡単な「helloworld」チュートリアルも見つかりませんでした( これは私が遭遇した問題 )。

Update-OK、cmd.exeを見つけて「管理者として実行」を右クリックし、特権taskmgrを実行してパスワードを変更できました。それから。それでも、runas /user:administrator "mkdir foo"を実行してパスワードを入力すると、同じエラーが発生します。これは新しいラップトップであり、ドメインに接続されておらず、管理者パスワードは空白ではありません。

アップデート2-これはWin 7 64ビットプロフェッショナルであり、これをすべてコマンドラインから実行したいと思います。私の目標は、単純な「Sudo.bat」スクリプトを作成することです。

5
ripper234

ログインしたアカウントが「管理者」の場合は、cmd.exeを右クリックし、[管理者として実行]をクリックして、UACに対して[OK]をクリックすると、そこからmkdirがProgramFilesで機能するようになります。 。

管理者ユーザーでない場合、および/または通常のユーザーコンテキスト(「管理者として」ではない)でcmdを開くと、(見つけたように)ProgramFilesへのアクセスが拒否されます。

RunAsで発生するエラー(既知の管理者アカウント/パスワードを正常に使用した後)は、「2:システムが見つかりません」ではなく、同じエラー(「1327:ログオン失敗:ユーザーアカウント制限」)であると確信していますか?ファイルが指定されました。」?

RunAs MkDirを(管理者として)実行しようとするとエラー2が発生するため、Mkdirは実行可能ファイルではなく(システムコマンドです)、RunAsを起動できるのはこれだけです。

CMD.EXEをRunAsと組み合わせて使用​​し、mkdirコマンドを入力できます。これは、二重引用符がネストされているため注意が必要ですが、最終的には次のものを使用できるはずです。

runas /user:administrator "cmd /C \"mkdir \"c:\\program files\\foo\"\""

任意のコマンドから(管理者かどうかに関係なく)必要なものを実行するように求めます。

(余分な円記号はエスケープ文字です)

4

最も簡単な方法は次のとおりです。

  • スタートメニューを開く

  • 検索にcmdと入力し、を押します Ctrl+Shift+Enter

  • UACプロンプトを受け入れます(これは事実上、suを実行するのと同じです)

  • タイプmkdir "c:\program files\foo"

2
Jeff F.

SysinternalsのPsExecを使用してみてください。次のようなコマンド:

psexec -i -d -s cmd.exe

システムアカウント権限でコマンドラインを実行します。

編集:上記のコマンドを機能させるには、ターゲットマシンの管理者権限が必要です。ドメイン環境で動作することを確認しました。

例:C:\ドライブに「temp1」というディレクトリを作成したいマシンのマシン名またはIPアドレスのリストがある場合、「computers」というファイルにマシン名/ IPアドレスのリストを含めます。 。txt "。次に、テキストファイルが存在するディレクトリから、コマンドプロンプトから次のコマンドを実行します。

psexec -i -d -s @computers.txt cmd /c "mkdir c:\temp1"

これにより、各コンピューターがチェックされ、コンピューターへの接続が試行されてから、ディレクトリが作成されます。

1
mcmajk3l

私の場合、私はこの解決策を試し、答えを得ました。 リンク で述べたように私はこの答えを得ました。

nULemptyfile.extensionをコピーします

これを使ってみてください。私も問題を解決しました

0
Vaibhav Mandlik