【问题标题】:Powershell - Specifying variable path for usernamesPowershell - 为用户名指定变量路径
【发布时间】:2015-10-26 21:30:52
【问题描述】:

我已尝试搜索此内容,但我认为我使用的单词不正确。

我正在创建一个需要在许多环境中工作的脚本。其中一项规范是,我需要能够删除用户 AppData 中的某个目录。问题在于,我不知道如何设置动态路径。

C:\Users\User1\AppData\Local\XC:\Users\User2\AppData\Local\X

相比

如何在本地机器上获取和指定一系列用户帐户,最好不要轮询 AD?

【问题讨论】:

  • 我不确定我是否理解这个问题。可以在需要用到的地方展示相关代码吗?
  • @EtanReisner 我还没有任何东西,呵呵。我正在考虑如何在实际执行之前将其写出来。我有一个 citrix 环境。我需要删除一系列目录中的文件,但每个目录都位于不同的用户文件夹中。除了路径中的帐户名称外,每个目录都是相同的。几乎就像帐户名称是我可以传递给删除行的变量一样。
  • 你应该试着写点东西。并查找如何格式化/连接字符串/等。在 powershell 中。

标签: powershell path accounts


【解决方案1】:

使用Get-ChildItem 查看本地资源路径的环境变量,如下所示:

Get-ChildItem -Path env:

这将显示所有环境变量及其值,而无需查询 Active Directory,您想要的 AppData\Local 名为 LOCALAPPDATA

要在函数中使用环境变量,语法是$ENV:<Name>,因此要使用LOCALAPPDATA 的环境变量,您可以使用$ENV:LOCALAPPDATA

玩转环境变量并开始编写脚本,如果您还有其他问题,可以发布您的脚本,我们可以提供更具体的答案来帮助您:)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      相关资源
      最近更新 更多