精华内容
下载资源
问答
  • 最近做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”。 二、安装环境 本机系统:Windows 7 旗舰版 VMware:VMware Workstation 9.0 CentOS:CentOS 6.4 网络适配器设置为:NAT 转换 ...

    一、为什么要这么做?

    最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”。

    二、安装环境

    本机系统:Windows 7 旗舰版

    VMware:VMware Workstation 9.0

    CentOS:CentOS 6.4

    网络适配器设置为:NAT 转换

    三、查看是否已经安装“samba”

    命令:rpm -qa|grep samba

    输出结果:

    samba-client-3.0.33-3.28-1.el5
    samba-common-3.0.33-3.28-1.el5

    这里顺便说一下搭建samba服务器所需要的基本软件包:

    1. samba——>这个软件包包含了主要的daemon文件(smbd和nmbd)

    2. samba-common——>提供samba的主要配置文件(smb.conf)、smb.conf语法检测程序(testparm)等

    3. samba-client——> 当linux作为samba 客户端的时候,提供了一套所需的工具和指令。

    这下看出来了吧,samba主程序根本没有被安装

    也可以使用“service smb status”命令查看是否已经安装,执行该命令如果返回“smb:unrecognized service”,说明服务没有安装。

    四、安装“samba”

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

    这里只介绍本人的安装过程,

    详细请参考“鳥哥的 Linux 私房菜”之“第十六章、檔案伺服器之二: SAMBA 伺服器

    可以通过光盘或网络安装 samba

    1、通过网络安装

    本人就是用的网络安装,虽然有点慢,但是比较简单方便。

    命令:sudo yum install samba

    就一条命令就OK了。

    2、通过光盘安装

    仅供参考,本人没有测试过。

    先把iso镜像挂载上,一般情况下光驱的设备标识为/dev/hdc

    [root@sycflash ~]# mkdir /mnt/temp

    [root@sycflash ~]#mount /dev/hdc /mnt/temp

    [root@sycflash ~]#ll /mnt/temp/Server | grep samba

    samba-3.0.33-3.28-1.el5.i386.rpm
    samba-common-3.0.33-3.28-1.el5.i386.rpm

    samba-client-3.0.33-3.28-1.el5.i386.rpm

    ...

    [root@sycflash ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm

    error: Failed dependencies:
    perl(Convert::ASN1) is needed by samba-3.0.33-3.28-1.el5.i386

    又报错了,原来是缺少所依赖的perl ASN1包。

    解决方法:安装perl-Convert-ASN1-0.20-1.1.noarch.rpm

    /mnt/temp/Server/

     [root@sycflash ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm

    这时samba就能正常安装了。check一下成果:

    [root@sycflash ~]#service smb status

    smbd is stopped

    nmbd is stopped

    这时已经没有smb:unrecognized service 这样的提示了。

    五、配置 Samba

    	先在/home目录mkdir 目录 samba
    	修改 samba 权限 
    	chmod 0777 /home/samba
    	如果需要共享的目录已经存在 了,那么只修改目录的访问权限就可以了。

    命令:sudo vi /etc/samba/smb.conf

    	修改几次地方:
    	找到以下几行把注释去掉
    	setsebool -P samba_domain_controller on
    	setsebool -P samba_enable_home_dirs on
    	setsebool -P samba_export_all_rw on
    
    	修改  workgroup = MYGROUP 为 MYGROUP  工作组为你windows 的工作组,一般为WORKGROUP
    	workgroup = WORKGROUP
    	server string = Samba Server Version %v
    	netbios name = CentOSServer #网络计算机名,可以通过它访问共享文件如:\\CentOSServer
    	跟着添加这两行
    	create mask = 0777
    	directory mask = 0777
    
    	然后在文件最后添加这几行
    
    	[public]
    	comment = public file
    	path = /home/samba #刚才mkdir的文件夹
    	valid users = root
    	writable = yes
    	browseable = yes
    
    	:wq命令保存退出
    	下面给出我的配置文件内容,只贴出关键部分:
            workgroup = WORKGROUP
            server string = Samba Server Version %v
            netbios name = CentOS
            create mask = 0777
            directory mask = 0777
            security = user
    #       passdb backend = tdbsam
    要在“passdb backend = tdbsam”注释掉。
    刚接触Linux,原来配置文件中的分号也是注释符。
    [public]
            comment = public file
            path = /home/dev
            valid users=@root
            writable=yes
            browseable=yes
            public = yes
            admin users = root
            create mask = 0664
            direcotry mask = 0775
    重启smb服务
    service smb restart
    添加samba用户,将root用户增加为samba用户
    smbpasswd -a root
    会提示输入两次密码,这个密码就是访问samba的密码

    六、在Windows下映射网络驱动器

    先看看能不能访问:
    在windows系统中通过IP地址或刚才定义的网络计算机名访问就可以
    在地址栏输入
    \\192.168.x.x
    或
    \\CentOSServer
    如果共享文件夹可以访问,打开Windows资源管理器,添加映射就可以了。

    七、常见问题

    	1、无法访问远程主机
    		先停止防火墙看看
    		service iptables stop
    	2、共享目录无法访问
    	        1)关闭防火墙: #sevice iptables stop
            2)修改 /etc/samba/smb.conf,具体配置网上有,我的如下:
                    
                security = share     ---- 这个要用上,share表示安全最低级别,其次是user,最高是server
                [共享目录名]
                    path = /home/用户名/共享目录名
                    ;read only = no  -----这个需要在前面用分号注释掉
                    writeable = yes
                    browseable = yes
                    public = yes
                    guest ok = yes
            3)SELinux作怪
                修改/etc/sysconfig/selinux 把enforcing改成disabled;然后命令行setenforce 0
                或者用Rainsome兄说的 使用selinux强制策略:chcon -R -t samba_share_t /home/suyang/"Fedora Samba"         
            4)修改目录权限 #chmod 777 /home/wind ; #chmod 777 /home/wind/smbShare; 特别是前面一个做为上层目录权限也需要修改!!!

            5)重启samba服务 #service smb restart 或者 /etc/rc.d/init.d/smb restart

    当然你要在linux与windows之间互相能ping 通。

    
    

    展开全文
  • 一、Ubuntu访问Windows共享文件夹 ...4、成功共享后可以计算机管理查看已共享文件夹 5、Windows还需要进行一些设置,保证共享成功,控制面板->网络和Internet->网络和共享中心->更改...

    一、Ubuntu访问Windows共享文件夹

    1、对需要共享文件夹右击->属性->共享

    2、选择要与其共享的用户,选择好用户点击有点添加按钮添加,然后点击下方的共享按钮

    3、完成共享

    4、成功共享后可以在计算机管理查看已共享文件夹

    5、Windows还需要进行一些设置,保证共享成功,控制面板->网络和Internet->网络和共享中心->更改高级共享设置

    6、ubuntu挂在windows共享文件夹方法1:mount方式,此方法关机就会失效

    标准的语法:

    # mount -t cifs //IP地址/共享名称 挂载点 -o username=用户名,password=密码,其他选项

    其中username是Windows系统的用户名,密码为Windows用户密码

     例如:

    7、ubuntu挂在windows共享文件夹方法2:通过修改fstab文件,支持开机自动挂载

     

    二、Windows访问ubuntu共享文件夹

    1、对要共享的文件夹右击->Local Network Share

    2、选择Share this folder

     

    提示安装共享服务

    提示安装samba包

    最后都选中如下,并创建共享

    2、右击我的电脑->映射网络驱动器

     

    文件夹填写:\\192.168.12.131\share,这样就能完成访问。

    展开全文
  • 处理驱动器和文件夹

    千次阅读 2005-05-13 12:47:00
    处理驱动器和文件夹使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。获取...

    处理驱动器和文件夹

    使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。

    获取有关驱动器的信息

    可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:

    • 驱动器的总容量,以字节为单位(TotalSize 属性)
    • 驱动器的可用空间是多少,以字节为单位(AvailableSpaceFreeSpace 属性)
    • 哪个号被赋给了该驱动器(DriveLetter 属性)
    • 驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性)
    • 驱动器的序列号(SerialNumber 属性)
    • 驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性)
    • 驱动器是否可以使用(IsReady 属性)
    • 共享和/或卷的名字(ShareName 和 VolumeName 属性)
    • 驱动器的路径或根文件夹(PathRootFolder 属性)

    请考察  示例代码,来领会如何在 FileSystemObject 中使用这些属性。

    Drive 对象的用法示例

    使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。

    下面示例示范了如何在 VBScript 中使用 Drive 对象:

    Sub ShowDriveInfo(drvPath)
       Dim fso, drv, s
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
       s = "Drive " & UCase(drvPath) & " - "
       s = s & drv.VolumeName & "<br>"
       s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
       s = s & " Kb" & "<br>"
       s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
       s = s & " Kb" & "<br>"
       Response.Write s
    End Sub

    下面的代码说明在 Visual Basic Scripting Edition 中实现同样的功能:

    function ShowDriveInfo1(drvPath)
    {
       var fso, drv, s ="";
       fso = new ActiveXObject("Scripting.FileSystemObject");
       drv = fso.GetDrive(fso.GetDriveName(drvPath));
       s += "Drive " + drvPath.toUpperCase()+ " - ";
       s += drv.VolumeName + "<br>";
       s += "Total Space: " + drv.TotalSize / 1024;
       s += " Kb" + "<br>"; 
       s += "Free Space: " + drv.FreeSpace / 1024;
       s += " Kb" + "<br>";
       Response.Write(s);
    }

    处理文件夹

    在下面的表中,描述了普通的文件夹任务和执行它们的方法。

    任务方法
    创建文件夹。FileSystemObject.CreateFolder
    删除文件夹。Folder.Delete 或 FileSystemObject.DeleteFolder
    移动文件夹。Folder.Move 或 FileSystemObject.MoveFolder
    复制文件夹。Folder.Copy 或 FileSystemObject.CopyFolder
    检索文件夹的名字。Folder.Name
    如果文件夹在驱动器上存在,则找出它。FileSystemObject.FolderExists
    获得现有 Folder 对象的实例。FileSystemObject.GetFolder
    找出文件夹的父文件夹名。FileSystemObject.GetParentFolderName
    找出系统文件夹的路径。FileSystemObject.GetSpecialFolder

    请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。

    下面的示例示范了如何在 VBScript 中使用 FolderFileSystemObject 对象,来操作文件夹和获得有关它们的信息:

    Sub ShowFolderInfo()
       Dim fso, fldr, s
       ' 获得 FileSystemObject 的实例。
       Set fso = CreateObject("Scripting.FileSystemObject")
       ' 获得 Drive 对象。
       Set fldr = fso.GetFolder("c:")
       ' 打印父文件夹名字。
       Response.Write "Parent folder name is: " & fldr & "<br>"
       ' 打印驱动器名字。
       Response.Write "Contained on drive " & fldr.Drive & "<br>"
       ' 打印根文件名。
       If fldr.IsRootFolder = True Then
          Response.Write "This is the root folder." & ""<br>"<br>"
       Else
          Response.Write "This folder isn't a root folder." & "<br><br>" 
       End If
       '  FileSystemObject 对象创建新的文件夹。
       fso.CreateFolder ("C:/Bogus")
       Response.Write "Created folder C:/Bogus" & "<br>"
       ' 打印文件夹的基本名字。
       Response.Write "Basename = " & fso.GetBaseName("c:/bogus") & "<br>"
       ' 删除新创建的文件夹。
       fso.DeleteFolder ("C:/Bogus")
       Response.Write "Deleted folder C:/Bogus" & "<br>"
    End Sub

    下面的示例显示如何在 Visual Basic Scripting Edition 中使用 FolderFileSystemObject 对象:

    function ShowFolderInfo()
    {
       var fso, fldr, s = "";
       // 获得 FileSystemObject 的实例。
       fso = new ActiveXObject("Scripting.FileSystemObject");
       // 获得 Drive 对象。
       fldr = fso.GetFolder("c:");
       // 打印父文件夹名。
       Response.Write("Parent folder name is: " + fldr + "<br>");
       // 打印驱动器名字。
       Response.Write("Contained on drive " + fldr.Drive + "<br>");
       // 打印根文件名。
       if (fldr.IsRootFolder)
          Response.Write("This is the root folder.");
       else
          Response.Write("This folder isn't a root folder.");
       Response.Write("<br><br>");
       //  FileSystemObject 对象创建新的文件夹。
       fso.CreateFolder ("C://Bogus");
       Response.Write("Created folder C://Bogus" + "<br>");
       // 打印文件夹的基本名。
       Response.Write("Basename = " + fso.GetBaseName("c://bogus") + "<br>");
       // 删除新创建的文件夹。
       fso.DeleteFolder ("C://Bogus");
       Response.Write("Deleted folder C://Bogus" + "<br>");
    }
    展开全文
  • 本脚本也不限制从一台 Windows 10 上共享文件夹给另一台 Windows 10 上的 Docker 虚拟机中的Docker。 也可以是从一台 Windows 10 上共享文件夹给另一台 Mac OXS 上的 Docker 虚拟机中的Docker。 或者是从一台 ...

    本文的内容是之前三篇内容的结合:
    《Docker for Windows 自动共享本机文件的脚本示例》
    http://blog.csdn.net/hu_zhenghui/article/details/79087151
    《从一台 Windows 10 上访问另一台 Windows 10上创建的Docker虚拟机》
    http://blog.csdn.net/hu_zhenghui/article/details/79142123
    《从Windows 10共享文件夹给Docker虚拟机中的Docker的神奇bug》
    http://blog.csdn.net/hu_zhenghui/article/details/79165268
    脚本的功能和之前区别不大,结构有了较大变化,脚本做了参数化,以便于使用。
    本脚本也不限制从一台 Windows 10 上共享文件夹给另一台 Windows 10 上的 Docker 虚拟机中的Docker。
    也可以是从一台 Windows 10 上共享文件夹给另一台 Mac OXS 上的 Docker 虚拟机中的Docker。
    或者是从一台 Windows 10 上共享文件夹给另一台 Linux 上运行的 Docker。
    最后一种情况是本文的核心内容。
    强调虚拟机的原因在于,借助自动共享 Windows 10 上的文件夹,让 Docker 运行中改变的状态都保留在这个文件夹中,运行后 Docker 进程和所在的虚拟机都恢复原样,也就是把 Docker 当成本身不持有状态的函数调用。

    # 自动共享 Windows 的文件夹到 Docker 主机
    ## git clone https://github.com/huzhenghui/share-windows-folder-to-docker
    ## share-windows-folder-to-docker/share-windows-folder-to-docker.ps1
    ## Docker for Windows 使用 Hyper-V,而 Hyper-V 自身并没有包含设备驱动方式的文件共享,因此只能使用 Windows 自带的 SMB 文件共享,SMB 也称 CIFS
    ## Docker for Windows 的客户端可以使用图形界面设置文件共享,不过技术实现方式也是 SMB,而且自动创建的文件共享对于局域网是开放的,未免有安全隐患
    # 本脚本用于使用 Docker-Machine 命令可以访问到的 Docker 主机
    ## 可以用于使用 Docker-Machine 命令在本机 Hyper-V 中创建的 Docker 虚拟机中共享文件,也就是 Host Windows - Guest Linux - Docker
    ## 也可以用于本机使用 Docker-Machine 命令可以管理的在相同局域网内的其他 Docker 主机,也就是 Windows - Intranet - Linux - Docker
    ## 本脚本假设 Docker-Machine 命令能查询到至少一台 Docker 主机,如果该 Docker 主机安装在当前 Windows 的 Hyper-V 中,则可以采用虚拟交换机方式保证在相同局域网
    ## 使用 Hyper-V 的虚拟交换机方式创建虚拟机的命令类似于:docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1
    # 本脚本运行时自动创建用于共享的用户,自动创建共享文件夹,自动在 Docker 主机中加载,并生成用于测试的命令
    # 本脚本中的密码不仅随机生成,而且密码不保存在任何持久存储。不过仍旧建议不要在 Windows 的系统文件夹中运行本脚本,避免共享系统文件夹导致的安全隐患
    # 免责声明:本脚本涉及技术较多,包括:PowerShell、Unix Shell、WMI、Docker,而且需要运行在管理员角色,在不同环境可能导致难以预期的结果,仅供学习参考
    # 本脚本使用方法:创建一个英文名称的文件夹,其中创建一个 .ps1 文件,把本脚本的内容完整复制进去,然后运行 PowerShell 管理员控制台,进入文件夹,运行脚本
    # 参数
    ## -workingDir 要共享的文件夹,如果不提供,或者不是文件夹,则使用当前文件夹
    ## -machineName Docker 主机的名称,应处于 docker-machine ls 列表中,如果不提供或者不存在或者不处于 Running 状态,则使用 docker-machine ls 列表中处于 Running 状态的第一台主机
    ## -volumeName 共享到 Docker 主机上的卷的名称,如果不提供,则自动生成
    ## -sharePath 共享的文件夹名称,如果不提供,则自动生成,该参数自动传入 Docker 主机,使用时并不涉及
    ## -userName 共享的文件夹的用户,如果不提供,则自动生成,该参数自动传入 Docker 主机,使用时并不涉及
    ## -password 共享的文件夹的用户的密码,如果不提供,则自动生成,该参数自动传入 Docker 主机,使用时并不涉及
    ## -replaceVolume 当 Docker 主机上包含同名的卷的名称时,替换已有设置,否则退出
    Param(
        [string]$workingDir,
        [string]$machineName,
        [string]$volumeName,
        [string]$sharePath,
        [string]$userName,
        [string]$password,
        [switch]$replaceVolume
    )
    # 常量
    ## 安全字符
    $safe_charactors = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    # 参数
    ## workingDir
    ### 判断要共享的文件夹,如果不提供,或者不是文件夹,则使用当前文件夹
    if ([string]::IsNullOrEmpty($workingDir))
    {
        $workingDir = (Get-Location).Path
    }
    elseif (-Not ([io.Directory]::Exists($workingDir)))
    {
        $workingDir = (Get-Location).Path
    }
    echo "Working Directory : " $workingDir
    ### 获取路径的最后一段,也就是文件夹名,由于后面会多次使用该文件夹名,避免出现字符集问题建议使用纯英文,或者手工设置
    $directory_name = [System.IO.Path]::GetFileName($workingDir)
    echo "Directory Name : " $directory_name
    ### 为了避免文件夹名重复,通过计算路径的散列值区分
    ### 把字符串转换成内存中的流计算散列值,从这里也可以看出 PowerShell 实现的合理性,因为 PowerShell 中的字符串是字符,而散列值需要按照字节计算,因此需要按照字符集转换,此处使用 MD5 算法
    $directory_hash = Get-FileHash -Algorithm MD5 -InputStream ([System.IO.MemoryStream]::new((new-object -TypeName System.Text.UTF8Encoding).GetBytes($workingDir))) | Select-Object -ExpandProperty Hash
    echo "Directory Hash : " $directory_hash
    ### 为了避免路径中的非ASCII字符,对文件夹名进行过滤
    $directory_filter_name = ""
    foreach($c in $directory_name.ToCharArray()) {if ($safe_charactors.Contains($c)) {$directory_filter_name += $c}}
    echo "Directory Filter Name : " $directory_filter_name
    ## volumeName
    ### 判断是否设置了卷参数
    if([string]::IsNullOrEmpty($volumeName))
    {
        ### 卷的名称,使用前缀和散列值区分
        $volumeName = -Join('Share_for_Docker_', $directory_filter_name, '_', $directory_hash)
    }
    ## sharePath
    ### 判断是否设置了共享路径参数
    if([string]::IsNullOrEmpty($sharePath))
    {
        ### 共享文件夹名称,使用前缀和散列值区分
        $sharePath = -Join('Share_for_Docker_', $directory_filter_name, '_', $directory_hash)
    }
    echo "Share Path : " $sharePath
    ## userName
    ### 判断是否设置了用户名参数
    if([string]::IsNullOrEmpty($userName))
    {
        ### 用于共享的用户名增加 Docker 前缀,以便于未来管理
        $userName = -Join('Docker_', $directory_filter_name)
        ### 由于 Windows 用户的用户名最长 20 字符,为了后面的散列值,按照 13 个字符截断
        if ($userName.Length -gt 13) {$userName = $userName.Substring(0, 13)}
        ### 用户名增加散列值作为后缀
        $userName = -Join($userName, '_', $directory_hash)
        ### 由于 Windows 用户的用户名最长 20 字符,按照 20 个字符截断
        if ($userName.Length -gt 20) {$userName = $userName.Substring(0, 20)}
    }
    echo "User Name :" $userName
    ## password
    ### 判断是否设置了密码参数
    if([string]::IsNullOrEmpty($password))
    {
        ### 密码使用随机自动生成
        for($password = $Null ; $password.length -le 32; $password += "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray() | Get-Random){}
    }
    echo "Password Generated"
    # 判断参数
    ## machineName
    ### 判断是否设置了 machineName 参数
    if(-not [string]::IsNullOrEmpty($machineName))
    {
        ### 判断是否存在名称为 machineName 且正在运行的 Docker 主机
        if((docker-machine ls --filter 'STATE=Running' --filter "Name=${machineName}" --format '{{.Name}}') -eq $Null)
        {
            ### 如果不存在说明 machineName 参数无效,设置为空
            $machineName = $Null
        }
    }
    ### 判断是否设置了 machineName 参数
    if([string]::IsNullOrEmpty($machineName))
    {
        $machineName = $(docker-machine ls --filter 'STATE=Running' --format "{{.Name}}" | Select-Object -First 1)
    }
    ### 判断是否设置了 machineName 参数
    if([string]::IsNullOrEmpty($machineName))
    {
        echo 'machineName invalid and/or no running docker machine'
        exit
    }
    ### docker 环境变量
    ### 使用 docker-machine 命令生成环境变量并运行,以便于后续的的 docker 命令直接使用,注意此处为了解决中文问题做了转码,
    foreach ($line in (& "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env $machineName))
    {
    [System.Text.Encoding]::GetEncoding("utf-8").GetString([System.Text.Encoding]::GetEncoding("gb2312").GetBytes($line)) |  Invoke-Expression
    }
    ## volumeName
    ### 判断是否存在名称为 volumeName 的卷
    if((docker volume ls --filter "Name=${volumeName}" --format '{{.Name}}') -ne $Null)
    {
        echo 'Volume Name exist : ' $volumeName
        if($replaceVolume.IsPresent)
        {
            echo 'Remove Existence volume'
            docker volume rm --force ${volumeName}
            echo 'Existence volume removed'
        }
        else
        {
            exit
        }
    }
    ## sharePath
    ### 判断共享路径是否存在
    #[WMICLASS]"WIN32_Share"
    if((Get-WmiObject -Class Win32_Share -Filter "name = '$sharePath'") -ne $Null)
    {
        ### 共享路径存在的时候退出,由人工处理
        echo "Share path exist : " $sharePath
        exit
    }
    ## userName
    ### 判断用户名是否存在
    if((Get-WmiObject -Class Win32_UserAccount -Filter "name = '${userName}'") -ne $Null)
    {
        ### 用户存在的时候退出,由人工处理
        echo "User Exist : " $userName
        exit
    }
    # 创建用户
    $winnt_localhost = [ADSI]"WinNT://localhost"
    ## 创建用户对象
    $new_user = $winnt_localhost.create("user", $userName)
    ## 设置密码
    $new_user.setpassword($password)
    ## 设置信息,用户只有设置信息后才会创建,因此没有参数也要调用
    $new_user.setinfo()
    ## 设置这个账户的密码永远不过期
    Get-WmiObject -Class Win32_UserAccount -Filter "name = '${username}'" | Set-WmiInstance -Argument @{PasswordExpires = 0}
    # 文件夹权限
    ## 创建一个访问规则
    $access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule($userName, "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
    ## 获取当前路径的访问控制列表
    $acl = Get-Acl $workingDir
    ## 在访问控制列表中添加访问规则
    $acl.SetAccessRule($access_rule)
    ## 在当前路径中设置访问控制列表
    Set-Acl -Path $workingDir -AclObject $acl
    # 共享文件夹
    ## 创建一个信任用户对象
    $Trustee = ([wmiclass]'Win32_trustee').psbase.CreateInstance()
    ## 设置信任用户的名字
    $Trustee.Name = $userName
    ## 设置信任用户的域,本地域为空
    $Trustee.Domain = $Null
    ## 创建一个访问控制对象
    $ACE = ([WMIClass] "Win32_ACE").psbase.CreateInstance()
    ## 访问控制的掩码,Magic Number,具体含义请自行搜索
    $ACE.AccessMask = 2032127
    ## 访问控制的标志
    $ACE.AceFlags = 3
    ## 访问控制的类型
    $ACE.AceType = 0
    ## 访问控制的信任用户
    $ACE.Trustee = $Trustee
    ## 创建一个安全描述对象
    $sd = ([WMIClass] "Win32_SecurityDescriptor").psbase.CreateInstance()
    ## 安全描述的标志
    $sd.ControlFlags = 4
    ## 安全描述的访问控制
    $sd.DACL = $ACE
    ## 安全描述的信任用户组
    $sd.group = $Trustee
    ## 安全描述的信任用户
    $sd.owner = $Trustee
    ## 获得共享对象
    $Share = [WMICLASS]"WIN32_Share"
    ## 为当前文件夹创建共享文件夹
    $Share.Create($workingDir, $sharePath, 0, $Null, "Share for Docker", "", $sd)
    # 在虚拟机中运行脚本获取 Host Windows 的IP地址
    ## 此处欢迎集思广益:这种获取IP的方法不是很优雅,比较hack。先获取tty,然后切掉前面的/dev/,使用虚拟机上的w命令,按照tty过滤,最后输出第三个字段
    $local_ip = $(docker-machine ssh $machineName 'tty=$(tty | cut -c 6-); w -i | grep $tty | awk ''{print $3;}''')
    echo "Local IP : " $local_ip
    # 加载共享文件夹
    docker volume create --driver local --opt type=cifs --opt device=//${local_ip}/${sharePath} --opt o=username=${userName},password=${password} --name ${volumeName}
    #演示命令
    echo 'demo:'
    ## 这个命令在共享文件夹中随机创建一个文件
    echo "docker run --rm -v ${volumeName}:/share alpine touch (get-date -Format '/\s\h\are/yyyy-MM-dd-HH-mm-ss-fffffff.\tx\t')"
    ## 这个命令列出共享文件夹,可以查询到刚才创建的文件
    echo "docker run --rm -v ${volumeName}:/share alpine ls /share"
    echo ""
    echo "WARNING : '...input/output error' is a known error. This may occur with mobile storage devices"
    展开全文
  • Windows与Linux共享文件夹互相访问, 使用Samba服务. Samba是SMB的一种实现方法, 主要用来实现Linux系统的文件和打印服务. Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享. 1> 安装samba和...
  • Windows访问远程共享文件夹

    万次阅读 2015-01-04 10:57:18
    win7上映射网络驱动器访问远程电脑上的共享文件夹 http://jingyan.baidu.com/article/7c6fb42864232080642c90c5.html 打开我的电脑 点击添加”映射网络驱动器” 选择驱动器名称 输入远程文件夹位置(\...
  • WINDOWS 文件夹内容

    千次阅读 2011-09-17 23:20:05
    WINDOWS 文件夹内容的介绍,看了你就明白了. ├—WINDOWS │ ├—system32(存放Windows的系统文件和硬件驱动程序) │ │ ├—config(用户配置信息和密码信息) │ │ │ └—systemprofile(系统配置信息...
  • 当前路径运行CMD: 输入tree: 当然也可以用绝对路径, 以tree \起头: 太多了就不贴上来了。 也可以用相对路径: tree .\test_pipreqs 省略.\也可以: tree test_pipreqs 可以看到,上面只显示...
  • Windows系统中哪些文件夹可以删除

    千次阅读 2011-09-17 23:20:35
    windows文件夹中的哪些文件可以删除 经过以下的设置后,你的系统会更加清爽、简洁、高效! 1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-“显示所有文件和文件夹”选项前打勾-“确定” 2.删除以下...
  • 1:通过putty远程虚拟机 1:虚拟机的网络设置改为桥接模式, ...2:映射网络文件夹 1、Samba的几个套件:samba,samba-client, samba-common ,samba-common-bin 2、Samba安装: sudo a
  • 你已经虚拟机中安装了Ubuntu,你可能会发现拥有一个带有Windows主机操作系统的共享文件夹很有用。 1:在Windows 下共享一个文件目录,文件目录上右键,属性,共享。 2:虚拟机上关电Ubuntu。 3:VMware ...
  • 1.Windows访问Ubuntu共享文件夹: https://blog.csdn.net/autocyz/article/details/78194793 2.Ubuntu和windows相互共享文件夹: https://www.cnblogs.com/heguoyuan/p/9902446.html ==========================...
  • Windows下两个文件夹同步

    千次阅读 2019-11-11 16:23:59
    参考:... ... 需求:A服务器和B服务器同时需要部署两个相同的程序,上传的文件和数据库数据共享。 数据库数据共享好说,文件共享是读取的本地的文件,假如A中上传文件从B中本地...
  • Windows 操作系统的系统文件夹。是操作系统的神经中枢.文件夹中包含了大量的用于Windows操作系统的文件.这里主要用于存储 DLL 文件,控制面板小程序(.CPL), 设备驱动 (.drv), 帮助文件 (.hlp 和 .cnt), MS-DOS 工具 ...
  • var fso;fso = new ActiveXObject("Scripting.FileSystemObject");function SystemSpecialFolder(Special){ var tfolder, TemporaryFolder = Special;...1:包含库、字体,以及设备驱动程序的 System 文件夹;2:
  • 前提:windows10+wsl(ubuntu18.04) apt-get update apt-get install cifs-utils sudo mount -t drvfs //server/directory /mountpoint 最后一步,可以先将ip形式的网络文件夹映射为Windows的一个盘(比如H盘),...
  • 处理驱动器和文件夹使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。 获取...
  • 双击驱动器或文件夹却打开"搜索"(或其他程序)问题的解决方法 关键词: 驱动文件夹 搜索 问题 解决 双击驱动器或文件夹却打开"搜索"(或其他程序)问题的解决方法 有如下解决方法: 一、1、dll注册法:...
  • <br />addins文件夹  这是系统附加文件夹,用来存放系统附加功能的文件。 AppPatch文件夹   这是应用程序修补备份文件夹,用来存放应用程序的修补文件。  assembly文件夹 ...
  • 1.安装“samba” ...5.在windows系统中通过IP地址或刚才定义的网络计算机名访问就可以地址栏输入\\192.168.x.x refer to: http://blog.csdn.net/testcs_dn/article/details/19758163
  • Windows文件夹结构划分

    千次阅读 2010-12-17 14:17:00
    Windows文件夹结构划分
  • windows文件夹增量备份

    万次阅读 2017-09-27 09:40:55
    windows下增量备份指定目录或文件夹及其子目录文件方法
  • http://fulong258.blog.163.com/WINDOWS文件夹简介├—WINDOWS │ ├—system32(存放Windows的系统文件和硬件驱动程序) │ │ ├—config(用户配置信息和密码信息) │ │ │ └—systemprofile(系统配置信息...
  • Virtualbox中Windows设置共享文件夹

    千次阅读 2015-07-28 12:03:08
    Virtualbox中Windows设置共享文件夹
  • VS2019 windows驱动开发环境配置

    万次阅读 2019-08-12 17:15:02
    配置Windows驱动开发环境 VS2019 下载VS2019 下载链接 https://visualstudio.microsoft.com/zh-hans/downloads/ 选择你所需要的开发环境和配置 确认下载完后, 你安装的WDK 的文件夹下选择 双击WDK....
  • Windows中MSOCache文件夹

    2007-10-22 13:51:00
    系统中总是盘中出现MSOCache这样一个隐藏的文件夹还很大,我们来看看这个文件夹的产生与作用。 这是Offiece的本地安装源 (Msocache)。“本地安装源”是一种安装功能,它将安装源文件从 Microsoft Office 2003 安装...
  • 移动 Windows 文件保护缓存文件夹

    千次阅读 2004-07-19 12:04:00
    Windows 文件保护(WFP)帮助程序使用其它版本的文件替换系统文件,其它版本可能是比较老的版本。WFP 只允许某些应用程序替换系统文件。 on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash....
  • 以下这段话来自微软官网: ...如果通过执行自定义安装来安装 Windows 7,而没有安装过程中格式化分区,则以前版本的Windows 中使用的文件存储 Windows.old 文件夹中。此文件夹中文件的类型取决于您的电脑。使
  • 全新安装Windows 10 1709版本后,访问Windows 7或Windows Server 2008以上版本时提示输入用户名和密码,正确输入后是可以正常访问的!...系统提示的信息也不足以了解问题出什么地方! 2 尝...
  • 详解C盘Windows文件夹

    千次阅读 2006-11-03 00:18:00
    详解C盘Windows文件夹里重要文件的作用整个Windows操作系统中,最重要的莫过于“Windows文件夹,对电脑进行任何操作几乎都有关。了解这里对于掌握整个系统的运作有很大的作用,如果有兴趣不妨往下看看。一、印象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,798
精华内容 39,519
关键字:

windows驱动在哪个文件夹