首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Set-ADuser不接受Logonworkstations变量

Set-ADuser不接受Logonworkstations变量
EN

Stack Overflow用户
提问于 2022-08-02 19:44:52
回答 1查看 83关注 0票数 0

目标:使用脚本向所有用户添加3个工作站。问题:接收错误说明变量的格式无效。$finalworkstations.gettype()将显示空值表达式。

接收错误:

代码语言:javascript
运行
复制
Set-ADUser : The format of the specified computer name is invalid
At \\pathwaystuff\file.ps1:37 char:9
+         Set-ADUser $logonname -LogonWorkstations $finalworkstations
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (tester:ADUser) [Set-ADUser], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:1210,Microsoft.ActiveDirectory.Management.Commands.SetADUser

这是我现在的剧本。

代码语言:javascript
运行
复制
$list = Get-ADUser -filter {LogonWorkstations -like "*"} -properties name, LogonWorkstations | select name, logonworkstations



$logonname = "someone"

Function addspecificLogon {
    param (
        $logonname
    )

        $wrklist = Import-Csv "\\pathwaystuff\anotherplace\file.csv"
        $Workstations = (Get-Aduser $logonname ` -Properties LogonWorkstations).LogonWorkstations
        $workstations += ",work1, work2, work3"

       
        #CONVERT WORKSTATION LIST TO AN ARRAY TO ALLOW FOR BETTER MANIPULATION OF DATA
        $Workarray = $Workstations.Split(",")

        #ERROR-CHECKING MEASURE: ELIMINATE DUPLICATE WORKSTATION NAMES
        $Workarray = $Workarray | Sort-Object | Get-Unique 
        
        #CONVERTING ARRAY BACK TO STRING TO SET IN AD WORKSTATIONS (NEEDS TO BE A SPECIFIC STRING FORMAT TO ADD TO AD WORKSTATION)
        $finalworkstations = ''
        foreach ($work in $Workarray) {
            $finalworkstations += ", $($work)"
        }
        Set-ADUser $logonname -LogonWorkstations $finalworkstations
        $finalworkstations
}

addspecificLogon($logonname)

Get-ADUser -identity $logonname -properties * | select logonworkstations
EN

回答 1

Stack Overflow用户

发布于 2022-09-16 03:03:05

找到了解决办法。事实证明,总体上来说,这要简单得多。不知道确切原因,但尽可能长时间地操作数组会有所帮助。

代码语言:javascript
运行
复制
  function workstations{
        $userWorkstationListLocation = Read-Host -Prompt "Enter the filepath of the CSV containing the allowed workstations"
        if ($userworkstationlistlocation -eq ""){
            $userWorkstationList = "empty"
            $script:userworkstationlist = $userworkstationList 
            $script:userworkstationListLocation = $userWorkstationListLocation
        } elseif ((test-path -path $userWorkstationListLocation) -eq $false) {
            $userWorkstationListLocation = verify($userWorkstationListLocation)
        }
        $userWorkstations = Import-Csv -Path "$userWorkstationListLocation" | ForEach-Object {$_.userPC}
        
        #CSV REFERENCE LIST FOR DEFAULT LOGON RIGHTS
        $defaultWorkstationslist = Import-Csv '\\url\link\of\stations.csv'
        foreach ($station in $defaultworkstationslist) {
            $userWorkstations += "$($station.Infrastructure)"
        }    
    
        #CONFIRMING IF NEEDED TO USE CITRIX
        $CitrixUser = Read-Host "Will this user need access to Citrix? [Y/N]"
        
    #FUNCTION TO CONFIRM ADD OR SKIP CITRIX LOGON RIGHTS
    if ($CitrixUser -eq "Y"){
        foreach($station in $defaultworkstationslist){
            if ($station.Citrix -eq ""){
                continue
            } else {
                $userWorkstations += "$($station.Citrix)"
            }
        }  
    }

    #Removing Duplicates
    $userworkstations = $userWorkstations | Sort-Object | Get-Unique

    #Fixing for blanks
    $userWorkstations.where({$_ -ne "" })
  
    #converting to a list Set-AD can use
    foreach ($s in $userWorkstations){
        $s
        if ($s -eq ""){
            continue
        } else {
            $userworkstationlist += "$s,"
        }
    }

    $userworkstationlist

    $script:userworkstationListLocation = $userWorkstationListLocation
    $script:userworkstationlist = $userworkstationlist
    Write-Host "Within function $($userworkstationlist)"
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73212952

复制
相关文章

相似问题

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