1
コマンドプロンプトから実行するPowerShellスクリプトがありますが、ServerList.txt
とUrls.txt
のファイルにはCannot find the path error
が表示されます。スクリプトは、スクリプトとファイルが存在するフォルダにディレクトリを変更すると動作します。powershellスクリプトの実行中にcmdでパスエラーが見つかりません
write-host "********* Changing IE Settings********************"
$servers = Get-Content .\ServerList.txt
$Urls = Get-Content .\Urls.txt
$command ={
$registryPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\Domains"
Foreach ($url in $Urls)
{
$checkRegistryPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\" + $url
if(!(Test-Path $checkRegistryPath))
{
write-host "Adding url to local intranet"
if($url -eq "localhost")
{
$key = (get-item HKCU:\).OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains", $true)
$subkey=$key.CreateSubKey('localhost')
$subkey.SetValue("http","1","DWORD")
$subkey.SetValue("https","1","DWORD")
$key.Close()
$subkey.Close()
}
elseif($url -like '*system*')
{
$key = (get-item HKCU:\).OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains", $true)
$subkey = $key.CreateSubKey('//system')
$subkey.SetValue("hcp","1","DWORD")
$key.Close()
$subkey.Close()
}
elseif($url -like '*next.loc*')
{
$key = (get-item HKCU:\).OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains", $true)
$key.CreateSubKey("next.loc")
$serverkey =(get-item HKCU:\).OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\next.loc", $true)
$servername= (([System.Uri]$url).Host).split('.')
$subkey=$serverkey.CreateSubKey($servername[0])
$subkey.SetValue("http","1","DWORD")
$key.Close()
$serverkey.Close()
$subkey.close()
}
}
else
{
write-host $url "url already added to local intranet"
}
}
}
Foreach ($server in $servers)
{
if([string]::IsNullOrEmpty($server))
{
Invoke-Command -ScriptBlock $command
}
else
{
Invoke-Command -Computer $server -ScriptBlock $command
}
}
write-host "****** IE Settings Changed Sucessfully************"
代わりに 'セット - を使用スクリプト内の作業ディレクトリを変更するにはLocation $ scriptPathを使用します。 –
@AnsgarWiechersはい、これもうまくいきますが、スクリプトを実行するときに作業ディレクトリが変更されるのが好きではないので、可能な限り避けようとしていますか? –
真実ですが、これを避ける/緩和するために 'Push-Location'と' Pop-Location'を使うことができます。 –