Как заставить текущий скрипт считывать имена компьютеров из txt-файла, расположенного на c: \ - PullRequest
0 голосов
/ 19 декабря 2018

У меня в данный момент работает этот скрипт, но он может работать только локально, я хотел бы, чтобы он прочитал текстовый файл, который будет храниться в c: \ List_of_PCs.txt, с именами компьютеров, которые он также будет запускатьтот же сценарий включен.Таким образом, я могу обновить текстовый файл вместо изменения кода.

Set-ExecutionPolicy RemoteSigned

# Get all users 
$users = Get-ChildItem -Path "C:\Users"

# Loop through users and delete the Teams file
$users | ForEach-Object {
Remove-Item -Path "C:\Users\$($_.Name)\AppData\Roaming\Microsoft\Teams\Cache\f*" -Force 
Remove-Item -Path "C:\Users\$($_.Name)\AppData\Roaming\Microsoft\Teams\Application Cache\Cache\f*" -Force 
}

Любая помощь по этому вопросу, я пробовал разные вещи в разные стороны, я уверен, что это что-то простое, но я все еще очень плохо знаком с PowerShell.

1 Ответ

0 голосов
/ 19 декабря 2018

Попробуйте что-то вроде этого ...

Требуется включить удаленное взаимодействие PowerShell и использовать учетную запись, которая является администратором на удаленном компьютере

$ComputerList = Import-Csv -Path 'c:\List_of_PCs.txt'


$ComputerList | % { 
        Invoke-Command -ComputerName $_ -ScriptBlock {
        # Set-ExecutionPolicy RemoteSigned # this is something that should be set via GPO for all systems, not your script, so that it is centrally controlled and monitored.

        # Get all users 
        $users = Get-ChildItem -Path "C:\Users"

        # Loop through users and delete the Teams file
        $users | ForEach-Object {
        Remove-Item -Path "C:\Users\$($_.Name)\AppData\Roaming\Microsoft\Teams\Cache\f*" -Force 
        Remove-Item -Path "C:\Users\$($_.Name)\AppData\Roaming\Microsoft\Teams\Application Cache\Cache\f*" -Force 
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...