Program PowerShell nie może utworzyć folderu podczas montowania w sieci

1

Utworzyłem dysk z literą Z: i udostępniłem go, aby ścieżka sieciowa była: \\GOELA2682012SRV\srv2012r2

Chcę teraz utworzyć tam folder za pomocą programu PowerShell.

To nie działa: New-Item -Path "\\GOELA2682012SRV\srv2012r2\Users\test" -ItemType Directory

Chociaż to działa: New-Item -Path "Z:\Users\test" -ItemType Directory

Czemu?

PoTTii
źródło
Czy mkdir \\GOELA2682012SRV\srv2012r2\Users\testdziała w cmd.exe?
grawitacja
Tak, robi @grawity
PoTTii
Czy przygotowanie FileSystem::do ścieżki UNC działa? FileSystem::\\GOELA2682012SRV\srv2012r2\Users\test
FastEthernet

Odpowiedzi:

4

Spróbuj przejść FileSystem::do ścieżki UNC, aby się stałoFileSystem::\\GOELA2682012SRV\srv2012r2\Users\test

Zachowanie programu PowerShell może być trochę zabawne, gdy przekazujesz ścieżkę UNC do niektórych poleceń cmdlet. PowerShell nie rozpoznaje tych ścieżek jako „zrootowanych”, ponieważ nie są one na PSDrive; jako taki, niezależnie od dostawcy powiązanego z bieżącą lokalizacją PowerShell, spróbuje je obsłużyć. Na przykład:

Set-Location C:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

Set-Location HKLM:
Get-ChildItem -Path \\$env:COMPUTERNAME\c$

Pierwsze polecenie działa poprawnie (zakładając, że masz włączony udział AC $ i masz dostęp do niego), a drugie polecenie powoduje błąd „Nie można znaleźć ścieżki”, ponieważ dostawca rejestru próbował pracować ze ścieżką UNC zamiast dostawcy FileSystem . Możesz obejść ten problem, poprzedzając ścieżkę UNC słowem „FileSystem ::”, co spowoduje, że PowerShell będzie korzystał z tego dostawcy niezależnie od bieżącej lokalizacji.

PowerShell Gotcha: ścieżki i dostawcy UNC

FastEthernet
źródło
To szalone ... działało dla mnie.
Alex K
Uratowałem mi życie - wywołanie skryptu PowerShell z agenta SQL, który z kolei użył importowanego polecenia cmdlet. To było rozwiązanie.
Nate Anderson,