2015-07-30 12 views
5

Znalazłem wiele wątków i przeszedłem przez nie, ale żaden z nich naprawdę nie rozwiązał mojego problemu. Próbuję to krótko.Polecenia w ISE, ale nie jako ps1 w Console

New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist 

Działa doskonale, jeśli uruchomię go z ISE. Działa dobrze, gdy skopiuję wklej go na konsolę. Nie działa, jeśli spróbuję uruchomić ps1 w konsoli.

  • I ponownym uruchomieniu ISE
  • mam zaznaczone i uruchomić w apartamencie pojedyncze gwintowane
  • ExecutionPolicy jest nieograniczony
  • uruchomić zarówno jako administrator

Czy możesz mi pomóc?

+0

Czy pojawia się błąd z 'New-PSDrive'? –

+0

Nie, jeśli uruchamiam ręcznie w konsoli: 'C: \ temp> Nowy-PSDrive -Opis" Gruppen-Laufwerk "-Nazwa" G "-PSProvider FileSystem -Root" \\ domena \ dfs \ domain-location-Udostępnij "- Persist' działa dobrze – Asharon

+0

Tak, mam to, ale kiedy uruchamiasz skrypt, nie dostajesz błędu, po prostu nie montujesz G: objętość, czy to poprawnie rozumiane? –

Odpowiedz

3

Zastosowanie -Scope Global, aby uzyskać więcej informacji, odwiedź tę technet artykuł:

about_Scopes https://technet.microsoft.com/en-us/library/hh847849.aspx

[...] Windows PowerShell chroni dostęp do zmiennych, aliasów, funkcji i dysków Windows PowerShell (PSDrives) przez ograniczenie, gdzie mogą być przeczytać i zmienić. Dzięki egzekwowaniu kilku prostych reguł dotyczących zakresu, Windows PowerShell pomaga zabezpieczyć przed przypadkową zmianą elementu, którego nie należy zmieniać. [...]

New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist -Scope Global 
+1

Tak! Tego właśnie brakowało. Teraz działa dobrze - dziękuję bardzo! – Asharon

1

W jaki sposób sprawdzasz, czy dysk G jest zmapowany?

Po uruchomieniu poniżej w skrypcie, że pokażę, poprzez Get-PSDrive jeśli został utworzony dysk:

if(Get-PSDrive | ?{$_.Name -eq "G"}) { 
    'Removing G' 
    Remove-PSDrive "G" 
} 


'Adding G' 
New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\ukcconas2edc\ax_docs" –Persist 


'Does G Exist?' 
Get-PSDrive | ?{$_.Name -eq "G"} 

Jeśli jesteś po prostu sprawdzając za pomocą Eksploratora Windows, myślę, że niektóre z zabawnych rzeczy się zdarzają buforowanie tam. Po uruchomieniu skryptu kliknij opcję Computer, a następnie w prawym okienku (gdzie znajdują się dyski) kliknij prawym przyciskiem myszy i wybierz opcję Refresh; miejmy nadzieję, że dysk G zostanie teraz wyświetlony.

Jeśli masz inną konsolę Power Shell i sprawdzasz, uruchamiając push-location g: lub get-psdrive, jeśli sesja, której używasz do sprawdzenia, czy napęd został utworzony przed utworzeniem tego dysku, nie wyświetli go . Zakładam, że wynika to z buforowania w powershell/być może jest celowe, aby uniknąć jednoczesnego interferencji ze skryptami równolegle?

+1

Wielkie dzięki, tylko napisałem część skryptu, aby utrzymać odpowiedź na temat. Dziękuję za twoje uwagi, wykorzystam go do ulepszenia mojej wersji. – Asharon

Powiązane problemy