2015-07-30 28 views
5

içinde ps1 olarak çalışır Çok sayıda iş parçacığı buldum ve bunların içinden geçtim ancak hiçbiri sorunumu gerçekten etkilemedi. Kısa tutmaya çalışıyorum.Komut, ISE'de çalışır ancak Konsolda

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

ISE'den çalıştırırsam gayet iyi çalışır. Kopyala yapıştırdığımda konsola iyi çalışıyor. Ps1'i konsolda çalıştırmayı denediğimde işe yaramaz.

  • Ben
  • Bana yardım edebilir yönetici

olarak hem de çalıştırmak ISE

  • kontrol ettim ve
  • ExecutionPolicy sınırsız olan tek akıtılan her iki çalıştırmak yeniden?

  • +0

    Eğer 'Yeni-PSDrive' bir hata oluyor mu? –

    +0

    Hayır, konsolda el ile çalıştırırsam: 'C: \ temp> Yeni-PSDrive-Açıklama" Gruppen-Laufwerk "-Adı" G "-PSProvider Dosya Sistemi -Kök" \\ domain \ dfs \ domain-location-Share "- Devam ediyor" iyi çalışıyor – Asharon

    +0

    Evet, anladım, ancak komut dosyasını çalıştırdığınızda, bir hata alamıyorsunuz, sadece G: birimi değil, doğru anlaşıldı mı? –

    cevap

    3

    Kullanım -Scope Global, daha fazla bilgi için bu technet makaleyi ziyaret:

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

    [...] Windows PowerShell korur değişkenler, takma adların fonksiyonlar, ve Windows PowerShell sürücülere erişim (PSDrives) adresinin nerede okunabileceğini ve değiştirilebileceğini sınırlandırarak. Kapsam için birkaç basit kuralı uygulayarak, Windows PowerShell, değiştirilmemesi gereken bir öğesini yanlışlıkla değiştirmediğinizden emin olmanıza yardımcı olur. [...]

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

    Evet! Bu eksik olan şeydi. Şimdi iyi çalışıyor - çok teşekkür ederim! – Asharon

    1

    G sürücüsünün eşlenmiş olup olmadığını nasıl kontrol ediyorsunuz? Eğer komut aşağıda çalıştırırsanız sürücü yaratıldı eğer

    , o Get-PSDrive aracılığıyla size göstereceğim:

    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"} 
    

    sadece Windows Gezgini aracılığıyla kontrol ediyoruz, ben bazı komik şeyler ile gerçekleşmesi düşünüyorum orada önbelleğe alma. Komut dosyasını çalıştırdıktan sonra, Computer'a tıklayın, daha sonra sağ bölmede (sürücülerin listelendiği yer) sağ tıklayın ve Refresh; Umarım G sürücüsü şimdi gösterecektir.

    Ayrıca, farklı bir powershell konsolunuz varsa ve push-location g: veya get-psdrive çalıştırarak denetliyorsanız, sürücünün, bu sürücü oluşturulmadan önce oluşturulduğunu kontrol etmek için kullanıyorsanız, listelenmez. . Bunun, powershell'de önbelleğe alınmasından kaynaklandığını farz ediyorum/belki de birbirleriyle etkileşime girerek komut dosyalarının paralel çalışmasını önlemek için kasıtlı mıdır?

    +1

    Çok teşekkürler, ben sadece cevabın bir kısmını yanıt için noktaya kaydettim. Yine de girişiniz için teşekkür ederim, versiyonumu geliştirmek için kullanacağım. – Asharon

    İlgili konular