Как проверить и создать общий (скрытый) каталог администратора? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть несколько файловых серверов, которые я хочу создать путь, если он не существует ... Просто так? Я так и думал, НО путь идет по скрытому общему ресурсу администратора.

Как раз тогда, когда я думаю, что прилично в написании сценариев, простая проблема выводит из меня $ h # @ $ # @ ...

Вот код, который я вычеркнул:

Cls
#check for fileshare
$servers = get-content C:\Temp\test.txt

forEach ($server in $servers) {
$shareTest = Test-Path "\\$Server\Share$\Test"

if($shareTest){
Write-Host "Path Exists on $server"
}
Else{
New-Item -Path "\\$Server\Share$\" -Name Test -ItemType Directory

Write-Host "Path Exists on $server"
}
}

Я получаю сообщение об ошибке:

New-Item: Путь не имеет юридической формы. В строке: 5 символов: 7

Предположительно, это потому, что в пути есть $. Я не уверен, как избежать этого, или что-то вуду, что мне нужно сделать, чтобы заставить его работать ...

Это всплывало пару раз в разных сценариях, и я хотел бы отключить его, прежде чем истекать кровью out ...

Спасибо, банда.

1 Ответ

1 голос
/ 06 апреля 2020

Я сталкивался с нечетными ситуациями, когда '$' интерпретировался странным образом через расширение переменной. Вы можете обойти это, когда проблематично c с помощью строкового токенизации:

$server = 'hiyo'
'\\{0}\{1}' -f $server, 'share$'
...