2015-10-26 46 views
-1

我試過尋找這個,但我不認爲我使用的是正確的單詞。Powershell - 爲用戶名指定可變路徑

我正在創建一個需要在許多環境中工作的腳本。其中一個規範是,我需要能夠刪除用戶AppData中的某個目錄。與它的問題,是我不知道如何設置一個動態路徑。

I.e. C:\用戶\用戶1 \ AppData的\本地\ X相比C:\用戶\用戶2 \應用程序數據\本地\ X

如何我會得到和在本地計算機上指定一個系列的用戶賬戶,理想情況下與輪詢AD?

+0

我不確定我是否理解這個問題。你可以在需要使用它的地方顯示相關的代碼嗎? –

+0

@EtanReisner我還沒有什麼,嘿。我正在考慮如何在實際完成之前先寫出來。我有一個Citrix環境。我需要刪除一系列目錄中的文件,但每個目錄都位於不同的用戶文件夾中。除了路徑中的帳戶名稱以外,每個目錄都是相同的。幾乎像帳戶名稱是一個變量,我可以傳遞給刪除線。 – Moridn

+0

你應該嘗試寫點東西。並查找如何格式化/連接字符串/等。在PowerShell中。 –

回答

0

退房的環境變量使用Get-ChildItem像這樣的路徑對本地資源:

Get-ChildItem -Path env: 

這將顯示所有的環境變量和它們的值,而不需要查詢Active Directory,你想爲應用程序數據的一個\本地被稱爲LOCALAPPDATA

要使用一個環境變量的函數的語法$ENV:<Name>這樣使用環境變量LOCALAPPDATA你會用$ENV:LOCALAPPDATA

玩的環境變量,並開始編寫腳本,如果您有其他問題,您可以然後發佈你的腳本,我們可以貢獻一個更具體的答案來幫助你:)

0

從AD獲取用戶名,AD模塊必須安裝在運行查詢的系統上。

#Export to a csv file user names and use it as the source. 
Note that this command will export all users from your AD. 

    Get-ADuser -filter * | select name | Export-Csv c:\users.csv 
    $users = Import-Csv c:\users.csv 

    Foreach ($user in $users.name) { 

    $path = "c:\users\$user\appdata\local\X" 
    if ($(Try { Test-Path $path.trim()} Catch { $false })) { 

     Remove-Item $path -Force -Recurse 
    } 
    Else { 

     write-host "Path not found" 
    } 

    }