Powershell: 다른 사용자 이름/비밀번호로 네트워크 드라이브를 매핑하는 방법
배경:로컬 컴퓨터의 다음 파워셸 스크립트를 사용하여 일부 네트워크 드라이브를 자동으로 매핑한다고 가정합니다.
$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("p:", "\\papabox\files");
$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("q:", "\\quebecbox\files");
## problem -- this one does not work because my username/password
## is different on romeobox
$net = $(New-Object -ComObject WScript.Network);
$net.MapNetworkDrive("r:", "\\romeobox\files");
질문:로미오박스의 사용자 이름/비밀번호가 다른 두 박스와 다른데, 로미오박스에도 연결할 수 있도록 스크립트를 수정하려면 어떻게 해야 합니까?
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("r:", "\\romeobox\files", $false, "domain\user", "password")
속임수를 쓰려면,
친절함,
댄.
스크립트나 데이터 파일의 일반 텍스트에 암호를 넣지 않고 암호를 저장하는 방법이 필요한 경우 DPAPI를 사용하여 암호를 보호하여 파일에 안전하게 저장했다가 나중에 일반 텍스트로 검색할 수 있습니다.
# Stick password into DPAPI storage once - accessible only by current user
Add-Type -assembly System.Security
$passwordBytes = [System.Text.Encoding]::Unicode.GetBytes("Open Sesame")
$entropy = [byte[]](1,2,3,4,5)
$encrytpedData = [System.Security.Cryptography.ProtectedData]::Protect( `
$passwordBytes, $entropy, 'CurrentUser')
$encrytpedData | Set-Content -enc byte .\password.bin
# Retrieve and decrypted password
$encrytpedData = Get-Content -enc byte .\password.bin
$unencrytpedData = [System.Security.Cryptography.ProtectedData]::Unprotect( `
$encrytpedData, $entropy, 'CurrentUser')
$password = [System.Text.Encoding]::Unicode.GetString($unencrytpedData)
$password
PowerShell을 사용하여 드라이브를 매핑하는 방법을 알아보러 오신 건가요?
PowerShell 3.0에는 더 간단한 방법이 있습니다.New-PSDrive
에 업데이트되었습니다.-persist
선택.예.
New-PSDrive -Name U -PSProvider FileSystem -Root \\yourserver\your\folder -Credential yourdomain\username -Persist
예전에.New-PSDrive
현재 PowerShell 세션에만 영향을 미쳤습니다.-persist
는 매핑이 O/S에 그대로 등록되도록 합니다.새 PS 드라이브 보기
원래 질문에 답하려면 사용된 자격 증명을 변경할 수 있습니다.사용.-Credential
도메인\사용자 이름을 변경하면 Windows에서 암호를 묻는 메시지가 표시됩니다.또 다른 방법은 아래 예와 같이 PSC redential 개체를 전달하는 것입니다.자세한 내용은 Get-Credential을 참조하십시오.
PS C:\> $User = "mydomain\username"
PS C:\> $PWord = ConvertTo-SecureString -String "mypassword" -AsPlainText -Force
PS C:\> $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
PS C:\> New-PSDrive -Name U -PSProvider FileSystem -Root \\domain\some\folder -Credential $Credential -Persist
저는 이 쉬운 라이너가 제 경우에 효과가 있다는 것을 알았습니다. (작은 "공개" 생각 ; )
(시작-프로세스 -파일 경로 "C:\windows\system32")NET.exe" -ArgumentList "USE I: \Server\Volume /USER:XXXX 비밀번호 / persistent:yes" -Wait -Pasthru).종료코드
추가 보너스로 보고할 수 있는 멋진 종료 코드를 얻게 됩니다.도움이 되길 바랍니다.
$User = "user"
$PWord = ConvertTo-SecureString -String "password" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
$net = $(New-Object -ComObject WScript.Network)
$net.MapNetworkDrive("r:", "\\server\share")
powershell native(파워셸 네이티브)를 사용하도록 설정되어 있는 경우(이러한 것이 있는 경우), 다음을 사용할 수 있습니다.
New-SMBMapping -LocalPath "V:" -RemotePath $NetworkPath -UserName $UserAndDomain -Password $pass
참조: https://learn.microsoft.com/en-us/powershell/module/smbshare/new-smbmapping?view=win10-ps
Remove-SMBMapping 등의 추가 너겟이 있습니다.
언급URL : https://stackoverflow.com/questions/1530733/powershell-how-to-map-a-network-drive-with-a-different-username-password
'programing' 카테고리의 다른 글
워드프레스 미디어 업로더에 컨텍스트 추가 (0) | 2023.10.05 |
---|---|
함수 자동 로더 (0) | 2023.10.05 |
원격으로 "이 웹 페이지에 리디렉션 루프가 있습니다" 오류를 유발하는 워드프레스 (0) | 2023.10.05 |
자바스크립트로 배열을 쉽게 자르는 방법? (0) | 2023.10.05 |
jQuery: 비어 있지 않은 데이터 속성을 선택하시겠습니까? (0) | 2023.10.05 |