首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SMB共享映射用New-SmbGlobalMapping创建,用于在windows server 1803上重新启动后未恢复的停靠容器

SMB共享映射用New-SmbGlobalMapping创建,用于在windows server 1803上重新启动后未恢复的停靠容器
EN

Stack Overflow用户
提问于 2018-05-18 16:12:54
回答 2查看 8.1K关注 0票数 7

我正在尝试创建一个简单的Docker主机,尝试在一些.net项目中使用容器。

我已经安装了Windows 1803主机,并使用powershell安装了Docker,并且它作为服务正确运行。

我想使用自1709年以来提供的新的"SMB全局映射“功能来映射我域中的samba共享,并在容器中使用它,而不需要使用gMSA或其他技巧,而且我希望它能够自动启动,并在重新启动时启动容器,就像它们是windows服务一样。

我运行这些命令,一切都正常。

代码语言:javascript
运行
复制
$creds = Get-Credential 

New-SmbGlobalMapping -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:

docker run -v G:/:G: -it test cmd.exe

但是在主机重新启动后,G:不再映射,所以我不能理想地将容器放在自动启动上。我猜想这是因为凭据在任何地方都没有持久化,但即使在那之后,我仍然怀疑powershell命令是否会使任何东西保持不变,这也是因为它缺少标准的-Persistent参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-01 19:12:24

我还在Windows 1803和Docker中使用此cmdlet。为了解决这个问题,我做了以下工作:

在PS1中创建此C:\data\smbshare.ps1脚本

代码语言:javascript
运行
复制
$secpasswd = ConvertTo-SecureString 'password' -AsPlainText -Force;
$creds = New-Object System.Management.Automation.PSCredential ("domain\user", $secpasswd);
New-SmbGlobalMapping -RemotePath 'RemotePath' -Credential $creds -LocalPath X:;

现在,创建一个从服务器StartUP开始的计划任务。我用这个cmdlet做这件事:

代码语言:javascript
运行
复制
$Action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-file C:\data\smbshare.ps1" -WorkingDirectory "C:\data";
$Trigger = New-ScheduledTaskTrigger -AtStartup;
$Settings = New-ScheduledTaskSettingsSet -DontStopOnIdleEnd -RestartInterval (New-TimeSpan -Minutes 1) -RestartCount 10 -StartWhenAvailable;
$Settings.ExecutionTimeLimit = "PT0S";
$SecurePassword = ConvertTo-SecureString 'password' -AsPlainText -Force;
$UserName = "domain\user";
$Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $SecurePassword;
$Password = $Credentials.GetNetworkCredential().Password;
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings;
$Task | Register-ScheduledTask -TaskName 'SMBGlobalShare' -User "domain\user" -Password $Password;
票数 5
EN

Stack Overflow用户

发布于 2020-01-09 10:47:56

对于遇到这种情况的人,New-SmbGlobalMapping有一个需要设置为$truePersistent标志,即

代码语言:javascript
运行
复制
New-SmbGlobalMapping -Persistent $true -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50415447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档