Параметр командлета игнорирует переменную в имени строки - PullRequest
0 голосов
/ 25 июня 2019

Я использую массив для хранения имен профилей пользователей.Я пытаюсь выполнить набор команд для каждого профиля, и у меня возникают проблемы с определенными командлетами.Я использую $ profile для хранения имени профиля, но PowerShell не интерпретирует это как хранимую переменную.

, например -DestinationPath C: \ Users \ $ profile \ Desktop \ test.zip

У меня нет проблем с другими командлетами, такими как Get-ChildItem, и я предполагаю, что это связано с тем, что параметры принимают, но я не уверен, как это обойти.

Я думал о сохранении пути в другомпеременная и вызовите это -DestinationPath, но это создает ту же проблему.Я пробовал различные комбинации одинарных / двойных кавычек.

$profilelist = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
$allProfiles = @((dir $profilelist | Get-ItemProperty).profileImagePath | Where-Object { $_ -notlike 'C:\Windows*' })

ForEach ($profile in $allProfiles)
{

$directory = 1
do
{
    New-Item -Path $profile\Desktop\$directory -Type Directory
    $directory
    $directory++

}while($directory-lt 5)

#Create File
Get-ChildItem -Path C:\Users\$profile\Desktop
New-Item -Path *\1\ -Name passwords.txt -Type File

# Write Data
Get-ChildItem -Path C:\Users\$profile\Desktop
Add-Content -Path *\1\passwords.txt -Value "stackoverflow.com: real@fake.com;password123"

# Create ZIP file from files located on Desktop
Get-ChildItem -Path C:\Users\$profile\Desktop
Compress-Archive -Path * -CompressionLevel Optimal -DestinationPath C:\Users\$profile\Desktop\test.zip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...