Como posso criar uma pasta nos Arquivos de Programas com o UAC na linha de comando?

5

Até agora, sempre desativei o UAC. Agora, gostaria de jogar pelo livro e deixá-lo ligado.

Meu caso de teste está recebendo mkdir c:\program files\foo para funcionar. Quando eu executo (meu usuário é um administrador), eu recebo Access is denied.

Então, faça runas /user:boom\administrator "mkdir c:\program files\foo" , esperando que isso ajude. Eu sou solicitado por uma senha. Eu aperto ENTER e obtenho

RUNAS ERROR: Unable to run - mkdir c:\program files\foo 1327: Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced.

Tudo bem, eu tento configurar uma senha para o usuário administrador. Eu procuro na guia usuários no gerenciador de tarefas ou em contas de usuário - > Gerenciar outra conta e não está lá.

Como devo proceder? Está tentando executar mkdir sob administrador é mesmo o caminho certo? Devo tentar executá-lo no SISTEMA?

Como uma nota lateral, eu também tentei instalar o Sudo para Windows , mas não consegui fazê-lo funcionar, nem consegui encontrar um simples "hello world" tutorial para isso ( Este é o problema que eu corri em ).

Atualizar - OK, encontrei o cmd.exe e cliquei com o botão direito do mouse em "executar como Administartor" e, em seguida, consegui alterar a senha executando um taskmgr privilegiado a partir dela. Ainda assim, quando executo runas /user:administrator "mkdir foo" e digito a senha, recebo o mesmo erro. Este é um novo laptop, não conectado a um domínio, e a senha do administrador não está em branco.

Update 2 - Este é o Win 7 64 bit professional, e eu quero fazer isso tudo a partir da linha de comando. Meu objetivo é criar um script "sudo.bat" simples.

    
por ripper234 01.09.2011 / 13:13

4 respostas

4

Se você fez login é um "administrador", então você deve clicar com o botão direito do mouse em cmd.exe, "Executar como administrador", pressionar "OK" no UAC, e a partir daí o mkdir deve funcionar em Arquivos de Programas sem qualquer outro aviso.

Se você não for um usuário administrador e / ou abrir o cmd no contexto normal do usuário (não como "Administrador"), será negado o acesso a Arquivos de programas (conforme encontrado).

Tem certeza de que o erro que você está recebendo (quando estiver usando uma conta / senha de administrador conhecida) com RunAs é o mesmo erro ("1327: falha de logon: restrição de conta de usuário") e não "2: o sistema não consegue encontrar o arquivo especificado. "?

Porque recebo o erro 2 quando tento executar o RunAs MkDir (como administrador) porque o Mkdir NÃO é um arquivo executável (é um comando do sistema), e isso é tudo que os RunAs podem executar.

Você pode usar o CMD.EXE em combinação com RunAs e, em seguida, alimentá-lo com o comando mkdir. Isso é complicado devido a aspas duplas aninhadas, mas no final você deve ser capaz de usar:

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

A partir de qualquer prompt de comando (administrador ou não) para obter o que você deseja.

(as barras invertidas extras são caracteres de escape)

    
por 01.09.2011 / 17:35
2

A maneira mais fácil é:

  • abra o menu Iniciar

  • digite cmd na pesquisa e pressione Ctrl + Deslocamento + Digite

  • Aceite o prompt do UAC (isso efetivamente é o mesmo que executar su )

  • escreva mkdir "c:\program files\foo"

por 01.09.2011 / 18:08
1

Tente usar o PsExec, do sysinternals. Comando como:

psexec -i -d -s cmd.exe

executaria linha de comando com privilégios de Conta do Sistema.

EDIT: Para que o comando acima funcione, você precisaria de direitos de administrador na (s) máquina (s) de destino. Confirmado que funciona em um ambiente de domínio.

Exemplo: Se eu tivesse uma lista de nomes de máquina ou endereços IP para as máquinas que eu queria criar um diretório chamado "temp1" na unidade C: \, eu incluiria a lista de nomes de máquina / endereços IP em um arquivo chamado "computadores.txt". Então, daquele diretório em que o arquivo de texto existe, eu executaria o seguinte em um prompt de comando.

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

Isso verificará cada computador e tentará se conectar ao computador e criar o diretório.

    
por 01.09.2011 / 14:08
0

No meu caso, tentei esta solução e obtive a resposta. Conforme mencionado no link eu tenho essa resposta.

copy NUL emptyfile.extension

Tente usar isso. Eu também resolvi o problema

    
por 18.09.2017 / 18:32