我遇到了一個有趣的問題。也許你們好人可以幫助我理解這裏發生的事情。如果有更好的方法,我全都是耳朵。使用期望的狀態配置使用Azure Scale集進行驅動器映射
我正在Azure上運行DSC配置,並希望映射驅動器。我已經讀過這真的不是什麼DSC,但我不知道有任何其他方式使用Azure Scalesets在DSC之外進行此操作。下面是我遇到的問題腳本的一部分:我也試圖將此代碼SetScript部分
Script MappedDrive
{
SetScript =
{
$pass = "passwordhere" | ConvertTo-SecureString -AsPlainText -force
$user = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "username",$pass
New-PSDrive -Name W -PSProvider FileSystem -root \\azurestorage.file.core.windows.net\storage -Credential $user -Persist
}
TestScript =
{
Test-Path -path "W:"
}
GetScript =
{
$hashresults = @{}
$hashresults['Exists'] = test-path W:
}
}
:
(New-Object -ComObject WScript.Network).MapNetworkDrive('W:','\\azurestorage.file.core.windows.net\storage',$true,'username','passwordhere')
我也試過一個簡單的net use命令映射驅動器而不是花哨的,New-Object或New-PSDrive cmdlet。同樣的行爲。
如果我運行這些命令(新對象/ Net Use/New-PSDrive)手動,如果我使用單獨的驅動器號運行驅動器,機器將映射驅動器。不知何故,驅動器試圖被映射,但沒有映射。
疑難解答我做:
- 沒有在我的環境沒有域。我只是試圖創建一個比例集並運行DSC來使用創建存儲帳戶時授予的存儲帳戶憑據來配置機器。
- 我正在使用由存儲帳戶用戶ID和訪問密鑰(隨機生成的密鑰,通常以存儲帳戶的名稱作爲用戶)給予我的用戶名和密碼。
- Azure在運行DSC模塊時沒有錯誤(事件日誌中沒有錯誤,僅供參考 - 資源執行序列正確列出了DSC文件中的所有序列。)
- 當我登錄到機器並檢查如果驅動器被映射,我會遇到我想要的驅動器號(W :)上斷開的網絡驅動器。
- 如果我打開Powershell,我收到一個錯誤:「嘗試對'FileSystem'提供程序執行InitializeDefaultDrives操作失敗。」
- 如果我運行「Get-PSDrive」,W:驅動器不會出現。
- 如果我在Powershell控制檯內手動運行SetScript代碼,映射的驅動器在另一個驅動器號下工作正常。
- 如果我嘗試斷開W:驅動器,我收到「此網絡連接不存在」。
- 我想也許DSC需要一些時間在映射之前添加一個睡眠定時器,但這並不奏效。同樣的行爲。
請記住,這不是一個標準份額。這個共享是使用Azure共享文件存儲構建的。共享是使用Azure門戶和/或使用Powershell cmdlet創建的。您不會像Windows服務器上的普通共享那樣修改用戶權限。 – 227Passive
我從來沒有在我的答案的任何地方說過修改任何權限,請在評論之前閱讀。 @ 227Passive – 4c74356b41