Montar permanentemente o compartilhamento de rede sem a necessidade de logon? (Janelas)

26

Em um servidor Windows 2008 R2 (padrão), preciso ter uma unidade de rede montada sem ter um usuário específico para fazer logon na máquina primeiro. Mais ou menos como uma NFSmontagem fstabnas máquinas Unix. A unidade de rede será compartilhada por meio de um dispositivo BlackArmor (Seagate) (que presumo executar o Samba). O dispositivo pode ser um membro do domínio, se necessário.

Até agora eu tentei usar Edit Group Policy-> Configuration-> Windows-> Scripts-> Startuponde eu o executei

net use x: \\server\share /user:username password

Sem sucesso. No login, a unidade de rede era vista no Windows Explorer como uma unidade de rede desconectada.

adamo
fonte
1
Você deseja disponibilizá-lo para qualquer pessoa que efetue login nesse servidor ou precisa estar em uma letra de unidade específica para algum serviço do sistema?
sysadmin1138
1
Eu preciso que ele esteja em uma letra de unidade específica para uso por aplicativos executados como um serviço na máquina. Não consigo fazer com que o serviço execute um "uso líquido" na inicialização :(
adamo
Você já tentou editar as configurações de diretiva do computador local e executar o script na inicialização, em Configuração do computador-> Configurações do Windows-> Scripts?
thanosk

Respostas:

22

Aparentemente, isso é possível, de acordo com este post do StackOverflow .

Antes de postar o conteúdo da resposta, no entanto, posso sugerir que você está complicando demais isso?

Em situações como essa, em que algum código de baixa qualidade precisa de um usuário conectado para ser executado (como servidor Domino, resmungo ), criei uma conta de serviço que deve sempre estar conectada em um determinado servidor e configure um script de login automático, para que a máquina efetue login na conta especificada ao reiniciar automaticamente. Eu sugeriria que a solução mais fácil e suportável para o seu problema seria fazer o mesmo e ter a unidade mapeada para esse usuário da conta de serviço pela Diretiva de Grupo ou pelo script de logon.

De qualquer forma, você deve estar determinado a tentar isso sem um contexto de usuário, veja abaixo. É um hack, então use por sua conta e risco e tudo:

Para esse hack, você precisará do SysinternalsSuite de Mark Russinovich: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx

Etapa 1: Abrir um prompt elevado do cmd.exe (Executar como administrador)

Etapa 2: Elevar novamente para fazer o root usando PSExec.exe: Navegue até a pasta que contém o SysinternalsSuite e execute o seguinte comando "psexec -i -s cmd.exe", agora você está dentro de um prompt que é "nt Authority \ system" e você pode provar isso digitando "whoami". O -i é necessário porque os mapeamentos de unidades precisam interagir com o usuário

Etapa 3: Crie a unidade mapeada persistente como a conta SYSTEM com o seguinte comando "net use z: \ servername \ sharedfolder / persistent: yes"

É tão fácil!

AVISO: Você só pode remover esse mapeamento da mesma maneira que o criou da conta SYSTEM. Se você precisar removê-lo, siga as etapas 1 e 2, mas altere o comando na etapa 3 para: "net use z: / delete"

NOTA: A unidade mapeada recém-criada agora será exibida para TODOS os usuários deste sistema, mas será exibida como "Unidade de rede desconectada (Z :)". Não deixe o nome enganar você. Pode alegar estar desconectado, mas funcionará para todos. É assim que você pode dizer que esse hack não é suportado por M $.

Dos comentários:

Para fazê-lo funcionar após uma reinicialização, crie um script contendo apenas net use z: \ servername \ sharedfolder e configure-o para executar na inicialização do computador, por technet.microsoft.com/en-us/library/cc770556.aspx Isso será executado como a conta SYSTEM, portanto, não há necessidade de psexec.

HopelessN00b
fonte
Usando um compartilhamento de rede com nome de usuário e senha, isso não parece funcionar. Eu vejo a "Unidade de rede desconectada", mas não consigo acessar "Nome de usuário e senha errados".
spankmaster79
1
@ spankmaster79 <shrug> Não sabe ao certo por que você receberia esse erro (bloqueio de conta, talvez?), mas se você tiver uma pergunta nova ou relacionada, recomendo fazer essa pergunta no site principal, em vez de comentar aqui .
HopelessN00b
4

crie seu arquivo em lotes, que executa este comando. convertê-lo em um serviço do Windows. faça esse serviço iniciar na inicialização do Windows, e é isso.

Pode ser útil: Como criar um serviço executando um arquivo .bat no Windows 2008 Server?

Farhan
fonte
parece que você aceitou minha palavra literalmente .. Você acha que é necessário um logon para executar o serviço windows? eu fiz um erro erro de digitação, o que eu tenho corrigido
Farhan
2

Você também pode tentar adicionar o Sysinternals Suite ao C: \ SysinternalsSuite

  1. Executar uma cmdjanela elevada
  2. cd c:\sysint*
  3. psexec -i -s cmd.exe
  4. whoami Para se certificar de que você não tem autoridade
  5. net use x: \\PathToDrive ou share /persistent:yes

Ele deve aparecer como uma unidade desconectada e, para montá-lo automaticamente, basta criar um script de inicialização com a etapa 5. Você precisará usar as etapas 1 a 5 para excluir o mapeamento, basta alterar 5 para refletir o uso líquido x: / delete

DzSoundNirvana
fonte
0

Encontrei uma solução para montar permanentemente uma unidade. No entanto, a unidade não é montada em todas as sessões. Eu fiz isso no Windows Server 2019.

Digamos que queremos montar um diretório chamado target_dirlocalizado em target_server. Meu nome de usuário é my_usernamee minha senha my_passwordem um domínio chamado MY_DOMAIN. Vamos montá-lo na T:unidade.

Primeiro, crie um novo arquivo de texto em qualquer lugar (na área de trabalho, por exemplo). Abra-o e analise-o:

@ECHO OFF
net use s: \\target_server\target_dir /persistent:yes

Em seguida, renomeie-o para mount_drive.bate mova esse arquivo para C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup.

Verifique se o arquivo não é mais um .txtarquivo.

Agora, pressione Win+R, digite gpedit.msce execute o Editor de Diretiva de Grupo Local .

Navegue até Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)e clique duas vezes em Startup.
Clique em Add...seguida Browse..., selecione o arquivo que você acabou de mover.

Em seguida, navegue até Computer Configuration\Administrative Templates\System\Logon, defina Always wait for the network at computer startup and logoncomo enabled, salve e feche.

Abra um terminal elevado para salvar suas credenciais. Em seguida, configure o Windows para não desconectar esta unidade após um tempo limite.

cmdkey /add:target_server /user:MY_DOMAIN\my_username /pass:my_password
NET CONFIG SERVER /AUTODISCONNECT:-1

Opcionalmente, você pode verificar se tudo funciona executando C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\mount_drive.bat

Reiniciar

vdsbenoit
fonte