Криптофрагмент белый список Spotify
Я пытаюсь выполнить этот код:
$username = "$env:username"
"C:\Program Files (x86)\Foolish IT\CryptoPrevent\cryptoprevent.exe" /apply /appdata /silent /a=C:\Users\$username\AppData\Roaming\Spotify\spotify.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spwebinst0.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spotifylauncher.exe
Однако командная строка Cryptoprevent не может распознать переменную. Запуск вышеуказанных команд белых списков. c:\users\$username\appdata ....
Мне нужно получить текущего вошедшего в систему пользователя, а затем собрать код с фактическим именем пользователя, уже имеющимся в команде, и затем выполнить его.
2 ответа
Powershell не расширяет переменную, поскольку не рассматривает эту часть вашей команды как строку.
Ты можешь использовать Start-Process
с ArgumentList
чтобы это произошло:
Start-Process "C:\Program Files (x86)\Foolish IT\CryptoPrevent\cryptoprevent.exe" -ArgumentList "/apply","/appdata","/silent","/a=C:\Users\$username\AppData\Roaming\Spotify\spotify.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spwebinst0.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spotifylauncher.exe"
я хотел бы использовать $env:appdata
прямо как это C:\Users\USER\AppData\Roaming
папка.
$CryptoPreventPath = "C:\Program Files (x86)\Foolish IT\CryptoPrevent\cryptoprevent.exe"
$args = @(
"/apply",
"/appdata",
"/silent",
"/a=$env:appdata\Spotify\spotify.exe,/a=$env:appdata\Spotify\spwebinst0.exe,/a=$env:appdata\Spotify\spotifylauncher.exe"
)
Start-Process $CryptoPreventPath -ArgumentList $args
Для выполнения внешней программы (или любой другой команды), чье имя или путь:
заключены в одинарные или двойные кавычки
или хранится в переменной
ты должен использовать &
, оператор вызова, чтобы вызвать его.
Следовательно:
$username = $env:username
& "C:\Program Files (x86)\Foolish IT\CryptoPrevent\cryptoprevent.exe" /apply /appdata /silent /a=C:\Users\$username\AppData\Roaming\Spotify\spotify.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spwebinst0.exe,/a=C:\Users\$username\AppData\Roaming\Spotify\spotifylauncher.exe
Несколько в сторону:
Там нет причин, чтобы приложить
$env:username
в"..."
; кроме того, вы могли бы просто ссылаться$env:username
прямо в вашей команде.Идя дальше, как отмечает James C.., вы можете заменить
C:\Users\$username\AppData\Roaming
с просто$env:APPDATA
,