2016-10-20 118 views
0

該組織已更改我的「主」服務器位置,並對其進行了配置,以便我無法在%USERPROFILE%\ Documents文件中找到文件。但是,當我啓動PowerShell時,它仍然指向以前的服務器以查找某些重要變量。我該如何改變這一點?如何更改配置文件相關的路徑變量?

PROFILE  \\OLDSERVER\USERS\lit\My Documents\WindowsPowerShell\Microsoft.PowerShell_prof... 
PSCommandPath \\OLDSERVER\USERS\lit\My Documents\WindowsPowerShell\profile.ps1 
PSScriptRoot \\OLDSERVER\USERS\lit\My Documents\WindowsPowerShell 

這是PSVersion 5.0.10586.117在Windows 7

PS H:\My Documents> $profile | get-member -type noteproperty 

Name     MemberType Definition 
----     ---------- ---------- 
AllUsersAllHosts  NoteProperty string AllUsersAllHosts=C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 
AllUsersCurrentHost NoteProperty string AllUsersCurrentHost=C:\Windows\System32\WindowsPowerShell\v1.0\Microso... 
CurrentUserAllHosts NoteProperty string CurrentUserAllHosts=\\OLDSERVER\USERS\lit\My Documents\WindowsPowe... 
CurrentUserCurrentHost NoteProperty string CurrentUserCurrentHost=\\OLDSERVER\USERS\lit\My Documents\WindowsP... 

PS H:\My Documents> "$Env:USERPROFILE, $Env:HOMEPATH" 
C:\Users\lit, \Users\lit 
+0

[參閱about_Automatic_Variables](https://technet.microsoft.com/en-us/library/hh847768 .aspx):'$ PSCommandPath'和'$ PSScriptRoot'在當前正在運行的腳本中定義。什麼說'$ profile | get-member -type noteproperty'? – JosefZ

回答

1

我認爲問題是,PowerShell將生成值超出%USERPROFILE%。 Technet

有一些SO-問題no-solutions-here

但也許可以解決。 有一個

PS > $PROFILE.AllUsersCurrentHost 
C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShellISE_profile.ps1 

也許你可以通過使用$env:USERNAME或加載服務器上的配置文件修改變量。

實施例:
寫入 $PROFILE.CurrentUserCurrentHost += ";\\NEWSERVER\{0}\My Documents\WindowsPowerShell\Microsoft.PowerShell_prof.." -f $env:username 到AllUsersCurrentHost的ISE資料

格爾茨Eldo.Ob

+0

cmd.exe環境中的任何內容(包括%USERPROFILE%)都指的是「OLDSERVER」。 PowerShell從哪裏得到這個?另外,我希望找到一個解決方案,可以爲擁有不同「家庭」服務器的其他人和同事工作。 – lit

+0

'$ env:USERPROFILE'告訴你什麼?或'$ env:HOMEPATH' –

+0

或者你可以在這裏找到你的答案https://technet.microsoft.com/en-us/library/ff730964.aspx - 如果你設置了環境變量 –