2015-10-26 47 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" 
    } 

    }