我遇到了一些我正在編寫的用於創建新Active Directory用戶的腳本的問題。在這一點上,我試圖測試一個預期的帳戶名是否已被使用,以及是否存在具有相同名稱的文件夾。下面是我使用的是什麼樣的一個例子:Powershell TestPath和GetADuser基於當前位置的問題
$UserNameToCheck = 'TTesterson'
$SamTest = $null
$SamTest = Get-ADUser -filter {samAccountName -eq $UserNameToCheck} -Server XX-DC.domain.ca
$PathToTest = '\\FileServer\Users$\' + $UserNameToCheck
$FolderTest = Test-Path $PathToTest
if(($SamTest -eq $null) -and ($FolderTest -eq $false))
{#Set a flag here and do some stuff}
這裏的問題,當我運行我的腳本,除非我設置我的當前位置,我不能針對特定服務器(-server參數)到AD:同樣,我不能得到測試路徑工作,除非我不設置在AD:任何人都能夠解釋爲什麼會發生這種情況,除了不斷設置我的位置和我可以做什麼兩者之間?
謝謝。
(編輯改雙引號來的文件路徑單引號)
一個問題,我可以看到馬上蝙蝠是,你要麼需要逃避你的字符串中的$或者使用單引號代替雙引號當您生成的字符串。 – EBGreen
是嗎?它正在處理一個使用共享名稱中的$字符的共享,並且現在似乎正在使用單引號或雙引號。只要我的當前位置設置爲網絡驅動器或本地驅動器,我可以在寫入網絡資源時點擊它。只有當我的當前目錄是AD時:它失敗了。 這就是說,最佳實踐可能會說,無論它是否正常工作,我都應該正確地構建它,這樣的建議! (heh!) – AtomicReaction