Позвольте мне объяснить свою ситуацию: у меня работает 2 сервера Windows Server 2019, и на обоих из них установлен IIS v10.
- server1 - IP 192.168.1.54
- server2 - IP 192.168.1.55
оба сервера являются частью рабочей группы.
На Server2 есть несколько веб-сайтов, которые работают на iis и имеют некоторую картинку, которую server1 должен прочитать.
Изображение папки на разрешении Server2 - все под контролем.
И я запускаю сценарий в PowerShell на Server1 следующим образом:
$path = "D:\share_local\test.jpg"
$url = "\\192.168.1.55\share_object\test.jpg"
$username = "192.168.1.55\Administrator"
$password = "P@ssw0rdshare"
$cli_web = new-object System.Net.WebClient
$cli_web.UseDefaultCredentials = $False
$cli_web.Credentials = new-object System.Net.NetworkCredential($username, $password)
$cli_web.DownloadFile( $url, $path )
$data = $cli_web.DownloadString($url)
Я получаю сообщение об ошибке:
Исключение, вызывающее «DownloadFile» с аргументом (-ами) «2»: «Имя пользователя или пароль неверны».
В строке: 9 символов: 1
+ $ cli_web.DownloadFile ($ url, $ path)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: WebException
Исключение, вызывающее «DownloadString» с аргументами «1»: «Имя пользователя или пароль неверны. * 102 8 * "
В строке: 10 символов: 1
+ $ data = $ data.DownloadString ($ url)
+ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: WebException
Я очень уверен, что Пользователь и пароль верны, но все равно отображаются неверные. и я пишу сценарий python, чтобы получить файл для подтверждения того, что пользователь и пароль верны, и он работает нормально, код ниже.
from io import BytesIO
import tempfile
from smb.SMBConnection import SMBConnection
userID = 'Administrator'
password = 'P@ssw0rdshare'
client_machine_name = 'localpcname'
server_name = 'servername'
server_ip = '192.168.1.55'
domain_name = 'domainname'
conn = SMBConnection(userID, password, client_machine_name, server_name, domain=domain_name, use_ntlm_v2=True,
is_direct_tcp=True)
conn.connect(server_ip, 445)
shares = conn.listShares()
attr = conn.getAttributes('share_object', 'test.jpg')
file_obj = BytesIO()
file_attributes, filesize = conn.retrieveFile('share_object', 'test.jpg', file_obj)
with open("test.jpg", "wb") as outfile:
# Copy the BytesIO stream to the output file
outfile.write(file_obj.getbuffer())
print ("download finished")
conn.close()
, однако я должен использовать System. Net .WebClient в. net для моего веб-сайта на iis.
Для обобщения у меня есть вопрос, почему
$cli_web.Credentials = new-object System.Net.NetworkCredential($username, $password)
не работает. Подскажите пожалуйста
Спасибо