usando o powershell, como posso verificar se um compartilhamento de arquivo remoto específico está disponível?

0

Meu script Powershell pressupõe que o usuário que está executando o script tenha acesso a um compartilhamento remoto específico em um servidor de arquivos. Caso contrário, desejo que o usuário "mapeie uma unidade de rede" primeiro antes de executar o script.

Como eu faria isso?

    
por zumalifeguard 29.07.2017 / 05:57

2 respostas

0

Não tenho certeza se entendi a pergunta corretamente, mas estou assumindo aqui que estamos verificando aqui se o usuário exigiu o mapeamento de compartilhamento, não se o usuário tiver acesso ao compartilhamento necessário.

Eu percebo que isso não é exatamente responder à sua pergunta, mas eu sugiro uma abordagem diferente.

Você pode tentar mapear o compartilhamento em seu script usando o cmdlet New-PsDrive e, se necessário, solicitando credencial do usuário com Get-Credential

New-PSDrive -Name TestName -PSProvider FileSystem -Root \fileshare.local\share -Credential (Get-Credential)

No final do seu script, desanexe-o usando Remove-PsDrive cmdlet.

O Mapped Share só será visível no contexto do script (não aparecerá no Windows Explorer).

Por fim, você também pode usar esse método para verificar se o compartilhamento está mapeado

    If(Get-PSDrive | Where-Object DisplayRoot -EQ '\fileshare.local\share'){ "Mappped" } else { "Nope" }
    
por 22.08.2017 / 00:59
0

Aqui está o código do PowerShell que fará o que você está procurando.

$connected = $false
try {
  if ((get-item \mycomp1\myshare).Name -eq "myshare") { $connected = $true }
} catch {
}
if (-not($connected)) {
  echo "Please map network drive to \mycomp1\myshare using your domain credentials, and try again"
  exit
}
    
por 29.07.2017 / 05:57